129 lines
6.7 KiB
Python
129 lines
6.7 KiB
Python
import graphene
|
|
from graphene import InputObjectType
|
|
|
|
|
|
class PunchlistCreateInput(InputObjectType):
|
|
"""
|
|
Input type for creating a new Punchlist.
|
|
"""
|
|
project_id = graphene.ID(required=True, description="ID of the project for this punchlist")
|
|
account_id = graphene.ID(required=True, description="ID of the account for this punchlist")
|
|
date = graphene.Date(required=True, description="Date of the punchlist (YYYY-MM-DD)")
|
|
second_visit = graphene.Boolean(description="Whether a second visit is required")
|
|
second_date = graphene.DateTime(description="Date and time of the second visit")
|
|
|
|
# Front area section
|
|
front_ceiling = graphene.Boolean(description="Front area ceiling cleaned")
|
|
front_vents = graphene.Boolean(description="Front area vents cleaned")
|
|
front_fixtures = graphene.Boolean(description="Front area fixtures cleaned")
|
|
front_counter = graphene.Boolean(description="Front counter cleaned")
|
|
|
|
# Main work area section
|
|
main_equipment = graphene.String(description="Main equipment type")
|
|
main_equipment_disassemble = graphene.Boolean(description="Equipment disassembled")
|
|
main_equipment_reassemble = graphene.Boolean(description="Equipment reassembled")
|
|
main_equipment_alerts = graphene.Boolean(description="Equipment alerts identified")
|
|
main_equipment_exterior = graphene.Boolean(description="Equipment exterior cleaned")
|
|
main_walls = graphene.Boolean(description="Main area walls cleaned")
|
|
main_fixtures = graphene.Boolean(description="Main area fixtures cleaned")
|
|
main_ceiling = graphene.Boolean(description="Main area ceiling cleaned")
|
|
main_vents = graphene.Boolean(description="Main area vents cleaned")
|
|
main_floors = graphene.Boolean(description="Main area floors cleaned")
|
|
|
|
# Equipment section
|
|
equip_primary = graphene.Boolean(description="Primary equipment cleaned")
|
|
equip_station_1 = graphene.Boolean(description="Station 1 cleaned")
|
|
equip_station_2 = graphene.Boolean(description="Station 2 cleaned")
|
|
equip_station_3 = graphene.Boolean(description="Station 3 cleaned")
|
|
equip_storage = graphene.Boolean(description="Storage area cleaned")
|
|
equip_prep = graphene.Boolean(description="Prep area cleaned")
|
|
equip_delivery = graphene.Boolean(description="Delivery area cleaned")
|
|
equip_office = graphene.Boolean(description="Office area cleaned")
|
|
equip_sinks = graphene.Boolean(description="Sinks cleaned")
|
|
equip_dispensers = graphene.Boolean(description="Dispensers cleaned")
|
|
equip_other = graphene.Boolean(description="Other equipment cleaned")
|
|
|
|
# Back area section
|
|
back_ceiling = graphene.Boolean(description="Back area ceiling cleaned")
|
|
back_vents = graphene.Boolean(description="Back area vents cleaned")
|
|
|
|
# End of visit section
|
|
end_trash = graphene.Boolean(description="Trash removed")
|
|
end_clean = graphene.Boolean(description="Area left clean")
|
|
end_secure = graphene.Boolean(description="Area secured")
|
|
|
|
# Notes
|
|
notes = graphene.String(description="Notes about the punchlist")
|
|
|
|
|
|
class PunchlistUpdateInput(InputObjectType):
|
|
"""
|
|
Input type for updating an existing Punchlist.
|
|
"""
|
|
id = graphene.ID(required=True, description="ID of the punchlist to update")
|
|
project_id = graphene.ID(description="ID of the project for this punchlist")
|
|
account_id = graphene.ID(description="ID of the account for this punchlist")
|
|
date = graphene.Date(description="Date of the punchlist (YYYY-MM-DD)")
|
|
second_visit = graphene.Boolean(description="Whether a second visit is required")
|
|
second_date = graphene.DateTime(description="Date and time of the second visit")
|
|
|
|
# Front area section
|
|
front_ceiling = graphene.Boolean(description="Front area ceiling cleaned")
|
|
front_vents = graphene.Boolean(description="Front area vents cleaned")
|
|
front_fixtures = graphene.Boolean(description="Front area fixtures cleaned")
|
|
front_counter = graphene.Boolean(description="Front counter cleaned")
|
|
|
|
# Main work area section
|
|
main_equipment = graphene.String(description="Main equipment type")
|
|
main_equipment_disassemble = graphene.Boolean(description="Equipment disassembled")
|
|
main_equipment_reassemble = graphene.Boolean(description="Equipment reassembled")
|
|
main_equipment_alerts = graphene.Boolean(description="Equipment alerts identified")
|
|
main_equipment_exterior = graphene.Boolean(description="Equipment exterior cleaned")
|
|
main_walls = graphene.Boolean(description="Main area walls cleaned")
|
|
main_fixtures = graphene.Boolean(description="Main area fixtures cleaned")
|
|
main_ceiling = graphene.Boolean(description="Main area ceiling cleaned")
|
|
main_vents = graphene.Boolean(description="Main area vents cleaned")
|
|
main_floors = graphene.Boolean(description="Main area floors cleaned")
|
|
|
|
# Equipment section
|
|
equip_primary = graphene.Boolean(description="Primary equipment cleaned")
|
|
equip_station_1 = graphene.Boolean(description="Station 1 cleaned")
|
|
equip_station_2 = graphene.Boolean(description="Station 2 cleaned")
|
|
equip_station_3 = graphene.Boolean(description="Station 3 cleaned")
|
|
equip_storage = graphene.Boolean(description="Storage area cleaned")
|
|
equip_prep = graphene.Boolean(description="Prep area cleaned")
|
|
equip_delivery = graphene.Boolean(description="Delivery area cleaned")
|
|
equip_office = graphene.Boolean(description="Office area cleaned")
|
|
equip_sinks = graphene.Boolean(description="Sinks cleaned")
|
|
equip_dispensers = graphene.Boolean(description="Dispensers cleaned")
|
|
equip_other = graphene.Boolean(description="Other equipment cleaned")
|
|
|
|
# Back area section
|
|
back_ceiling = graphene.Boolean(description="Back area ceiling cleaned")
|
|
back_vents = graphene.Boolean(description="Back area vents cleaned")
|
|
|
|
# End of visit section
|
|
end_trash = graphene.Boolean(description="Trash removed")
|
|
end_clean = graphene.Boolean(description="Area left clean")
|
|
end_secure = graphene.Boolean(description="Area secured")
|
|
|
|
# Notes
|
|
notes = graphene.String(description="Notes about the punchlist")
|
|
|
|
# Export fields
|
|
exported_at = graphene.DateTime(description="When the punchlist was exported")
|
|
sheet_url = graphene.String(description="URL to the Google Sheet")
|
|
pdf_url = graphene.String(description="URL to the PDF")
|
|
|
|
|
|
class PunchlistFilterInput(InputObjectType):
|
|
"""
|
|
Input type for filtering Punchlists.
|
|
"""
|
|
project_id = graphene.ID(description="Filter by project ID")
|
|
account_id = graphene.ID(description="Filter by account ID")
|
|
start_date = graphene.Date(description="Filter by start date (inclusive)")
|
|
end_date = graphene.Date(description="Filter by end date (inclusive)")
|
|
is_exported = graphene.Boolean(description="Filter by export status")
|
|
second_visit = graphene.Boolean(description="Filter by second visit requirement")
|