import graphene from graphene import List from backend.core.repositories import ReportRepository from backend.graphql_api.types import ReportType from backend.graphql_api.inputs import ReportFilterInput class ReportQueries(graphene.ObjectType): """Report query operations""" report = graphene.Field( ReportType, id=graphene.ID(required=True) ) reports = graphene.Field( List(ReportType), filter=ReportFilterInput() ) def resolve_report(self, info, id): return ReportRepository.get_with_all_related(id) def resolve_reports(self, info, filter=None): if not filter: return ReportRepository.get_all() if filter.team_member_id: return ReportRepository.get_by_team_member(filter.team_member_id) return ReportRepository.get_by_date_range( start_date=filter.start_date, end_date=filter.end_date )