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

39 lines
1.1 KiB
Python

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
)