diff --git a/app/models/order_line_models.py b/app/models/order_line_models.py index 4510256..341d95f 100644 --- a/app/models/order_line_models.py +++ b/app/models/order_line_models.py @@ -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 diff --git a/app/models/product_models.py b/app/models/product_models.py index 492defc..6784fc9 100644 --- a/app/models/product_models.py +++ b/app/models/product_models.py @@ -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