import datetime from typing import Optional import strawberry from strawberry.relay import GlobalID # Account inputs @strawberry.input class AccountInput: customer_id: GlobalID name: str status: str start_date: datetime.date end_date: Optional[datetime.date] = None @strawberry.input class AccountUpdateInput: id: GlobalID customer_id: Optional[GlobalID] = None name: Optional[str] = None status: Optional[str] = None start_date: Optional[datetime.date] = None end_date: Optional[datetime.date] = None # AccountAddress inputs @strawberry.input class AccountAddressInput: account_id: GlobalID name: str street_address: str city: str state: str zip_code: str is_active: bool = True is_primary: bool = False notes: str = "" @strawberry.input class AccountAddressUpdateInput: id: GlobalID name: Optional[str] = None street_address: Optional[str] = None city: Optional[str] = None state: Optional[str] = None zip_code: Optional[str] = None is_active: Optional[bool] = None is_primary: Optional[bool] = None notes: Optional[str] = None # AccountContact inputs @strawberry.input class AccountContactInput: account_id: GlobalID first_name: str last_name: str phone: Optional[str] = None email: Optional[str] = None is_primary: bool = False is_active: bool = True notes: str = "" @strawberry.input class AccountContactUpdateInput: id: GlobalID first_name: Optional[str] = None last_name: Optional[str] = None phone: Optional[str] = None email: Optional[str] = None is_primary: Optional[bool] = None is_active: Optional[bool] = None notes: Optional[str] = None