import graphene from graphene import List from backend.core.repositories import ScheduleRepository from backend.graphql_api.types import ScheduleType from backend.graphql_api.inputs import ScheduleFilterInput class ScheduleQueries(graphene.ObjectType): """Schedule query operations""" schedule = graphene.Field( ScheduleType, id=graphene.ID(required=True) ) schedules = graphene.Field( List(ScheduleType), filter=ScheduleFilterInput() ) def resolve_schedule(self, info, id): return ScheduleRepository.get_by_id(id) def resolve_schedules(self, info, filter=None): if not filter: return ScheduleRepository.get_all() if filter.account_id: return ScheduleRepository.get_by_account(filter.account_id) if filter.is_active is not None: return ScheduleRepository.get_active() if filter.is_active else ScheduleRepository.get_inactive() return ScheduleRepository.get_by_date_range( start_date=filter.start_date, end_date=filter.end_date )