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

79 lines
1.8 KiB
Python

import datetime
from typing import Optional
import strawberry
from strawberry.relay import GlobalID
# Customer inputs
@strawberry.input
class CustomerInput:
name: str
status: str
start_date: datetime.date
end_date: Optional[datetime.date] = None
billing_terms: str
billing_email: str
wave_customer_id: Optional[str] = None
@strawberry.input
class CustomerUpdateInput:
id: GlobalID
name: Optional[str] = None
status: Optional[str] = None
start_date: Optional[datetime.date] = None
end_date: Optional[datetime.date] = None
billing_terms: Optional[str] = None
billing_email: Optional[str] = None
wave_customer_id: Optional[str] = None
# CustomerAddress inputs
@strawberry.input
class CustomerAddressInput:
customer_id: GlobalID
street_address: str
city: str
state: str
zip_code: str
address_type: str
is_active: bool = True
is_primary: bool = False
@strawberry.input
class CustomerAddressUpdateInput:
id: GlobalID
street_address: Optional[str] = None
city: Optional[str] = None
state: Optional[str] = None
zip_code: Optional[str] = None
address_type: Optional[str] = None
is_active: Optional[bool] = None
is_primary: Optional[bool] = None
# CustomerContact inputs
@strawberry.input
class CustomerContactInput:
customer_id: GlobalID
first_name: str
last_name: str
phone: str
email: str
is_primary: bool = False
is_active: bool = True
notes: str = ""
@strawberry.input
class CustomerContactUpdateInput:
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