2026-01-26 11:09:40 -05:00

84 lines
1.9 KiB
Python

import datetime
from typing import Optional
import strawberry
from strawberry.relay import GlobalID
# Scope inputs
@strawberry.input
class ScopeInput:
name: str
account_id: GlobalID
account_address_id: Optional[GlobalID] = None
description: str = ""
is_active: bool = True
@strawberry.input
class ScopeUpdateInput:
id: GlobalID
name: Optional[str] = None
account_id: Optional[GlobalID] = None
account_address_id: Optional[GlobalID] = None
description: Optional[str] = None
is_active: Optional[bool] = None
# Area inputs
@strawberry.input
class AreaInput:
name: str
scope_id: GlobalID
order: int = 0
@strawberry.input
class AreaUpdateInput:
id: GlobalID
name: Optional[str] = None
scope_id: Optional[GlobalID] = None
order: Optional[int] = None
# Task inputs
@strawberry.input
class TaskInput:
area_id: GlobalID
description: str
checklist_description: Optional[str] = None
frequency: str
order: int = 0
is_conditional: bool = False
estimated_minutes: Optional[int] = None
@strawberry.input
class TaskUpdateInput:
id: GlobalID
area_id: Optional[GlobalID] = None
description: Optional[str] = None
checklist_description: Optional[str] = None
frequency: Optional[str] = None
order: Optional[int] = None
is_conditional: Optional[bool] = None
estimated_minutes: Optional[int] = None
# TaskCompletion inputs
@strawberry.input
class TaskCompletionInput:
service_id: GlobalID
task_id: GlobalID
completed_by_id: GlobalID
completed_at: datetime.datetime
notes: str = ""
@strawberry.input
class TaskCompletionUpdateInput:
id: GlobalID
service_id: Optional[GlobalID] = None
task_id: Optional[GlobalID] = None
completed_by_id: Optional[GlobalID] = None
completed_at: Optional[datetime.datetime] = None
notes: Optional[str] = None