import graphene from graphene import List from backend.core.repositories import ServiceRepository from backend.graphql_api.types import ServiceType from backend.graphql_api.inputs import ServiceFilterInput class ServiceQueries(graphene.ObjectType): """Service query operations""" service = graphene.Field( ServiceType, id=graphene.ID(required=True) ) services = graphene.Field( List(ServiceType), filter=ServiceFilterInput() ) def resolve_service(self, info, id): return ServiceRepository.get_by_id(id) def resolve_services(self, info, filter=None): if not filter: return ServiceRepository.get_all() if filter.account_id: return ServiceRepository.get_by_account(filter.account_id) if filter.status: return ServiceRepository.get_by_status(filter.status) return ServiceRepository.filter_services( account_id=filter.account_id, status=filter.status, date_from=filter.start_date, date_to=filter.end_date, team_member_id=filter.team_member_id )