import graphene from graphene import List from backend.core.repositories import RevenueRepository from backend.graphql_api.types import RevenueType from backend.graphql_api.inputs import RevenueFilterInput class RevenueQueries(graphene.ObjectType): """Revenue query operations""" revenue = graphene.Field( RevenueType, id=graphene.ID(required=True) ) revenues = graphene.Field( List(RevenueType), filter=RevenueFilterInput() ) def resolve_revenue(self, info, id): return RevenueRepository.get_by_id(id) def resolve_revenues(self, info, filter=None): if not filter: return RevenueRepository.get_all() if filter.account_id: return RevenueRepository.get_by_account(filter.account_id) if filter.is_active is not None: return RevenueRepository.get_active() if filter.is_active else RevenueRepository.get_inactive() return RevenueRepository.get_by_date_range( start_date=filter.start_date, end_date=filter.end_date )