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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user