Working on membership stuff

This commit is contained in:
Scott Idem
2021-06-24 17:50:11 -04:00
parent f5f60a403c
commit d85ab35812
47 changed files with 222 additions and 191 deletions

View File

@@ -22,18 +22,32 @@ class Membership_Member_Base(BaseModel):
id_random: Optional[str] = Field(
**base_fields['membership_member_id_random'],
alias='membership_member_id_random',
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
)
alias = 'membership_member_id_random',
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias='membership_member_id'
)
alias = 'membership_member_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
membership_type_id_random: Optional[str]
membership_type_id: Optional[int] # NOTE: This is not optional
membership_member_status_id: Optional[int] = Field(
alias = 'status_id'
)
membership_member_status_name: Optional[str] = Field(
alias = 'status_name'
)
membership_type_id_random: Optional[str] = Field(
alias = 'type_id_random',
) # NOTE: This is not optional
membership_type_id: Optional[int] = Field(
alias = 'type_id',
) # NOTE: This is not optional
membership_type_name: Optional[str] = Field(
alias = 'type_name',
)
person_id_random: Optional[str]
person_id: Optional[int]
@@ -44,13 +58,7 @@ class Membership_Member_Base(BaseModel):
user_id_random: Optional[str]
user_id: Optional[int]
level_number: Optional[int] = Field(0, ge=0, lt=150)
level_name: Optional[str]
# type_id: Optional[int]
# type_name: Optional[str]
# status_id: Optional[int]
# status_name: Optional[str]
level: Optional[int] = Field(0, ge=0, lt=150)
application_start_on: Optional[datetime.datetime] = None
approved_on: Optional[datetime.datetime] = None
@@ -70,9 +78,21 @@ class Membership_Member_Base(BaseModel):
# Including other related objects
membership_type: Optional[Membership_Type_Base] # The membership option they currently have
cfg: Optional[Membership_Cfg_Base]
membership_group_list: Optional[list] # Membership_Group_Base() The membership groups they are a part of
membership_member_profile: Optional[Membership_Member_Profile_Base]
membership_cfg: Optional[Membership_Cfg_Base] = Field(
alias = 'cfg',
)
membership_group_list: Optional[list] = Field(
alias = 'group_list',
) # Membership_Group_Base() The membership groups they are a part of
membership_member_profile: Optional[Membership_Member_Profile_Base] = Field(
alias = 'profile',
)
# membership_member_profile: Optional[Membership_Member_Profile_Base] = Field(
# alias = 'profile',
# )
# = Field(
# alias = 'extended_membership_member_profile',
# )
person: Optional[dict] # should be Person_Base() but causes an import loop
product: Optional[Product_Base] # The product used to become a member?
user: Optional[dict] # should be User_Base() but causes an import loop
@@ -126,14 +146,14 @@ class Membership_Member_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person')
return None
# @validator('product_id', always=True)
# def product_id_lookup(cls, v, values, **kwargs):
# log.setLevel(logging.WARNING)
# log.debug(locals())
@validator('product_id', always=True)
def product_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
# if values['product_id_random']:
# return redis_lookup_id_random(record_id_random=values['product_id_random'], table_name='product')
# return None
if values['product_id_random']:
return redis_lookup_id_random(record_id_random=values['product_id_random'], table_name='product')
return None
@validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
@@ -146,6 +166,5 @@ class Membership_Member_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields
# Membership_Base.update_forward_refs()