Working on membership module routes, methods, and models

This commit is contained in:
Scott Idem
2021-06-21 17:53:04 -04:00
parent ce44e93b4d
commit 728682a07f
22 changed files with 1184 additions and 267 deletions

View File

@@ -8,7 +8,8 @@ from app.db_sql import redis_lookup_id_random
from app.lib_general import log, logging
from app.models.common_field_schema import base_fields, default_num_bytes
from app.models.membership_models import Membership_Base
from app.models.membership_cfg_models import Membership_Cfg_Base
# from app.models.membership_type_models import Membership_Type_Base
class Membership_Group_Base(BaseModel):
@@ -23,8 +24,10 @@ class Membership_Group_Base(BaseModel):
id: Optional[int] = Field(
#alias='membership_group_id'
)
membership_id_random: Optional[str]
membership_id: Optional[int]
account_id_random: Optional[str]
account_id: Optional[int]
membership_type_id_random: Optional[str]
membership_type_id: Optional[int]
parent_membership_group_id_random: Optional[str]
parent_membership_group_id: Optional[int]
@@ -32,13 +35,18 @@ class Membership_Group_Base(BaseModel):
overview: Optional[str]
description: Optional[str]
expire_in_days: Optional[int]
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
# Including other related objects
membership: Optional[Membership_Base] # The membership option they currently have
parent_membership_group: Optional[Membership_Group_Base]
cfg: Optional[Membership_Cfg_Base]
# membership_type: Optional[Membership_Type_Base] # The membership option/type they currently have
membership_group_member_list: Optional[list] # Membership_Group_Member_Base
# parent_membership_group: Optional[Membership_Group_Base]
product_list: Optional[list] # Product_Base() List of products (for_type and for_id) that get this membership option
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -61,13 +69,22 @@ class Membership_Group_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership_group')
return None
@validator('membership_id', always=True)
@validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['account_id_random']:
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None
@validator('membership_type_id', always=True)
def membership_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['membership_id_random']:
return redis_lookup_id_random(record_id_random=values['membership_id_random'], table_name='membership')
if values['membership_type_id_random']:
return redis_lookup_id_random(record_id_random=values['membership_type_id_random'], table_name='membership_type')
return None
@validator('parent_membership_group_id', always=True)