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

168 lines
6.5 KiB
Python

import graphene
from backend.graphql_api.queries.accounts.accounts import AccountQueries
from backend.graphql_api.queries.customers.customers import CustomerQueries
from backend.graphql_api.queries.invoices.invoices import InvoiceQueries
from backend.graphql_api.queries.labor.labor import LaborQueries
from backend.graphql_api.queries.profiles.profiles import ProfileQueries
from backend.graphql_api.queries.projects.projects import ProjectQueries
from backend.graphql_api.queries.reports.reports import ReportQueries
from backend.graphql_api.queries.revenues.revenues import RevenueQueries
from backend.graphql_api.queries.schedules.schedules import ScheduleQueries
from backend.graphql_api.queries.services.services import ServiceQueries
from backend.graphql_api.mutations.auth.auth import (
TokenAuthMutation, VerifyTokenMutation,
RefreshTokenMutation
)
from backend.graphql_api.mutations.accounts.accounts import (
CreateAccountMutation, UpdateAccountMutation,
DeleteAccountMutation, MarkAccountInactiveMutation,
GetAccountRevenueMutation
)
from backend.graphql_api.mutations.customers.customers import (
CreateCustomerMutation, UpdateCustomerMutation,
DeleteCustomerMutation, MarkCustomerInactiveMutation
)
from backend.graphql_api.mutations.invoices.invoices import (
CreateInvoiceMutation, SendInvoiceMutation,
MarkInvoicePaidMutation, CancelInvoiceMutation
)
from backend.graphql_api.mutations.labor.labor import (
CreateLaborMutation, UpdateLaborMutation,
DeleteLaborMutation, EndLaborMutation,
CalculateLaborCostMutation
)
from backend.graphql_api.mutations.profiles.profiles import (
CreateProfileMutation, UpdateProfileMutation,
DeleteProfileMutation, SearchProfilesMutation
)
from backend.graphql_api.mutations.projects.projects import (
CreateProjectMutation, UpdateProjectMutation,
DeleteProjectMutation
)
from backend.graphql_api.mutations.reports.reports import (
CreateReportMutation, UpdateReportMutation,
DeleteReportMutation, GetTeamMemberActivityMutation,
GetTeamSummaryMutation, GetTeamMemberReportsMutation
)
from backend.graphql_api.mutations.revenues.revenues import (
CreateRevenueMutation, UpdateRevenueMutation,
DeleteRevenueMutation, EndRevenueMutation,
CalculateTotalRevenueMutation, GetRevenueByDateRangeMutation,
GetActiveRevenuesMutation
)
from backend.graphql_api.mutations.schedules.schedules import (
CreateScheduleMutation, UpdateScheduleMutation,
DeleteScheduleMutation, EndScheduleMutation,
GenerateServicesMutation, GetActiveSchedulesMutation,
GetScheduleByAccountMutation, SearchSchedulesMutation
)
from backend.graphql_api.mutations.services.services import (
CreateServiceMutation, UpdateServiceMutation,
DeleteServiceMutation, CompleteServiceMutation,
CancelServiceMutation, AssignTeamMembersMutation,
GetServicesByDateRangeMutation, BulkScheduleServicesMutation
)
class Query(
AccountQueries,
CustomerQueries,
InvoiceQueries,
LaborQueries,
ProfileQueries,
ProjectQueries,
ReportQueries,
RevenueQueries,
ScheduleQueries,
ServiceQueries,
graphene.ObjectType
):
hello = graphene.String(default_value="Hi there!")
pass
class Mutation(graphene.ObjectType):
# Auth mutations
token_auth = TokenAuthMutation.Field()
verify_token = VerifyTokenMutation.Field()
refresh_token = RefreshTokenMutation.Field()
# Account mutations
create_account = CreateAccountMutation.Field()
update_account = UpdateAccountMutation.Field()
delete_account = DeleteAccountMutation.Field()
mark_account_inactive = MarkAccountInactiveMutation.Field()
get_account_revenue = GetAccountRevenueMutation.Field()
# Customer mutations
create_customer = CreateCustomerMutation.Field()
update_customer = UpdateCustomerMutation.Field()
delete_customer = DeleteCustomerMutation.Field()
mark_customer_inactive = MarkCustomerInactiveMutation.Field()
# Invoice mutations
create_invoice = CreateInvoiceMutation.Field()
send_invoice = SendInvoiceMutation.Field()
mark_invoice_paid = MarkInvoicePaidMutation.Field()
cancel_invoice = CancelInvoiceMutation.Field()
# Labor mutations
create_labor = CreateLaborMutation.Field()
update_labor = UpdateLaborMutation.Field()
delete_labor = DeleteLaborMutation.Field()
end_labor = EndLaborMutation.Field()
calculate_labor_cost = CalculateLaborCostMutation.Field()
# Profile mutations
create_profile = CreateProfileMutation.Field()
update_profile = UpdateProfileMutation.Field()
delete_profile = DeleteProfileMutation.Field()
search_profiles = SearchProfilesMutation.Field()
# Project mutations
create_project = CreateProjectMutation.Field()
update_project = UpdateProjectMutation.Field()
delete_project = DeleteProjectMutation.Field()
# Report mutations
create_report = CreateReportMutation.Field()
update_report = UpdateReportMutation.Field()
delete_report = DeleteReportMutation.Field()
get_team_member_activity = GetTeamMemberActivityMutation.Field()
get_team_summary = GetTeamSummaryMutation.Field()
get_team_member_reports = GetTeamMemberReportsMutation.Field()
# Revenue mutations
create_revenue = CreateRevenueMutation.Field()
update_revenue = UpdateRevenueMutation.Field()
delete_revenue = DeleteRevenueMutation.Field()
end_revenue = EndRevenueMutation.Field()
calculate_total_revenue = CalculateTotalRevenueMutation.Field()
get_revenue_by_date_range = GetRevenueByDateRangeMutation.Field()
get_active_revenues = GetActiveRevenuesMutation.Field()
# Schedule mutations
create_schedule = CreateScheduleMutation.Field()
update_schedule = UpdateScheduleMutation.Field()
delete_schedule = DeleteScheduleMutation.Field()
end_schedule = EndScheduleMutation.Field()
generate_services = GenerateServicesMutation.Field()
get_active_schedules = GetActiveSchedulesMutation.Field()
get_schedule_by_account = GetScheduleByAccountMutation.Field()
search_schedules = SearchSchedulesMutation.Field()
# Service mutations
create_service = CreateServiceMutation.Field()
update_service = UpdateServiceMutation.Field()
delete_service = DeleteServiceMutation.Field()
complete_service = CompleteServiceMutation.Field()
cancel_service = CancelServiceMutation.Field()
assign_team_members = AssignTeamMembersMutation.Field()
get_services_by_date_range = GetServicesByDateRangeMutation.Field()
bulk_schedule_services = BulkScheduleServicesMutation.Field()
schema = graphene.Schema(query=Query, mutation=Mutation)