Working on products and carts

This commit is contained in:
Scott Idem
2021-08-02 17:25:48 -04:00
parent c639c2b0a0
commit ac21a67c8a
4 changed files with 114 additions and 42 deletions

View File

@@ -30,23 +30,30 @@ class Order_Cart_Line_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'order_cart_line_id'
alias = 'order_cart_line_id'
)
#order_cart_line_id_random: Optional[str]
order_cart_id_random: Optional[str]
order_cart_id: Optional[int]
product_id_random: str
product_id: Optional[int]
product_type_id: Optional[int]
product_type: Optional[str]
product_name: Optional[str]
product_description: Optional[str]
product_unit_price: Optional[int] = Field(0, ge=0, lt=1500000)
product_max_quantity: Optional[int] = Field(0, ge=0, lt=150)
quantity: int = Field(0, ge=0, lt=150)
amount: int = Field(0, ge=0, lt=1500000)
recurring: Optional[bool] = False
message: Optional[str]
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
@@ -92,6 +99,7 @@ class Order_Cart_Line_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields
@@ -105,19 +113,24 @@ class Order_Cart_DB_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'order_cart_id'
alias = 'order_cart_id'
)
account_id_random: Optional[str]
account_id: Optional[int] # NOTE: This is not really optional
person_id_random: Optional[str]
person_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
order_id_random: Optional[str]
order_id: Optional[int]
total_quantity: Optional[int] = Field(0, ge=0, lt=150)
total_amount: Optional[int] = Field(0, ge=0, lt=1500000)
notes: Optional[str]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -178,6 +191,7 @@ class Order_Cart_DB_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields
@@ -191,27 +205,31 @@ class Order_Cart_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'order_cart_id'
alias = 'order_cart_id'
)
#order_cart_id_random: Optional[str]
#order_cart_id: Optional[int]
account_id_random: Optional[str]
account_id: Optional[int] # NOTE: This is not really optional
person_id_random: Optional[str]
person_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
order_id_random: Optional[str]
order_id: Optional[int]
total_quantity: Optional[int] = Field(0, ge=0, lt=150)
total_amount: Optional[int] = Field(0, ge=0, lt=1500000)
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
# Including other related objects
order_cart_line_li: List[Order_Cart_Line_Base] = []
order_cart_line_list: Optional[list[Order_Cart_Line_Base]] # Order_Line_Base() # List[Order_Cart_Line_Base] = []
cfg: Optional[Order_Cart_Cfg_Base] = Order_Cart_Cfg_Base() # Should this be renamed to order_cart_cfg?
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -272,4 +290,5 @@ class Order_Cart_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields