79 lines
1.8 KiB
Python
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
|