2026-01-26 10:30:49 -05:00

71 lines
3.8 KiB
Python

import graphene
from graphene import InputObjectType
class ScheduleCreateInput(InputObjectType):
"""
Input type for creating a new schedule.
"""
account_id = graphene.ID(required=True, description="ID of the account this schedule belongs to")
# Service days
monday_service = graphene.Boolean(description="Whether service is scheduled on Monday", default_value=False)
tuesday_service = graphene.Boolean(description="Whether service is scheduled on Tuesday", default_value=False)
wednesday_service = graphene.Boolean(description="Whether service is scheduled on Wednesday", default_value=False)
thursday_service = graphene.Boolean(description="Whether service is scheduled on Thursday", default_value=False)
friday_service = graphene.Boolean(description="Whether service is scheduled on Friday", default_value=False)
saturday_service = graphene.Boolean(description="Whether service is scheduled on Saturday", default_value=False)
sunday_service = graphene.Boolean(description="Whether service is scheduled on Sunday", default_value=False)
weekend_service = graphene.Boolean(description="Whether weekend service is enabled", default_value=False)
# Exceptions
schedule_exception = graphene.String(description="Exceptions to the regular schedule")
# Dates
start_date = graphene.DateTime(required=True, description="Start date of the schedule (YYYY-MM-DD)")
end_date = graphene.DateTime(description="End date of the schedule (YYYY-MM-DD)")
class ScheduleUpdateInput(InputObjectType):
"""
Input type for updating an existing schedule.
"""
id = graphene.ID(required=True, description="ID of the schedule to update")
account_id = graphene.ID(description="ID of the account this schedule belongs to")
# Service days
monday_service = graphene.Boolean(description="Whether service is scheduled on Monday")
tuesday_service = graphene.Boolean(description="Whether service is scheduled on Tuesday")
wednesday_service = graphene.Boolean(description="Whether service is scheduled on Wednesday")
thursday_service = graphene.Boolean(description="Whether service is scheduled on Thursday")
friday_service = graphene.Boolean(description="Whether service is scheduled on Friday")
saturday_service = graphene.Boolean(description="Whether service is scheduled on Saturday")
sunday_service = graphene.Boolean(description="Whether service is scheduled on Sunday")
weekend_service = graphene.Boolean(description="Whether weekend service is enabled")
# Exceptions
schedule_exception = graphene.String(description="Exceptions to the regular schedule")
# Dates
start_date = graphene.DateTime(description="Start date of the schedule (YYYY-MM-DD)")
end_date = graphene.DateTime(description="End date of the schedule (YYYY-MM-DD)")
class GenerateServicesInput(InputObjectType):
"""
Input type for generating services based on a schedule.
"""
schedule_id = graphene.ID(required=True, description="ID of the schedule to generate services from")
start_date = graphene.DateTime(required=True, description="Start date for service generation (YYYY-MM-DD)")
end_date = graphene.DateTime(required=True, description="End date for service generation (YYYY-MM-DD)")
class ScheduleFilterInput(graphene.InputObjectType):
"""Input type for filtering schedules"""
account_id = graphene.ID(description="Filter by account ID")
is_active = graphene.Boolean(description="Filter by active status")
start_date = graphene.DateTime(description="Filter by start date")
end_date = graphene.DateTime(description="Filter by end date")
has_exceptions = graphene.Boolean(description="Filter by presence of schedule exceptions")
has_weekend_service = graphene.Boolean(description="Filter by weekend service availability")