Working on membership stuff
This commit is contained in:
@@ -30,13 +30,17 @@ def load_membership_cfg_obj(
|
|||||||
field_value = account_id,
|
field_value = account_id,
|
||||||
): pass
|
): pass
|
||||||
else: return False
|
else: return False
|
||||||
log.debug(membership_cfg_rec)
|
# log.debug(membership_cfg_rec)
|
||||||
|
log.debug(type(membership_cfg_rec['extended_membership_member_profile']))
|
||||||
|
log.debug(membership_cfg_rec['extended_membership_member_profile'])
|
||||||
|
membership_cfg_rec['extended_membership_member_profile'] = str(membership_cfg_rec['extended_membership_member_profile'], )
|
||||||
|
|
||||||
try:
|
try:
|
||||||
membership_cfg_obj = Membership_Cfg_Base(**membership_cfg_rec)
|
membership_cfg_obj = Membership_Cfg_Base(**membership_cfg_rec)
|
||||||
log.debug(membership_cfg_obj)
|
log.debug(membership_cfg_obj)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
log.error(e.json())
|
log.error(e.json())
|
||||||
|
return False
|
||||||
|
|
||||||
if model_as_dict:
|
if model_as_dict:
|
||||||
return membership_cfg_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
|
return membership_cfg_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
|
||||||
|
|||||||
@@ -49,12 +49,16 @@ def load_membership_member_obj(
|
|||||||
|
|
||||||
if membership_member_rec := sql_select(table_name='v_membership_member', record_id=membership_member_id): pass
|
if membership_member_rec := sql_select(table_name='v_membership_member', record_id=membership_member_id): pass
|
||||||
else: return False
|
else: return False
|
||||||
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(membership_member_rec)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
membership_member_obj = Membership_Member_Base(**membership_member_rec)
|
membership_member_obj = Membership_Member_Base(**membership_member_rec)
|
||||||
log.debug(membership_member_obj)
|
log.debug(membership_member_obj)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
log.error(e.json())
|
log.error(e.json())
|
||||||
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(membership_member_obj)
|
||||||
|
|
||||||
# Updated 2021-06-24
|
# Updated 2021-06-24
|
||||||
if inc_membership_cfg:
|
if inc_membership_cfg:
|
||||||
@@ -64,8 +68,8 @@ def load_membership_member_obj(
|
|||||||
exclude_unset = exclude_unset,
|
exclude_unset = exclude_unset,
|
||||||
model_as_dict = model_as_dict,
|
model_as_dict = model_as_dict,
|
||||||
):
|
):
|
||||||
membership_member_obj.cfg = membership_cfg_obj_result
|
membership_member_obj.membership_cfg = membership_cfg_obj_result
|
||||||
else: membership_member_obj.cfg = None
|
else: membership_member_obj.membership_cfg = None
|
||||||
|
|
||||||
# Updated 2021-06-18
|
# Updated 2021-06-18
|
||||||
if inc_membership_group_list: # The list of groups the member is a part of
|
if inc_membership_group_list: # The list of groups the member is a part of
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class Account_Cfg_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='account_cfg_id'
|
alias = 'account_cfg_id'
|
||||||
)
|
)
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Address_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='address_id'
|
alias = 'address_id'
|
||||||
)
|
)
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class Contact_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='contact_id'
|
alias = 'contact_id'
|
||||||
)
|
)
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class Membership_Cfg_Base(BaseModel):
|
|||||||
# Including JSON data
|
# Including JSON data
|
||||||
# extended_membership_member_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
|
# extended_membership_member_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
|
||||||
# extended_membership_member_profile: Optional[Json] = '[]' # list of dicts outlining extended (custom) membership profile fields for client
|
# extended_membership_member_profile: Optional[Json] = '[]' # list of dicts outlining extended (custom) membership profile fields for client
|
||||||
extended_membership_member_profile: Optional[Json] # list of dicts outlining extended (custom) membership profile fields for client
|
# extended_membership_member_profile: Optional[Json] # list of dicts outlining extended (custom) membership profile fields for client
|
||||||
|
extended_membership_member_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
|
||||||
|
|
||||||
Membership_Cfg_Base.update_forward_refs()
|
Membership_Cfg_Base.update_forward_refs()
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from app.lib_general import log, logging
|
|||||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||||
from app.models.membership_group_models import Membership_Group_Base
|
from app.models.membership_group_models import Membership_Group_Base
|
||||||
from app.models.membership_member_models import Membership_Member_Base
|
from app.models.membership_member_models import Membership_Member_Base
|
||||||
|
from app.models.product_models import Product_Base
|
||||||
|
|
||||||
|
|
||||||
class Membership_Group_Member_Base(BaseModel):
|
class Membership_Group_Member_Base(BaseModel):
|
||||||
@@ -22,7 +23,7 @@ class Membership_Group_Member_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='membership_group_member_id'
|
alias = 'membership_group_member_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
membership_group_id_random: Optional[str]
|
membership_group_id_random: Optional[str]
|
||||||
@@ -30,6 +31,9 @@ class Membership_Group_Member_Base(BaseModel):
|
|||||||
membership_member_id_random: Optional[str]
|
membership_member_id_random: Optional[str]
|
||||||
membership_member_id: Optional[int]
|
membership_member_id: Optional[int]
|
||||||
|
|
||||||
|
product_id_random: Optional[str]
|
||||||
|
product_id: Optional[int] # The product they purchased to get this membership
|
||||||
|
|
||||||
flag: Optional[bool]
|
flag: Optional[bool]
|
||||||
flag_message: Optional[str]
|
flag_message: Optional[str]
|
||||||
|
|
||||||
@@ -41,6 +45,7 @@ class Membership_Group_Member_Base(BaseModel):
|
|||||||
# Including other related objects
|
# Including other related objects
|
||||||
membership_group: Optional[Membership_Group_Base]
|
membership_group: Optional[Membership_Group_Base]
|
||||||
membership_member: Optional[Membership_Member_Base]
|
membership_member: Optional[Membership_Member_Base]
|
||||||
|
product: Optional[Product_Base] # The product used to be a part of the group?
|
||||||
|
|
||||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||||
|
|
||||||
@@ -80,6 +85,15 @@ class Membership_Group_Member_Base(BaseModel):
|
|||||||
return redis_lookup_id_random(record_id_random=values['membership_member_id_random'], table_name='membership_member')
|
return redis_lookup_id_random(record_id_random=values['membership_member_id_random'], table_name='membership_member')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@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
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
underscore_attrs_are_private = True
|
underscore_attrs_are_private = True
|
||||||
fields = base_fields
|
fields = base_fields
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class Membership_Group_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='membership_group_id'
|
alias = 'membership_group_id'
|
||||||
)
|
)
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|||||||
@@ -26,14 +26,28 @@ class Membership_Member_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='membership_member_id'
|
alias = 'membership_member_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|
||||||
membership_type_id_random: Optional[str]
|
membership_member_status_id: Optional[int] = Field(
|
||||||
membership_type_id: Optional[int] # NOTE: This is not optional
|
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_random: Optional[str]
|
||||||
person_id: Optional[int]
|
person_id: Optional[int]
|
||||||
@@ -44,13 +58,7 @@ class Membership_Member_Base(BaseModel):
|
|||||||
user_id_random: Optional[str]
|
user_id_random: Optional[str]
|
||||||
user_id: Optional[int]
|
user_id: Optional[int]
|
||||||
|
|
||||||
level_number: Optional[int] = Field(0, ge=0, lt=150)
|
level: 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]
|
|
||||||
|
|
||||||
application_start_on: Optional[datetime.datetime] = None
|
application_start_on: Optional[datetime.datetime] = None
|
||||||
approved_on: Optional[datetime.datetime] = None
|
approved_on: Optional[datetime.datetime] = None
|
||||||
@@ -70,9 +78,21 @@ class Membership_Member_Base(BaseModel):
|
|||||||
|
|
||||||
# Including other related objects
|
# Including other related objects
|
||||||
membership_type: Optional[Membership_Type_Base] # The membership option they currently have
|
membership_type: Optional[Membership_Type_Base] # The membership option they currently have
|
||||||
cfg: Optional[Membership_Cfg_Base]
|
membership_cfg: Optional[Membership_Cfg_Base] = Field(
|
||||||
membership_group_list: Optional[list] # Membership_Group_Base() The membership groups they are a part of
|
alias = 'cfg',
|
||||||
membership_member_profile: Optional[Membership_Member_Profile_Base]
|
)
|
||||||
|
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
|
person: Optional[dict] # should be Person_Base() but causes an import loop
|
||||||
product: Optional[Product_Base] # The product used to become a member?
|
product: Optional[Product_Base] # The product used to become a member?
|
||||||
user: Optional[dict] # should be User_Base() but causes an import loop
|
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 redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# @validator('product_id', always=True)
|
@validator('product_id', always=True)
|
||||||
# def product_id_lookup(cls, v, values, **kwargs):
|
def product_id_lookup(cls, v, values, **kwargs):
|
||||||
# log.setLevel(logging.WARNING)
|
log.setLevel(logging.WARNING)
|
||||||
# log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
# if values['product_id_random']:
|
if values['product_id_random']:
|
||||||
# return redis_lookup_id_random(record_id_random=values['product_id_random'], table_name='product')
|
return redis_lookup_id_random(record_id_random=values['product_id_random'], table_name='product')
|
||||||
# return None
|
return None
|
||||||
|
|
||||||
@validator('user_id', always=True)
|
@validator('user_id', always=True)
|
||||||
def user_id_lookup(cls, v, values, **kwargs):
|
def user_id_lookup(cls, v, values, **kwargs):
|
||||||
@@ -146,6 +166,5 @@ class Membership_Member_Base(BaseModel):
|
|||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
underscore_attrs_are_private = True
|
underscore_attrs_are_private = True
|
||||||
|
allow_population_by_field_name = True
|
||||||
fields = base_fields
|
fields = base_fields
|
||||||
|
|
||||||
# Membership_Base.update_forward_refs()
|
|
||||||
|
|||||||
@@ -23,12 +23,15 @@ class Membership_Member_Profile_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='membership_member_profile_id'
|
alias = 'membership_member_profile_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
contact_id_random: Optional[str]
|
contact_id_random: Optional[str]
|
||||||
contact_id: Optional[int]
|
contact_id: Optional[int]
|
||||||
|
|
||||||
# membership_type_id_random: Optional[str]
|
# membership_type_id_random: Optional[str]
|
||||||
# membership_type_id: Optional[int]
|
# membership_type_id: Optional[int]
|
||||||
|
|
||||||
organization_id_random: Optional[str]
|
organization_id_random: Optional[str]
|
||||||
organization_id: Optional[int]
|
organization_id: Optional[int]
|
||||||
|
|
||||||
@@ -72,15 +75,6 @@ class Membership_Member_Profile_Base(BaseModel):
|
|||||||
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership_member_profile')
|
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership_member_profile')
|
||||||
return None
|
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_type_id_random']:
|
|
||||||
# return redis_lookup_id_random(record_id_random=values['membership_type_id_random'], table_name='membership_type')
|
|
||||||
# return None
|
|
||||||
|
|
||||||
@validator('contact_id', always=True)
|
@validator('contact_id', always=True)
|
||||||
def contact_id_lookup(cls, v, values, **kwargs):
|
def contact_id_lookup(cls, v, values, **kwargs):
|
||||||
log.setLevel(logging.WARNING)
|
log.setLevel(logging.WARNING)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Membership_Type_Base(BaseModel):
|
|||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='membership_type_id'
|
alias = 'membership_type_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
|
|||||||
@@ -19,18 +19,13 @@ class Person_Base(BaseModel):
|
|||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
#from .organization_models import Organization_Base
|
|
||||||
#if TYPE_CHECKING:
|
|
||||||
#from .supporting_core_models import Address_Base, Contact_Base, Organization_Base, Person_Base, User_Base
|
|
||||||
#from .supporting_core_models import Address_Base, Contact_Base, Organization_Base, User_Base
|
|
||||||
|
|
||||||
id_random: Optional[str] = Field(
|
id_random: Optional[str] = Field(
|
||||||
**base_fields['person_id_random'],
|
**base_fields['person_id_random'],
|
||||||
alias = 'person_id_random',
|
alias = 'person_id_random',
|
||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
#alias='person_id'
|
alias = 'person_id'
|
||||||
)
|
)
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ async def get_membership_member_obj(
|
|||||||
by_alias: Optional[bool] = True,
|
by_alias: Optional[bool] = True,
|
||||||
exclude_unset: Optional[bool] = True,
|
exclude_unset: Optional[bool] = True,
|
||||||
):
|
):
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if membership_member_id := redis_lookup_id_random(record_id_random=membership_member_id, table_name='membership_member'): pass
|
if membership_member_id := redis_lookup_id_random(record_id_random=membership_member_id, table_name='membership_member'): pass
|
||||||
|
|||||||
Reference in New Issue
Block a user