2021-01-06 19:52:14 +08:00
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
2021-02-27 19:24:39 +08:00
|
|
|
|
|
|
|
#
|
2021-01-06 19:52:14 +08:00
|
|
|
# Client Schemas
|
|
|
|
#
|
|
|
|
|
|
|
|
# Shared properties
|
|
|
|
class ClientBase(BaseModel):
|
|
|
|
name: Optional[str] = None
|
|
|
|
code: Optional[str] = None
|
2021-02-27 19:24:39 +08:00
|
|
|
district_uid: Optional[str] = None
|
2021-01-06 19:52:14 +08:00
|
|
|
email: Optional[str] = None
|
|
|
|
email_cc: Optional[str] = None
|
|
|
|
consent_email: Optional[str] = None
|
|
|
|
mobile_phone: Optional[str] = None
|
|
|
|
business_phone: Optional[str] = None
|
|
|
|
consent_sms: Optional[str] = None
|
|
|
|
active: Optional[bool] = True
|
|
|
|
|
2021-02-27 19:24:39 +08:00
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
class ClientBaseInDB(ClientBase):
|
|
|
|
uid: Optional[str] = None
|
|
|
|
|
|
|
|
class Config:
|
|
|
|
orm_mode = True
|
|
|
|
|
2021-02-27 19:24:39 +08:00
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
# Properties to receive via API on creation
|
|
|
|
class ClientCreate(ClientBase):
|
|
|
|
district_uid: str
|
|
|
|
|
2021-02-27 19:24:39 +08:00
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
# Properties to receive via API on update
|
|
|
|
class ClientUpdate(ClientBase):
|
2021-02-27 19:24:39 +08:00
|
|
|
pass
|
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
|
|
|
|
# Properties to return via API
|
|
|
|
class Client(ClientBaseInDB):
|
|
|
|
pass
|
|
|
|
|
2021-02-27 19:24:39 +08:00
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
# Properties stored in DB
|
|
|
|
class ClientInDB(ClientBaseInDB):
|
2021-02-27 19:24:39 +08:00
|
|
|
pass
|