71 lines
3.8 KiB
Python
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")
|