Working on orders and products with for_type and for_id. To help link cont_edu and other future product types.

This commit is contained in:
Scott Idem
2021-08-07 00:04:30 -04:00
parent 17cb6786f8
commit 9915c7d9ed
2 changed files with 34 additions and 0 deletions

View File

@@ -29,6 +29,16 @@ class Order_Line_Base(BaseModel):
product_id: Optional[int]
product_type_id: Optional[int]
product_type: Optional[str]
# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
# NOTE need to check @validator NOTE NOTE NOTE NOTE
for_type: Optional[str] # Copied from the current value in product.for_type
for_id_random: Optional[str] # Copied from the current value in product.for_id_random
for_id: Optional[int] # Copied from the current value in product.for_id
# NOTE!!! Need ot add similar to order_cart_line???
# NOTE!!! Need to add to the actual order_line (and order_cart_line???) tables!
name: Optional[str]
description: Optional[str]
quantity: int = Field(0, ge=0, lt=150)
@@ -78,6 +88,15 @@ class Order_Line_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['product_id_random'], table_name='product')
return None
@validator('for_id', always=True)
def for_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['for_id_random'] and values['for_type']:
return redis_lookup_id_random(record_id_random=values['for_id_random'], table_name=values['for_type'])
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields

View File

@@ -25,6 +25,12 @@ class Product_Base(BaseModel):
account_id_random: Optional[str]
account_id: Optional[int]
# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
# NOTE need to check @validator NOTE NOTE NOTE NOTE
for_type: Optional[str]
for_id_random: Optional[str]
for_id: Optional[int]
type_id: Optional[int]
type_name: Optional[str] = Field(
# alias = 'type'
@@ -86,6 +92,15 @@ class Product_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='product')
return None
@validator('for_id', always=True)
def for_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['for_id_random'] and values['for_type']:
return redis_lookup_id_random(record_id_random=values['for_id_random'], table_name=values['for_type'])
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields