From d85ab3581267fd2bc6bca67cacf7b562f9895512 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 24 Jun 2021 17:50:11 -0400 Subject: [PATCH] Working on membership stuff --- app/methods/membership_cfg_methods.py | 6 +- app/methods/membership_member_methods.py | 8 ++- app/models/account_cfg_models.py | 6 +- app/models/account_models.py | 6 +- app/models/address_models.py | 6 +- app/models/api_models.py | 4 +- app/models/archive_content_models.py | 6 +- app/models/archive_models.py | 6 +- app/models/contact_models.py | 6 +- app/models/event_abstract_models.py | 6 +- app/models/event_badge_models.py | 6 +- app/models/event_exhibit_models.py | 6 +- app/models/event_file_models.py | 6 +- app/models/event_location_models.py | 6 +- app/models/event_models.py | 14 ++-- app/models/event_person_detail_models.py | 6 +- app/models/event_person_models.py | 14 ++-- app/models/event_presentation_models.py | 6 +- app/models/event_presenter_models.py | 6 +- app/models/event_registration_models.py | 6 +- app/models/event_session_models.py | 6 +- app/models/event_track_models.py | 6 +- app/models/flask_cfg_models.py | 6 +- app/models/fundraising_cfg_models.py | 6 +- app/models/hosted_file_link_models.py | 6 +- app/models/hosted_file_models.py | 6 +- app/models/membership_cfg_models.py | 3 +- app/models/membership_group_member_models.py | 20 +++++- app/models/membership_group_models.py | 6 +- app/models/membership_member_models.py | 71 ++++++++++++------- .../membership_member_profile_models.py | 18 ++--- app/models/membership_type_models.py | 6 +- app/models/order_cart_models.py | 18 ++--- app/models/order_line_models.py | 6 +- app/models/order_models.py | 12 ++-- app/models/organization_models.py | 6 +- app/models/page_models.py | 6 +- app/models/person_models.py | 11 +-- app/models/post_comment_models.py | 6 +- app/models/post_models.py | 6 +- app/models/product_models.py | 8 +-- app/models/response_models.py | 2 +- app/models/site_domain_models.py | 6 +- app/models/site_models.py | 6 +- app/models/user_models.py | 16 ++--- app/models/user_role_models.py | 6 +- app/routers/membership_member.py | 2 +- 47 files changed, 222 insertions(+), 191 deletions(-) diff --git a/app/methods/membership_cfg_methods.py b/app/methods/membership_cfg_methods.py index 74988d7..836795c 100644 --- a/app/methods/membership_cfg_methods.py +++ b/app/methods/membership_cfg_methods.py @@ -30,13 +30,17 @@ def load_membership_cfg_obj( field_value = account_id, ): pass 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: membership_cfg_obj = Membership_Cfg_Base(**membership_cfg_rec) log.debug(membership_cfg_obj) except ValidationError as e: log.error(e.json()) + return False if model_as_dict: return membership_cfg_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member diff --git a/app/methods/membership_member_methods.py b/app/methods/membership_member_methods.py index e212f1b..e1cf1e7 100644 --- a/app/methods/membership_member_methods.py +++ b/app/methods/membership_member_methods.py @@ -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 else: return False + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(membership_member_rec) try: membership_member_obj = Membership_Member_Base(**membership_member_rec) log.debug(membership_member_obj) except ValidationError as e: log.error(e.json()) + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(membership_member_obj) # Updated 2021-06-24 if inc_membership_cfg: @@ -64,8 +68,8 @@ def load_membership_member_obj( exclude_unset = exclude_unset, model_as_dict = model_as_dict, ): - membership_member_obj.cfg = membership_cfg_obj_result - else: membership_member_obj.cfg = None + membership_member_obj.membership_cfg = membership_cfg_obj_result + else: membership_member_obj.membership_cfg = None # Updated 2021-06-18 if inc_membership_group_list: # The list of groups the member is a part of diff --git a/app/models/account_cfg_models.py b/app/models/account_cfg_models.py index d8c4478..0290a05 100644 --- a/app/models/account_cfg_models.py +++ b/app/models/account_cfg_models.py @@ -18,11 +18,11 @@ class Account_Cfg_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['account_cfg_id_random'], - alias='account_cfg_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'account_cfg_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='account_cfg_id' + alias = 'account_cfg_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/account_models.py b/app/models/account_models.py index 0560774..acf7cf7 100644 --- a/app/models/account_models.py +++ b/app/models/account_models.py @@ -24,11 +24,11 @@ class Account_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['account_id_random'], - alias='account_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'account_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - alias='account_id' + alias = 'account_id' ) # account_id: Optional[int] = Field( # ) diff --git a/app/models/address_models.py b/app/models/address_models.py index 10b5db1..b0fdaf5 100644 --- a/app/models/address_models.py +++ b/app/models/address_models.py @@ -17,11 +17,11 @@ class Address_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['address_id_random'], - alias='address_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'address_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='address_id' + alias = 'address_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/api_models.py b/app/models/api_models.py index c821b9c..01ec011 100644 --- a/app/models/api_models.py +++ b/app/models/api_models.py @@ -19,12 +19,12 @@ class Api_Base(BaseModel): secret_key: Optional[str] enable: Optional[bool] enable_from: Optional[datetime.datetime] = Field( - default_factory=lambda:datetime.datetime.now, + default_factory = lambda:datetime.datetime.now, ) enable_to: Optional[datetime.datetime] temporary_token: str = Field( - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) expire_on: Optional[datetime.datetime] = Field( default_factory=datetime.datetime.now, diff --git a/app/models/archive_content_models.py b/app/models/archive_content_models.py index e4c49bc..e7cbd09 100644 --- a/app/models/archive_content_models.py +++ b/app/models/archive_content_models.py @@ -16,11 +16,11 @@ class Archive_Content_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['archive_id_random'], - alias='archive_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'archive_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - alias='archive_id' + alias = 'archive_id' ) account_id_random: Optional[str] # Is this field really needed? account_id: Optional[int] # Is this field really needed? diff --git a/app/models/archive_models.py b/app/models/archive_models.py index f8041a0..ca02838 100644 --- a/app/models/archive_models.py +++ b/app/models/archive_models.py @@ -16,11 +16,11 @@ class Archive_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['archive_id_random'], - alias='archive_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'archive_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='archive_id' + #alias = 'archive_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/contact_models.py b/app/models/contact_models.py index ac680f8..1840cd1 100644 --- a/app/models/contact_models.py +++ b/app/models/contact_models.py @@ -18,11 +18,11 @@ class Contact_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['contact_id_random'], - alias='contact_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'contact_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='contact_id' + alias = 'contact_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/event_abstract_models.py b/app/models/event_abstract_models.py index 2c0ddf2..7051be5 100644 --- a/app/models/event_abstract_models.py +++ b/app/models/event_abstract_models.py @@ -24,11 +24,11 @@ class Event_Abstract_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_abstract_id_random'], - alias='event_abstract_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_abstract_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_abstract_id' + #alias = 'event_abstract_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/event_badge_models.py b/app/models/event_badge_models.py index cba71ca..2ac8f37 100644 --- a/app/models/event_badge_models.py +++ b/app/models/event_badge_models.py @@ -16,11 +16,11 @@ class Event_Badge_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_badge_id_random'], - alias='event_badge_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_badge_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_badge_id' + #alias = 'event_badge_id' ) # account_id_random: Optional[str] # account_id: Optional[int] diff --git a/app/models/event_exhibit_models.py b/app/models/event_exhibit_models.py index e03458a..f37df21 100644 --- a/app/models/event_exhibit_models.py +++ b/app/models/event_exhibit_models.py @@ -16,11 +16,11 @@ class Event_Exhibit_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_exhibit_id_random'], - alias='event_exhibit_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_exhibit_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_exhibit_id' + #alias = 'event_exhibit_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/event_file_models.py b/app/models/event_file_models.py index 8ec4fc7..d936a0c 100644 --- a/app/models/event_file_models.py +++ b/app/models/event_file_models.py @@ -17,11 +17,11 @@ class Event_File_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_file_id_random'], - alias='event_file_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_file_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_file_id' + #alias = 'event_file_id' ) hosted_file_id_random: Optional[str] diff --git a/app/models/event_location_models.py b/app/models/event_location_models.py index 9de0ad1..9733994 100644 --- a/app/models/event_location_models.py +++ b/app/models/event_location_models.py @@ -18,11 +18,11 @@ class Event_Location_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_location_id_random'], - alias='event_location_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_location_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_location_id' + #alias = 'event_location_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/event_models.py b/app/models/event_models.py index 83e0e7c..af76da9 100644 --- a/app/models/event_models.py +++ b/app/models/event_models.py @@ -21,11 +21,11 @@ class Event_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_id_random'], - alias='event_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_id' + #alias = 'event_id' ) account_id_random: Optional[str] account_id: Optional[int] @@ -39,7 +39,7 @@ class Event_Base(BaseModel): #lu_event_type: Optional[str] # Needs to be reviewed type_name: Optional[str] = Field( - alias='type' + alias = 'type' ) name: Optional[str] @@ -190,11 +190,11 @@ class Event_Cfg_Base(BaseModel): # id_random: Optional[str] = Field( # **base_fields['event_cfg_id_random'], - # alias='event_cfg_id_random', - # default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + # alias = 'event_cfg_id_random', + # default_factory = lambda:secrets.token_urlsafe(default_num_bytes), # ) # id: Optional[int] = Field( - # #alias='event_cfg_id' + # #alias = 'event_cfg_id' # ) enable: Optional[bool] diff --git a/app/models/event_person_detail_models.py b/app/models/event_person_detail_models.py index fb05845..3dc8295 100644 --- a/app/models/event_person_detail_models.py +++ b/app/models/event_person_detail_models.py @@ -20,11 +20,11 @@ class Event_Person_Detail_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_person_detail_id_random'], - alias='event_person_detail_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_person_detail_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_person_detail_id' + #alias = 'event_person_detail_id' ) event_person_id_random: Optional[str] event_person_id: Optional[int] diff --git a/app/models/event_person_models.py b/app/models/event_person_models.py index 91aacb0..805e0f4 100644 --- a/app/models/event_person_models.py +++ b/app/models/event_person_models.py @@ -22,11 +22,11 @@ class Event_Person_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_person_id_random'], - alias='event_person_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_person_id_random', + 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] @@ -150,11 +150,11 @@ class Event_Person_New_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_person_id_random'], - alias='event_person_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_person_id_random', + 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] @@ -169,7 +169,7 @@ class Event_Person_New_Base(BaseModel): email: Optional[str] - #new_password: str = Field(default_factory=lambda:secrets.token_urlsafe(default_num_bytes)) + #new_password: str = Field(default_factory = lambda:secrets.token_urlsafe(default_num_bytes)) #password: Optional[str] new_password: Optional[str] diff --git a/app/models/event_presentation_models.py b/app/models/event_presentation_models.py index fea2467..8cf68bb 100644 --- a/app/models/event_presentation_models.py +++ b/app/models/event_presentation_models.py @@ -21,11 +21,11 @@ class Event_Presentation_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_presentation_id_random'], - alias='event_presentation_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_presentation_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_presentation_id' + #alias = 'event_presentation_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/event_presenter_models.py b/app/models/event_presenter_models.py index aef250c..20bd43b 100644 --- a/app/models/event_presenter_models.py +++ b/app/models/event_presenter_models.py @@ -23,11 +23,11 @@ class Event_Presenter_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_presenter_id_random'], - alias='event_presenter_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_presenter_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_presenter_id' + #alias = 'event_presenter_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/event_registration_models.py b/app/models/event_registration_models.py index ea29a0c..fd60bc1 100644 --- a/app/models/event_registration_models.py +++ b/app/models/event_registration_models.py @@ -16,11 +16,11 @@ class Event_Registration_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_registration_id_random'], - alias='event_registration_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_registration_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_registration_id' + #alias = 'event_registration_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/event_session_models.py b/app/models/event_session_models.py index 48c2fc2..07960f5 100644 --- a/app/models/event_session_models.py +++ b/app/models/event_session_models.py @@ -21,11 +21,11 @@ class Event_Session_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_session_id_random'], - alias='event_session_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_session_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_session_id' + #alias = 'event_session_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/event_track_models.py b/app/models/event_track_models.py index 796d6d8..0625a66 100644 --- a/app/models/event_track_models.py +++ b/app/models/event_track_models.py @@ -17,11 +17,11 @@ class Event_Track_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['event_track_id_random'], - alias='event_track_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'event_track_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='event_track_id' + #alias = 'event_track_id' ) event_id_random: Optional[str] event_id: Optional[int] diff --git a/app/models/flask_cfg_models.py b/app/models/flask_cfg_models.py index 3771824..5e2c9bd 100644 --- a/app/models/flask_cfg_models.py +++ b/app/models/flask_cfg_models.py @@ -16,11 +16,11 @@ class Flask_Cfg_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['flask_cfg_id_random'], - alias='flask_cfg_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'flask_cfg_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='flask_cfg_id' + #alias = 'flask_cfg_id' ) code: Optional[str] diff --git a/app/models/fundraising_cfg_models.py b/app/models/fundraising_cfg_models.py index 58f46e1..3a8cac8 100644 --- a/app/models/fundraising_cfg_models.py +++ b/app/models/fundraising_cfg_models.py @@ -16,11 +16,11 @@ class Fundraising_Cfg_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['fundraising_cfg_id_random'], - alias='fundraising_cfg_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'fundraising_cfg_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='fundraising_cfg_id' + #alias = 'fundraising_cfg_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/hosted_file_link_models.py b/app/models/hosted_file_link_models.py index 9608079..9b14b76 100644 --- a/app/models/hosted_file_link_models.py +++ b/app/models/hosted_file_link_models.py @@ -16,11 +16,11 @@ class Hosted_File_Link_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['hosted_file_link_id_random'], - alias='hosted_file_link_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'hosted_file_link_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='hosted_file_link_id' + #alias = 'hosted_file_link_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/hosted_file_models.py b/app/models/hosted_file_models.py index 4e0ec1f..7ebfb4b 100644 --- a/app/models/hosted_file_models.py +++ b/app/models/hosted_file_models.py @@ -16,11 +16,11 @@ class Hosted_File_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['hosted_file_id_random'], - alias='hosted_file_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'hosted_file_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='hosted_file_id' + #alias = 'hosted_file_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/membership_cfg_models.py b/app/models/membership_cfg_models.py index 25f449a..a575b81 100644 --- a/app/models/membership_cfg_models.py +++ b/app/models/membership_cfg_models.py @@ -41,6 +41,7 @@ class Membership_Cfg_Base(BaseModel): # 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[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() diff --git a/app/models/membership_group_member_models.py b/app/models/membership_group_member_models.py index 6cb79f8..3e22c2a 100644 --- a/app/models/membership_group_member_models.py +++ b/app/models/membership_group_member_models.py @@ -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.membership_group_models import Membership_Group_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): @@ -18,11 +19,11 @@ class Membership_Group_Member_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['membership_group_member_id_random'], - alias='membership_group_member_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'membership_group_member_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='membership_group_member_id' + alias = 'membership_group_member_id' ) 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: Optional[int] + product_id_random: Optional[str] + product_id: Optional[int] # The product they purchased to get this membership + flag: Optional[bool] flag_message: Optional[str] @@ -41,6 +45,7 @@ class Membership_Group_Member_Base(BaseModel): # Including other related objects membership_group: Optional[Membership_Group_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) @@ -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 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: underscore_attrs_are_private = True fields = base_fields diff --git a/app/models/membership_group_models.py b/app/models/membership_group_models.py index b7ddea7..9441b6b 100644 --- a/app/models/membership_group_models.py +++ b/app/models/membership_group_models.py @@ -18,11 +18,11 @@ class Membership_Group_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['membership_group_id_random'], - alias='membership_group_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'membership_group_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='membership_group_id' + alias = 'membership_group_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/membership_member_models.py b/app/models/membership_member_models.py index 33d4efd..1e3a07f 100644 --- a/app/models/membership_member_models.py +++ b/app/models/membership_member_models.py @@ -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() diff --git a/app/models/membership_member_profile_models.py b/app/models/membership_member_profile_models.py index 49e1ff6..12c23b0 100644 --- a/app/models/membership_member_profile_models.py +++ b/app/models/membership_member_profile_models.py @@ -19,16 +19,19 @@ class Membership_Member_Profile_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['membership_member_profile_id_random'], - alias='membership_member_profile_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'membership_member_profile_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='membership_member_profile_id' + alias = 'membership_member_profile_id' ) + contact_id_random: Optional[str] contact_id: Optional[int] + # membership_type_id_random: Optional[str] # membership_type_id: Optional[int] + organization_id_random: Optional[str] 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 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) def contact_id_lookup(cls, v, values, **kwargs): log.setLevel(logging.WARNING) diff --git a/app/models/membership_type_models.py b/app/models/membership_type_models.py index 9e61a7d..c653bb4 100644 --- a/app/models/membership_type_models.py +++ b/app/models/membership_type_models.py @@ -17,11 +17,11 @@ class Membership_Type_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['membership_type_id_random'], - alias='membership_type_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'membership_type_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='membership_type_id' + alias = 'membership_type_id' ) account_id_random: Optional[str] diff --git a/app/models/order_cart_models.py b/app/models/order_cart_models.py index 28c729c..fe87d68 100644 --- a/app/models/order_cart_models.py +++ b/app/models/order_cart_models.py @@ -26,11 +26,11 @@ class Order_Cart_Line_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['order_cart_line_id_random'], - alias='order_cart_line_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'order_cart_line_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='order_cart_line_id' + #alias = 'order_cart_line_id' ) #order_cart_line_id_random: Optional[str] order_cart_id_random: Optional[str] @@ -101,11 +101,11 @@ class Order_Cart_DB_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['order_cart_id_random'], - alias='order_cart_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'order_cart_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='order_cart_id' + #alias = 'order_cart_id' ) account_id_random: Optional[str] @@ -187,11 +187,11 @@ class Order_Cart_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['order_cart_id_random'], - alias='order_cart_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'order_cart_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='order_cart_id' + #alias = 'order_cart_id' ) #order_cart_id_random: Optional[str] #order_cart_id: Optional[int] diff --git a/app/models/order_line_models.py b/app/models/order_line_models.py index e91441b..4510256 100644 --- a/app/models/order_line_models.py +++ b/app/models/order_line_models.py @@ -16,11 +16,11 @@ class Order_Line_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['order_line_id_random'], - alias='order_line_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'order_line_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='order_line_id' + #alias = 'order_line_id' ) #order_line_id_random: Optional[str] order_id_random: Optional[str] diff --git a/app/models/order_models.py b/app/models/order_models.py index badfe68..cca88c2 100644 --- a/app/models/order_models.py +++ b/app/models/order_models.py @@ -38,11 +38,11 @@ class Order_Cfg_Base(BaseModel): # id_random: Optional[str] = Field( # **base_fields['order_line_id_random'], -# alias='order_line_id_random', -# default_factory=lambda:secrets.token_urlsafe(default_num_bytes), +# alias = 'order_line_id_random', +# default_factory = lambda:secrets.token_urlsafe(default_num_bytes), # ) # id: Optional[int] = Field( -# #alias='order_line_id' +# #alias = 'order_line_id' # ) # #order_line_id_random: Optional[str] # order_id_random: Optional[str] @@ -114,11 +114,11 @@ class Order_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['order_id_random'], - alias='order_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'order_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='order_id' + #alias = 'order_id' ) #order_id_random: Optional[str] #order_id: Optional[int] diff --git a/app/models/organization_models.py b/app/models/organization_models.py index c2a178b..03fba53 100644 --- a/app/models/organization_models.py +++ b/app/models/organization_models.py @@ -20,11 +20,11 @@ class Organization_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['organization_id_random'], - alias='organization_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'organization_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='organization_id' + #alias = 'organization_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/page_models.py b/app/models/page_models.py index f478d71..f9339f4 100644 --- a/app/models/page_models.py +++ b/app/models/page_models.py @@ -16,11 +16,11 @@ class Page_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['page_id_random'], - alias='page_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'page_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='page_id' + #alias = 'page_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/person_models.py b/app/models/person_models.py index 09430a9..fdb37aa 100644 --- a/app/models/person_models.py +++ b/app/models/person_models.py @@ -19,18 +19,13 @@ class Person_Base(BaseModel): log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL 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( **base_fields['person_id_random'], - alias='person_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'person_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='person_id' + alias = 'person_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/post_comment_models.py b/app/models/post_comment_models.py index 64fd1d6..a043dec 100644 --- a/app/models/post_comment_models.py +++ b/app/models/post_comment_models.py @@ -18,11 +18,11 @@ class Post_Comment_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['post_comment_id_random'], - alias='post_comment_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'post_comment_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='post_comment_id' + #alias = 'post_comment_id' ) post_id_random: Optional[str] post_id: Optional[int] diff --git a/app/models/post_models.py b/app/models/post_models.py index 21b4d3d..cbf8564 100644 --- a/app/models/post_models.py +++ b/app/models/post_models.py @@ -18,11 +18,11 @@ class Post_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['post_id_random'], - alias='post_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'post_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='post_id' + #alias = 'post_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/product_models.py b/app/models/product_models.py index d025e16..582a1e7 100644 --- a/app/models/product_models.py +++ b/app/models/product_models.py @@ -16,18 +16,18 @@ class Product_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['product_id_random'], - alias='product_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'product_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='product_id' + #alias = 'product_id' ) account_id_random: Optional[str] account_id: Optional[int] type_id: Optional[int] type_name: Optional[str] = Field( - alias='type' + alias = 'type' ) name: Optional[str] description: Optional[str] diff --git a/app/models/response_models.py b/app/models/response_models.py index f2af22e..85c5eda 100644 --- a/app/models/response_models.py +++ b/app/models/response_models.py @@ -19,7 +19,7 @@ class Resp_Body_Base(BaseModel): log.debug(locals()) # test_prop: Optional[str] = Field( - # alias='test_prop_alias' + # alias = 'test_prop_alias' # ) data: Union[dict, list] diff --git a/app/models/site_domain_models.py b/app/models/site_domain_models.py index eaac5bf..4a0d01f 100644 --- a/app/models/site_domain_models.py +++ b/app/models/site_domain_models.py @@ -16,11 +16,11 @@ class Site_Domain_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['site_domain_id_random'], - alias='site_domain_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'site_domain_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - alias='site_domain_id' + alias = 'site_domain_id' ) site_id_random: Optional[str] diff --git a/app/models/site_models.py b/app/models/site_models.py index a8782f0..da9af22 100644 --- a/app/models/site_models.py +++ b/app/models/site_models.py @@ -17,11 +17,11 @@ class Site_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['site_id_random'], - alias='site_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'site_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - alias='site_id' + alias = 'site_id' ) account_id_random: Optional[str] diff --git a/app/models/user_models.py b/app/models/user_models.py index 17473a0..df35a0b 100644 --- a/app/models/user_models.py +++ b/app/models/user_models.py @@ -22,11 +22,11 @@ class User_New_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['user_id_random'], - alias='user_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'user_id_random', + 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] @@ -40,7 +40,7 @@ class User_New_Base(BaseModel): username: str name: str email: str - new_password: str = Field(default_factory=lambda:secrets.token_urlsafe(default_num_bytes)) + new_password: str = Field(default_factory = lambda:secrets.token_urlsafe(default_num_bytes)) password: Optional[str] allow_auth_key: Optional[int] @@ -138,7 +138,7 @@ class User_Out_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['user_id_random'], - alias='user_id_random', + alias = 'user_id_random', ) account_id_random: Optional[str] #account_id: Optional[int] @@ -218,11 +218,11 @@ class User_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['user_id_random'], - alias='user_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'user_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='user_id' + #alias = 'user_id' ) account_id_random: Optional[str] account_id: Optional[int] diff --git a/app/models/user_role_models.py b/app/models/user_role_models.py index 3a4909f..7756599 100644 --- a/app/models/user_role_models.py +++ b/app/models/user_role_models.py @@ -17,11 +17,11 @@ class User_Role_Base(BaseModel): id_random: Optional[str] = Field( **base_fields['user_role_id_random'], - alias='user_role_id_random', - default_factory=lambda:secrets.token_urlsafe(default_num_bytes), + alias = 'user_role_id_random', + default_factory = lambda:secrets.token_urlsafe(default_num_bytes), ) id: Optional[int] = Field( - #alias='user_role_id' + #alias = 'user_role_id' ) user_id_random: Optional[str] # NOTE: This needs to be reviewed. Current a user_role record does not have an id_random user_id: Optional[int] diff --git a/app/routers/membership_member.py b/app/routers/membership_member.py index 6f3362f..57912e4 100644 --- a/app/routers/membership_member.py +++ b/app/routers/membership_member.py @@ -201,7 +201,7 @@ async def get_membership_member_obj( by_alias: 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()) if membership_member_id := redis_lookup_id_random(record_id_random=membership_member_id, table_name='membership_member'): pass