A lot of changes related to person and membership and event

This commit is contained in:
Scott Idem
2021-07-12 17:47:16 -04:00
parent 49805f48c9
commit 9d1b520718
8 changed files with 265 additions and 47 deletions

View File

@@ -138,7 +138,7 @@ class Event_Base(BaseModel):
event_presenter_list: Optional[list] # Optional[Event_Presenter_Base]
event_session_list: Optional[list] # Optional[Event_Session_Base]
event_track_list: Optional[list] # Optional[Event_Track_Base]
poc_event_person: Optional[Event_Person_Base]
# poc_event_person: Optional[Event_Person_Base]
poc_person: Optional[Person_Base]
user: Optional[User_Base]

View File

@@ -8,7 +8,7 @@ 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.event_models import Event_Base
# from app.models.event_models import Event_Base # Causes an import loop
from app.models.event_badge_models import Event_Badge_Base
# from app.models.event_person_detail_models import Event_Person_Detail_Base
from app.models.event_registration_models import Event_Registration_Base
@@ -26,18 +26,23 @@ class Event_Person_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'event_person_id'
alias = 'event_person_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
event_id_random: Optional[str]
event_id: Optional[int]
event_badge_id_random: Optional[str]
event_badge_id: Optional[int]
event_registration_id_random: Optional[str]
event_registration_id: Optional[int]
person_id_random: Optional[str]
person_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
@@ -50,6 +55,7 @@ class Event_Person_Base(BaseModel):
updated_on: Optional[datetime.datetime] = None
# Including other related objects
# event: Optional[Event_Base] # Causes an import loop
event_abstract_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more abstracts
event_badge: Optional[Event_Badge_Base]
event_exhibit_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more exhibits

View File

@@ -35,10 +35,10 @@ class Membership_Person_Base(BaseModel):
account_id_random: Optional[str]
account_id: Optional[int]
membership_person_status_id: Optional[int] = Field(
lu_membership_person_status_id: Optional[int] = Field(
alias = 'status_id'
)
membership_person_status_name: Optional[str] = Field(
lu_membership_person_status_name: Optional[str] = Field(
alias = 'status_name'
)
@@ -52,6 +52,16 @@ class Membership_Person_Base(BaseModel):
alias = 'group_name',
)
membership_group_person_id_random: Optional[str] = Field(
alias = 'group_person_id_random',
) # NOTE: This is not optional
membership_group_person_id: Optional[int] = Field(
alias = 'group_person_id',
) # NOTE: This is not optional
membership_group_person_name: Optional[str] = Field(
alias = 'group_person_name',
)
membership_type_id_random: Optional[str] = Field(
alias = 'type_id_random',
) # NOTE: This is not optional
@@ -62,11 +72,31 @@ class Membership_Person_Base(BaseModel):
alias = 'type_name',
)
membership_type_person_id_random: Optional[str] = Field(
alias = 'type_person_id_random',
) # NOTE: This is not optional
membership_type_person_id: Optional[int] = Field(
alias = 'type_person_id',
) # NOTE: This is not optional
membership_type_person_name: Optional[str] = Field(
alias = 'type_person_name',
)
person_id_random: Optional[str]
person_id: Optional[int]
product_id_random: Optional[str]
product_id: Optional[int] # The product they purchased to get this membership
# For products use:
# link using membership_person.membership_group_person_id to membership_group_person.id
# link using membership_person.membership_type_person_id to membership_type_person.id
# product_id_random: Optional[str]
# product_id: Optional[int] # The product they purchased to get this membership
# membership_group_product_id_random: Optional[str]
# membership_group_product_id: Optional[int] # The product they purchased to get this group
# membership_type_product_id_random: Optional[str]
# membership_type_product_id: Optional[int] # The product they purchased to get this type
user_id_random: Optional[str]
user_id: Optional[int]
@@ -162,6 +192,15 @@ class Membership_Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['membership_group_id_random'], table_name='membership_group')
return None
@validator('membership_group_person_id', always=True)
def membership_group_person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['membership_group_person_id_random']:
return redis_lookup_id_random(record_id_random=values['membership_group_person_id_random'], table_name='membership_group_person')
return None
@validator('membership_type_id', always=True)
def membership_type_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
@@ -171,6 +210,15 @@ class Membership_Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['membership_type_id_random'], table_name='membership_type')
return None
@validator('membership_type_person_id', always=True)
def membership_type_person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['membership_type_person_id_random']:
return redis_lookup_id_random(record_id_random=values['membership_type_person_id_random'], table_name='membership_type_person')
return None
@validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
@@ -180,14 +228,14 @@ class Membership_Person_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):

View File

@@ -26,7 +26,7 @@ class User_New_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'user_id'
alias = 'user_id'
)
account_id_random: str
account_id: Optional[int]