Adding lots of models

This commit is contained in:
Scott Idem
2021-03-08 17:21:05 -05:00
parent 90c3ab1ba1
commit 4f4cd0c985
14 changed files with 648 additions and 343 deletions

View File

@@ -30,7 +30,9 @@ class Address_Base(BaseModel):
for_type: Optional[str] for_type: Optional[str]
for_id_random: Optional[str] for_id_random: Optional[str]
for_id: Optional[int] #organization: Optional[Organization_Base] = Organization_Base() for_id: Optional[int]
#organization: Optional[Organization_Base] = Organization_Base()
name: Optional[str] name: Optional[str]
attention_to: Optional[str] attention_to: Optional[str]

View File

@@ -50,6 +50,7 @@ base_fields['product_id_random'] = xxx_id_random_field_schema
base_fields['site_id_random'] = xxx_id_random_field_schema base_fields['site_id_random'] = xxx_id_random_field_schema
base_fields['site_domain_id_random'] = xxx_id_random_field_schema base_fields['site_domain_id_random'] = xxx_id_random_field_schema
base_fields['user_id_random'] = xxx_id_random_field_schema base_fields['user_id_random'] = xxx_id_random_field_schema
base_fields['user_role_id_random'] = xxx_id_random_field_schema
base_fields['created_on'] = created_updated_on_field_schema base_fields['created_on'] = created_updated_on_field_schema
base_fields['updated_on'] = created_updated_on_field_schema base_fields['updated_on'] = created_updated_on_field_schema

View File

@@ -11,8 +11,8 @@ from .common_field_schema import base_fields, default_num_bytes
class Core_Object_Base(BaseModel): class Core_Object_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
obj_type: str obj_type: str
obj_id_random: str # alias this one based on obj_type? obj_id_random: str # alias this one based on obj_type?

View File

@@ -11,8 +11,8 @@ from .common_field_schema import base_fields, default_num_bytes
class Hosted_File_Base(BaseModel): class Hosted_File_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['hosted_file_id_random'], **base_fields['hosted_file_id_random'],
@@ -59,8 +59,8 @@ class Hosted_File_Base(BaseModel):
#@validator('hosted_file_id_random', always=True) #@validator('hosted_file_id_random', always=True)
def hosted_file_id_random_copy(cls, v, values, **kwargs): def hosted_file_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -68,11 +68,11 @@ class Hosted_File_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def hosted_file_id_lookup(cls, v, values, **kwargs): def hosted_file_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
app.logger.debug(values['id_random']) log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='hosted_file') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='hosted_file')
return None return None

View File

@@ -0,0 +1,214 @@
from __future__ import annotations
import datetime
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from .db_sql import sql_select
#from .address_model import Address_Base
#from .contact_model import Contact_Base
from .membership_model import Membership_Base
#from .organization_model import Organization_Base
#from .person_model import Person_Base
#from .user_model import User_Base
# ### BEGIN ### API Membership Model ### save_membership_obj() ###
def save_membership_obj(order_obj_new:Membership_Base=None):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if not order_obj_new:
return False
log.debug(order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True))
order_line_obj_li_curr = [] # Initialize to store order_line list
if order_obj_new.id_random:
log.info(f'An order.id {order_obj_new.id} or order.id_random {order_obj_new.id_random} was included. We can update an existing order.')
log.info(f'Get the current order_line list to compare with what was sent...')
data = {}
data['order_id_random'] = order_obj_new.id_random
if order_line_rec_li_curr := sql_select(table_name='v_order_line', data=data, rm_id_random=True, as_list=True):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(order_line_rec_li_curr)
for order_line_rec in order_line_rec_li_curr:
try:
order_line_obj = Order_Line_Base(**order_line_rec)
log.debug(order_line_obj)
except ValidationError as e:
log.error(e.json())
order_line_obj_li_curr.append(order_line_obj)
else:
log.info(f'No order_line records were found')
elif order_obj_new.account_id_random and (order_obj_new.person_id_random or order_obj_new.user_id_random):
log.info(f'An account.id_random {order_obj_new.account_id_random} was passed. And either a person.id_random {order_obj_new.person_id_random} or user.id_random {order_obj_new.user_id_random} was passed. We can create a new order.')
# Because there was not an order ID, assume there are no order lines yet. So no look up.
else:
log.info('Either an order ID is required to update an order or an account ID along with a person ID or user ID is required to create an order.')
return False
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(order_line_obj_li_curr)
if repl_order_line_list: # This will remove any order line list items not sent with the new order information.
log.info('Removing any order line list items not sent with the new order information...')
for index, order_line_obj_curr in enumerate(order_line_obj_li_curr):
log.info(f'Current: order line ID={order_line_obj_curr.id_random} and product ID= {order_line_obj_curr.product_id_random}')
matched_product_id = False
for order_line_obj_new in order_obj_new.order_line_list:
log.debug(f'Checking new: product ID={order_line_obj_new.product_id_random}')
if order_line_obj_curr.product_id_random == order_line_obj_new.product_id_random:
matched_product_id = True
log.debug(f'Matched: product ID={order_line_obj_new.product_id_random}')
break
else:
log.debug(f'No match: product ID={order_line_obj_new.product_id_random}')
if not matched_product_id: # Was not found in the new order line list sent
log.info(f'Current order line product ID did not match any of the new list. DELETE order line ID {order_line_obj_curr.id_random} with product ID {order_line_obj_curr.product_id_random}')
if order_line_del_result := sql_delete(table_name='order_line', record_id_random=order_line_obj_curr.id_random):
log.info(f'Deleted record and now pop the current list item {index}...')
order_line_obj_li_curr.pop(index)
else:
log.info(f'Current order line product ID matched. Keeping order line ID {order_line_obj_curr.id_random} with product ID {order_line_obj_curr.product_id_random}')
# NOTE: That this current order line item will be updated below.
log.debug(order_line_obj_li_curr)
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.info('Loop through the line list that was sent and compare with what was pulled from the DB')
# Loop through the new line list that was sent and compare with the current line list that was pulled from the DB
# Only insert if a product ID does not match
# Only update if a product ID does match
for order_line_obj_new in order_obj_new.order_line_list:
log.info(f'New: order line ID={order_line_obj_new.id_random} and product ID= {order_line_obj_new.product_id_random}')
matched_product_id = False
for index, order_line_obj_curr in enumerate(order_line_obj_li_curr):
log.debug(f'Checking current: product ID={order_line_obj_curr.product_id_random}')
if order_line_obj_new.product_id_random == order_line_obj_curr.product_id_random:
matched_product_id = True
log.debug(f'Matched: product ID={order_line_obj_curr.product_id_random}')
log.info(f'Updating the current line item with the new line item.')
order_line_obj_new.id_random = order_line_obj_curr.id_random
order_line_obj_new.id = order_line_obj_curr.id
order_line_obj_li_curr[index] = order_line_obj_new
break
else:
log.debug(f'No match: product ID={order_line_obj_curr.product_id_random}')
if not matched_product_id: # Was not found in the current order line list that was pulled from the DB
log.info(f'New order line product ID did not match any of the current list. Append order line ID {order_line_obj_new.id_random} with product ID {order_line_obj_new.product_id_random}')
log.info('Append to current list...')
order_line_obj_li_curr.append(order_line_obj_new) # These will be inserted/updated below
# Save merged current and new list to the new order object
order_obj_new.order_line_list = order_line_obj_li_curr
log.debug(order_obj_new)
# Final loop through to get the new order totals
# Calculate totals
order_total_amount:int = 0
order_total_quantity:int = 0
for order_line_obj_new in order_obj_new.order_line_list:
order_total_amount += order_line_obj_new.quantity * order_line_obj_new.amount
order_total_quantity += order_line_obj_new.quantity
order_obj_new.total_bill = order_total_amount # "amount" is used by order_cart and Stripe
order_obj_new.total_quantity = order_total_quantity
order_obj_new.balance = order_total_amount - order_obj_new.total_paid
log.debug(order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_list', 'cfg', 'created_on', 'updated_on'}))
order_obj_data = order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_list', 'cfg', 'created_on', 'updated_on'})
# SQL INSERT or UPDATE the order record
log.info('SQL INSERT or UPDATE the order record')
if order_obj_resp := sql_insert_or_update(data=order_obj_data, table_name='order', rm_id_random=True, id_random_length=8): pass
else: return False
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(order_obj_resp)
if isinstance(order_obj_resp, bool) and order_obj_resp:
if order_id := order_obj_new.id: pass
elif order_id := order_obj_new.id_random: pass
elif isinstance(order_obj_resp, int):
order_id = order_obj_resp
else:
return False
log.debug(f'Order ID={order_id}')
# Loop through the order_line list to SQL INSERT or UPDATE the records
log.info('Loop through the order_line list to SQL INSERT or UPDATE the records')
for order_line_obj_new in order_obj_new.order_line_list:
log.info(f"New order_line: order_line_id_random={order_line_obj_new.id_random}; product_id_random={order_line_obj_new.product_id_random}")
log.debug(order_line_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={'order_line_id_random', 'product_type_id', 'product_type', 'created_on', 'updated_on'}))
order_line_obj_data = order_line_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_id_random', 'product_type_id', 'product_type', 'created_on', 'updated_on'})
order_line_obj_data['order_id'] = order_id
if order_line_obj_resp := sql_insert_or_update(sql=None, data=order_line_obj_data, table_name='order_line', rm_id_random=True, id_random_length=8): pass
else: return False
log.debug(order_line_obj_resp)
return order_id
# ### END ### API Membership Model ### save_membership_obj() ###
# ### BEGIN ### API Membership Model ### get_membership_obj() ###
def get_membership_obj(membership_id=None, inc_membership_profile=None, inc_membership_cfg=None, inc_cust_profile=None):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if membership_id := redis_lookup_id_random(record_id_random=membership_id, table_name='membership'): pass
else:
return False
if membership_rec := sql_select(table_name='v_membership', record_id=membership_id):
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(membership_rec)
if inc_membership_profile:
if membership_profile_rec := sql_select(table_name='v_membership_profile', field_name='membership_id', field_value=membership_id):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(membership_profile_rec)
membership_rec['profile'] = membership_profile_rec
if inc_membership_cfg:
if membership_cfg_rec := sql_select(table_name='v_membership_cfg', field_name='account_id', field_value=membership_rec.get('account_id', None)):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(membership_cfg_rec)
membership_rec['cfg'] = membership_cfg_rec
if inc_cust_profile:
account_code = membership_rec.get('account_code', None)
table_name = f'c_{account_code}_membership_profile'
if cust_profile_rec := sql_select(table_name=table_name, field_name='membership_id', field_value=membership_id):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(cust_profile_rec)
membership_rec['cust_profile'] = cust_profile_rec
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(membership_rec)
else:
return False
try:
membership_obj = Membership_Base(**membership_rec)
log.debug(membership_obj)
except ValidationError as e:
log.error(e.json())
return membership_obj
# ### END ### API Membership Model ### get_membership_obj() ###

View File

@@ -16,8 +16,8 @@ from .user_model import User_Base
class Membership_Cfg_Base(BaseModel): class Membership_Cfg_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
account_name: Optional[str] account_name: Optional[str]
@@ -48,8 +48,8 @@ Membership_Cfg_Base.update_forward_refs()
class Membership_Profile_Base(BaseModel): class Membership_Profile_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
# if TYPE_CHECKING: # if TYPE_CHECKING:
# from .supporting_core_models import Address_Base, Contact_Base, Organization_Base, User_Base # from .supporting_core_models import Address_Base, Contact_Base, Organization_Base, User_Base
@@ -107,8 +107,8 @@ class Membership_Profile_Base(BaseModel):
#@validator('membership_profile_id_random', always=True) #@validator('membership_profile_id_random', always=True)
def membership_profile_id_random_copy(cls, v, values, **kwargs): def membership_profile_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -116,18 +116,18 @@ class Membership_Profile_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def membership_profile_id_lookup(cls, v, values, **kwargs): def membership_profile_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
app.logger.debug(values['id_random']) log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership_profile') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership_profile')
return None return None
@validator('membership_id', always=True) @validator('membership_id', always=True)
def membership_lookup(cls, v, values, **kwargs): def membership_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['membership_id_random']: if values['membership_id_random']:
return redis_lookup_id_random(record_id_random=values['membership_id_random'], table_name='membership') return redis_lookup_id_random(record_id_random=values['membership_id_random'], table_name='membership')
@@ -135,8 +135,8 @@ class Membership_Profile_Base(BaseModel):
@validator('person_id', always=True) @validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs): def person_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['person_id_random']: if values['person_id_random']:
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')
@@ -144,8 +144,8 @@ class Membership_Profile_Base(BaseModel):
@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):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['user_id_random']: if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user') return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
@@ -159,8 +159,8 @@ Membership_Profile_Base.update_forward_refs()
class Membership_Base(BaseModel): class Membership_Base(BaseModel):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
#from .supporting_core_models import User_Base #from .supporting_core_models import User_Base
# from .account_model import Account_Base # from .account_model import Account_Base
@@ -222,8 +222,8 @@ class Membership_Base(BaseModel):
#@validator('order_id_random', always=True) #@validator('order_id_random', always=True)
def order_id_random_copy(cls, v, values, **kwargs): def order_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -231,8 +231,8 @@ class Membership_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def membership_id_lookup(cls, v, values, **kwargs): def membership_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='membership')
@@ -240,8 +240,8 @@ class Membership_Base(BaseModel):
@validator('account_id', always=True) @validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs): def account_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['account_id_random']: if values['account_id_random']:
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account') return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
@@ -249,8 +249,8 @@ class Membership_Base(BaseModel):
@validator('person_id', always=True) @validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs): def person_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['person_id_random']: if values['person_id_random']:
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')
@@ -258,8 +258,8 @@ class Membership_Base(BaseModel):
@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):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['user_id_random']: if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user') return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
@@ -270,201 +270,3 @@ class Membership_Base(BaseModel):
fields = base_fields fields = base_fields
# Membership_Base.update_forward_refs() # Membership_Base.update_forward_refs()
# ### BEGIN ### API Membership Model ### save_membership_obj() ###
def save_membership_obj(order_obj_new:Membership_Base=None):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals())
if not order_obj_new:
return False
app.logger.debug(order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True))
order_line_obj_li_curr = [] # Initialize to store order_line list
if order_obj_new.id_random:
app.logger.info(f'An order.id {order_obj_new.id} or order.id_random {order_obj_new.id_random} was included. We can update an existing order.')
app.logger.info(f'Get the current order_line list to compare with what was sent...')
data = {}
data['order_id_random'] = order_obj_new.id_random
if order_line_rec_li_curr := sql_select(table_name='v_order_line', data=data, rm_id_random=True, as_list=True):
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_line_rec_li_curr)
for order_line_rec in order_line_rec_li_curr:
try:
order_line_obj = Order_Line_Base(**order_line_rec)
app.logger.debug(order_line_obj)
except ValidationError as e:
app.logger.error(e.json())
order_line_obj_li_curr.append(order_line_obj)
else:
app.logger.info(f'No order_line records were found')
elif order_obj_new.account_id_random and (order_obj_new.person_id_random or order_obj_new.user_id_random):
app.logger.info(f'An account.id_random {order_obj_new.account_id_random} was passed. And either a person.id_random {order_obj_new.person_id_random} or user.id_random {order_obj_new.user_id_random} was passed. We can create a new order.')
# Because there was not an order ID, assume there are no order lines yet. So no look up.
else:
app.logger.info('Either an order ID is required to update an order or an account ID along with a person ID or user ID is required to create an order.')
return False
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_line_obj_li_curr)
if repl_order_line_list: # This will remove any order line list items not sent with the new order information.
app.logger.info('Removing any order line list items not sent with the new order information...')
for index, order_line_obj_curr in enumerate(order_line_obj_li_curr):
app.logger.info(f'Current: order line ID={order_line_obj_curr.id_random} and product ID= {order_line_obj_curr.product_id_random}')
matched_product_id = False
for order_line_obj_new in order_obj_new.order_line_list:
app.logger.debug(f'Checking new: product ID={order_line_obj_new.product_id_random}')
if order_line_obj_curr.product_id_random == order_line_obj_new.product_id_random:
matched_product_id = True
app.logger.debug(f'Matched: product ID={order_line_obj_new.product_id_random}')
break
else:
app.logger.debug(f'No match: product ID={order_line_obj_new.product_id_random}')
if not matched_product_id: # Was not found in the new order line list sent
app.logger.info(f'Current order line product ID did not match any of the new list. DELETE order line ID {order_line_obj_curr.id_random} with product ID {order_line_obj_curr.product_id_random}')
if order_line_del_result := sql_delete(table_name='order_line', record_id_random=order_line_obj_curr.id_random):
app.logger.info(f'Deleted record and now pop the current list item {index}...')
order_line_obj_li_curr.pop(index)
else:
app.logger.info(f'Current order line product ID matched. Keeping order line ID {order_line_obj_curr.id_random} with product ID {order_line_obj_curr.product_id_random}')
# NOTE: That this current order line item will be updated below.
app.logger.debug(order_line_obj_li_curr)
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.info('Loop through the line list that was sent and compare with what was pulled from the DB')
# Loop through the new line list that was sent and compare with the current line list that was pulled from the DB
# Only insert if a product ID does not match
# Only update if a product ID does match
for order_line_obj_new in order_obj_new.order_line_list:
app.logger.info(f'New: order line ID={order_line_obj_new.id_random} and product ID= {order_line_obj_new.product_id_random}')
matched_product_id = False
for index, order_line_obj_curr in enumerate(order_line_obj_li_curr):
app.logger.debug(f'Checking current: product ID={order_line_obj_curr.product_id_random}')
if order_line_obj_new.product_id_random == order_line_obj_curr.product_id_random:
matched_product_id = True
app.logger.debug(f'Matched: product ID={order_line_obj_curr.product_id_random}')
app.logger.info(f'Updating the current line item with the new line item.')
order_line_obj_new.id_random = order_line_obj_curr.id_random
order_line_obj_new.id = order_line_obj_curr.id
order_line_obj_li_curr[index] = order_line_obj_new
break
else:
app.logger.debug(f'No match: product ID={order_line_obj_curr.product_id_random}')
if not matched_product_id: # Was not found in the current order line list that was pulled from the DB
app.logger.info(f'New order line product ID did not match any of the current list. Append order line ID {order_line_obj_new.id_random} with product ID {order_line_obj_new.product_id_random}')
app.logger.info('Append to current list...')
order_line_obj_li_curr.append(order_line_obj_new) # These will be inserted/updated below
# Save merged current and new list to the new order object
order_obj_new.order_line_list = order_line_obj_li_curr
app.logger.debug(order_obj_new)
# Final loop through to get the new order totals
# Calculate totals
order_total_amount:int = 0
order_total_quantity:int = 0
for order_line_obj_new in order_obj_new.order_line_list:
order_total_amount += order_line_obj_new.quantity * order_line_obj_new.amount
order_total_quantity += order_line_obj_new.quantity
order_obj_new.total_bill = order_total_amount # "amount" is used by order_cart and Stripe
order_obj_new.total_quantity = order_total_quantity
order_obj_new.balance = order_total_amount - order_obj_new.total_paid
app.logger.debug(order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_list', 'cfg', 'created_on', 'updated_on'}))
order_obj_data = order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_list', 'cfg', 'created_on', 'updated_on'})
# SQL INSERT or UPDATE the order record
app.logger.info('SQL INSERT or UPDATE the order record')
if order_obj_resp := sql_insert_or_update(data=order_obj_data, table_name='order', rm_id_random=True, id_random_length=8): pass
else: return False
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_obj_resp)
if isinstance(order_obj_resp, bool) and order_obj_resp:
if order_id := order_obj_new.id: pass
elif order_id := order_obj_new.id_random: pass
elif isinstance(order_obj_resp, int):
order_id = order_obj_resp
else:
return False
app.logger.debug(f'Order ID={order_id}')
# Loop through the order_line list to SQL INSERT or UPDATE the records
app.logger.info('Loop through the order_line list to SQL INSERT or UPDATE the records')
for order_line_obj_new in order_obj_new.order_line_list:
app.logger.info(f"New order_line: order_line_id_random={order_line_obj_new.id_random}; product_id_random={order_line_obj_new.product_id_random}")
app.logger.debug(order_line_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={'order_line_id_random', 'product_type_id', 'product_type', 'created_on', 'updated_on'}))
order_line_obj_data = order_line_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_line_id_random', 'product_type_id', 'product_type', 'created_on', 'updated_on'})
order_line_obj_data['order_id'] = order_id
if order_line_obj_resp := sql_insert_or_update(sql=None, data=order_line_obj_data, table_name='order_line', rm_id_random=True, id_random_length=8): pass
else: return False
app.logger.debug(order_line_obj_resp)
return order_id
# ### END ### API Membership Model ### save_membership_obj() ###
# ### BEGIN ### API Membership Model ### get_membership_obj() ###
def get_membership_obj(membership_id=None, inc_membership_profile=None, inc_membership_cfg=None, inc_cust_profile=None):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals())
if membership_id := redis_lookup_id_random(record_id_random=membership_id, table_name='membership'): pass
else:
return False
if membership_rec := sql_select(table_name='v_membership', record_id=membership_id):
#app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(membership_rec)
if inc_membership_profile:
if membership_profile_rec := sql_select(table_name='v_membership_profile', field_name='membership_id', field_value=membership_id):
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(membership_profile_rec)
membership_rec['profile'] = membership_profile_rec
if inc_membership_cfg:
if membership_cfg_rec := sql_select(table_name='v_membership_cfg', field_name='account_id', field_value=membership_rec.get('account_id', None)):
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(membership_cfg_rec)
membership_rec['cfg'] = membership_cfg_rec
if inc_cust_profile:
account_code = membership_rec.get('account_code', None)
table_name = f'c_{account_code}_membership_profile'
if cust_profile_rec := sql_select(table_name=table_name, field_name='membership_id', field_value=membership_id):
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(cust_profile_rec)
membership_rec['cust_profile'] = cust_profile_rec
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(membership_rec)
else:
return False
try:
membership_obj = Membership_Base(**membership_rec)
app.logger.debug(membership_obj)
except ValidationError as e:
app.logger.error(e.json())
return membership_obj
# ### END ### API Membership Model ### get_membership_obj() ###

View File

@@ -11,8 +11,8 @@ from .common_field_schema import base_fields, default_num_bytes
class Order_Cart_Cfg_Base(BaseModel): class Order_Cart_Cfg_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
account_name: Optional[str] account_name: Optional[str]
@@ -21,8 +21,8 @@ class Order_Cart_Cfg_Base(BaseModel):
class Order_Cart_Line_Base(BaseModel): class Order_Cart_Line_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['order_cart_line_id_random'], **base_fields['order_cart_line_id_random'],
@@ -55,8 +55,8 @@ class Order_Cart_Line_Base(BaseModel):
#@validator('order_cart_line_id_random', always=True) #@validator('order_cart_line_id_random', always=True)
def order_cart_line_id_random_copy(cls, v, values, **kwargs): def order_cart_line_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -64,18 +64,18 @@ class Order_Cart_Line_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def order_cart_line_id_lookup(cls, v, values, **kwargs): def order_cart_line_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
app.logger.debug(values['id_random']) log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='order_cart_line') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='order_cart_line')
return None return None
@validator('order_cart_id', always=True) @validator('order_cart_id', always=True)
def order_cart_id_lookup(cls, v, values, **kwargs): def order_cart_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['order_cart_id_random']: if values['order_cart_id_random']:
return redis_lookup_id_random(record_id_random=values['order_cart_id_random'], table_name='order_cart') return redis_lookup_id_random(record_id_random=values['order_cart_id_random'], table_name='order_cart')
@@ -83,8 +83,8 @@ class Order_Cart_Line_Base(BaseModel):
@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):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.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')
@@ -96,8 +96,8 @@ class Order_Cart_Line_Base(BaseModel):
class Order_Cart_Base(BaseModel): class Order_Cart_Base(BaseModel):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['order_cart_id_random'], **base_fields['order_cart_id_random'],
@@ -132,8 +132,8 @@ class Order_Cart_Base(BaseModel):
#@validator('order_cart_id_random', always=True) #@validator('order_cart_id_random', always=True)
def order_cart_id_random_copy(cls, v, values, **kwargs): def order_cart_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -141,8 +141,8 @@ class Order_Cart_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def order_cart_id_lookup(cls, v, values, **kwargs): def order_cart_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='order_cart') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='order_cart')
@@ -150,8 +150,8 @@ class Order_Cart_Base(BaseModel):
@validator('account_id', always=True) @validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs): def account_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['account_id_random']: if values['account_id_random']:
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account') return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
@@ -159,8 +159,8 @@ class Order_Cart_Base(BaseModel):
@validator('person_id', always=True) @validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs): def person_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['person_id_random']: if values['person_id_random']:
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')
@@ -168,8 +168,8 @@ class Order_Cart_Base(BaseModel):
@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):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['user_id_random']: if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user') return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
@@ -177,8 +177,8 @@ class Order_Cart_Base(BaseModel):
@validator('order_id', always=True) @validator('order_id', always=True)
def order_id_lookup(cls, v, values, **kwargs): def order_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if 'order_id_random' in values and values['order_id_random']: if 'order_id_random' in values and values['order_id_random']:
return redis_lookup_id_random(record_id_random=values['order_id_random'], table_name='order') return redis_lookup_id_random(record_id_random=values['order_id_random'], table_name='order')
@@ -191,61 +191,61 @@ class Order_Cart_Base(BaseModel):
# ### BEGIN ### API Order Cart Model ### save_order_cart_obj() ### # ### BEGIN ### API Order Cart Model ### save_order_cart_obj() ###
def save_order_cart_obj(order_cart_obj_new=None): def save_order_cart_obj(order_cart_obj_new=None):
app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
if not order_cart_obj_new: if not order_cart_obj_new:
return False return False
#app.logger.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True)) #log.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True))
# Get the current order_cart_line list to compare with what was sent # Get the current order_cart_line list to compare with what was sent
data = {} data = {}
data['order_cart_id_random'] = order_cart_obj_new.id_random data['order_cart_id_random'] = order_cart_obj_new.id_random
if order_cart_line_rec_li_curr := sql_select(table_name='v_order_cart_line', data=data, rm_id_random=True, as_list=True): if order_cart_line_rec_li_curr := sql_select(table_name='v_order_cart_line', data=data, rm_id_random=True, as_list=True):
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
#app.logger.debug(order_cart_line_rec_li_curr) #log.debug(order_cart_line_rec_li_curr)
order_cart_line_obj_li_curr = [] order_cart_line_obj_li_curr = []
for order_cart_line_rec in order_cart_line_rec_li_curr: for order_cart_line_rec in order_cart_line_rec_li_curr:
try: try:
order_cart_line_obj = Order_Cart_Line_Base(**order_cart_line_rec) order_cart_line_obj = Order_Cart_Line_Base(**order_cart_line_rec)
app.logger.debug(order_cart_line_obj) log.debug(order_cart_line_obj)
except ValidationError as e: except ValidationError as e:
app.logger.error(e.json()) log.error(e.json())
order_cart_line_obj_li_curr.append(order_cart_line_obj) order_cart_line_obj_li_curr.append(order_cart_line_obj)
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_cart_line_obj_li_curr) log.debug(order_cart_line_obj_li_curr)
else: else:
#app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_cart_line_rec_li_curr) log.debug(order_cart_line_rec_li_curr)
order_cart_line_obj_li_curr = [] order_cart_line_obj_li_curr = []
# Loop through the line list that was sent and compare with what was pulled from the DB # Loop through the line list that was sent and compare with what was pulled from the DB
# Only insert if a product ID does not match # Only insert if a product ID does not match
# Only update if a product ID does match # Only update if a product ID does match
for order_cart_line_obj_new in order_cart_obj_new.order_cart_line_list: for order_cart_line_obj_new in order_cart_obj_new.order_cart_line_list:
app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if not any(order_cart_line_obj_curr.product_id_random == order_cart_line_obj_new.product_id_random for order_cart_line_obj_curr in order_cart_line_obj_li_curr): if not any(order_cart_line_obj_curr.product_id_random == order_cart_line_obj_new.product_id_random for order_cart_line_obj_curr in order_cart_line_obj_li_curr):
# Need to append to current list # Need to append to current list
app.logger.info('Need to append to current list') log.info('Need to append to current list')
order_cart_line_obj_li_curr.append(order_cart_line_obj_new) order_cart_line_obj_li_curr.append(order_cart_line_obj_new)
else: else:
# Need to update a current list item ... loop through to find # Need to update a current list item ... loop through to find
app.logger.info('Need to update a current list item ... loop through to find') log.info('Need to update a current list item ... loop through to find')
for index, order_cart_line_obj_curr in enumerate(order_cart_line_obj_li_curr): for index, order_cart_line_obj_curr in enumerate(order_cart_line_obj_li_curr):
app.logger.info(index) log.info(index)
if order_cart_line_obj_new.product_id_random == order_cart_line_obj_curr.product_id_random: if order_cart_line_obj_new.product_id_random == order_cart_line_obj_curr.product_id_random:
app.logger.info(f'Match: {order_cart_line_obj_curr.product_id_random}') log.info(f'Match: {order_cart_line_obj_curr.product_id_random}')
order_cart_line_obj_new.id_random = order_cart_line_obj_curr.id_random order_cart_line_obj_new.id_random = order_cart_line_obj_curr.id_random
order_cart_line_obj_li_curr[index] = order_cart_line_obj_new order_cart_line_obj_li_curr[index] = order_cart_line_obj_new
else: else:
app.logger.info(f'Not a match: {order_cart_line_obj_curr.product_id_random}') log.info(f'Not a match: {order_cart_line_obj_curr.product_id_random}')
# Save merged current and new list to the new order cart object # Save merged current and new list to the new order cart object
order_cart_obj_new.order_cart_line_list = order_cart_line_obj_li_curr order_cart_obj_new.order_cart_line_list = order_cart_line_obj_li_curr
app.logger.debug(order_cart_obj_new) log.debug(order_cart_obj_new)
# Final loop through to get the new order totals # Final loop through to get the new order totals
# Calculate totals # Calculate totals
@@ -258,15 +258,15 @@ def save_order_cart_obj(order_cart_obj_new=None):
order_cart_obj_new.total_amount = order_cart_total_amount order_cart_obj_new.total_amount = order_cart_total_amount
order_cart_obj_new.total_quantity = order_cart_total_quantity order_cart_obj_new.total_quantity = order_cart_total_quantity
app.logger.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'})) log.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'}))
order_cart_obj_data = order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'}) order_cart_obj_data = order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'})
# SQL INSERT or UPDATE the order_cart record # SQL INSERT or UPDATE the order_cart record
app.logger.info('SQL INSERT or UPDATE the order_cart record') log.info('SQL INSERT or UPDATE the order_cart record')
if order_cart_obj_resp := sql_insert_or_update(sql=None, data=order_cart_obj_data, table_name='order_cart', rm_id_random=True, id_random_length=8): pass if order_cart_obj_resp := sql_insert_or_update(sql=None, data=order_cart_obj_data, table_name='order_cart', rm_id_random=True, id_random_length=8): pass
else: return False else: return False
app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_cart_obj_resp) log.debug(order_cart_obj_resp)
if isinstance(order_cart_obj_resp, bool) and order_cart_obj_resp: if isinstance(order_cart_obj_resp, bool) and order_cart_obj_resp:
if order_cart_id := order_cart_obj_new.id: pass if order_cart_id := order_cart_obj_new.id: pass
@@ -277,10 +277,10 @@ def save_order_cart_obj(order_cart_obj_new=None):
return False return False
# Loop through the order_cart_line list to SQL INSERT or UPDATE the records # Loop through the order_cart_line list to SQL INSERT or UPDATE the records
app.logger.info('Loop through the order_cart_line list to SQL INSERT or UPDATE the records') log.info('Loop through the order_cart_line list to SQL INSERT or UPDATE the records')
for order_cart_line_obj in order_cart_obj_new.order_cart_line_list: for order_cart_line_obj in order_cart_obj_new.order_cart_line_list:
app.logger.debug(f"--- {order_cart_line_obj}") log.debug(f"--- {order_cart_line_obj}")
app.logger.debug(order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={})) log.debug(order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={}))
order_cart_line_obj_data = order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'product_type_id', 'product_type', 'product_name', 'product_description', 'product_unit_price', 'product_max_quantity', 'order_cart_line_id_random', 'created_on', 'updated_on'}) order_cart_line_obj_data = order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'product_type_id', 'product_type', 'product_name', 'product_description', 'product_unit_price', 'product_max_quantity', 'order_cart_line_id_random', 'created_on', 'updated_on'})
@@ -288,23 +288,23 @@ def save_order_cart_obj(order_cart_obj_new=None):
if order_cart_line_obj_resp := sql_insert_or_update(sql=None, data=order_cart_line_obj_data, table_name='order_cart_line', rm_id_random=True, id_random_length=8): pass if order_cart_line_obj_resp := sql_insert_or_update(sql=None, data=order_cart_line_obj_data, table_name='order_cart_line', rm_id_random=True, id_random_length=8): pass
else: return False else: return False
app.logger.debug(order_cart_line_obj_resp) log.debug(order_cart_line_obj_resp)
return order_cart_id return order_cart_id
# ### END ### API Order Cart Model ### save_order_cart_obj() ### # ### END ### API Order Cart Model ### save_order_cart_obj() ###
# ### BEGIN ### API Order Cart Model ### get_order_cart_obj() ### # ### BEGIN ### API Order Cart Model ### get_order_cart_obj() ###
def get_order_cart_obj(order_cart_id=None, inc_order_cart_line_li=None, inc_order_cart_cfg=None): def get_order_cart_obj(order_cart_id=None, inc_order_cart_line_li=None, inc_order_cart_cfg=None):
app.logger.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
if order_cart_id := redis_lookup_id_random(record_id_random=order_cart_id, table_name='order_cart'): pass if order_cart_id := redis_lookup_id_random(record_id_random=order_cart_id, table_name='order_cart'): pass
else: else:
return False return False
if order_cart_rec := sql_select(table_name='v_order_cart', record_id=order_cart_id): if order_cart_rec := sql_select(table_name='v_order_cart', record_id=order_cart_id):
#app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(order_cart_rec) log.debug(order_cart_rec)
if inc_order_cart_line_li: if inc_order_cart_line_li:
order_cart_line_data = {} order_cart_line_data = {}
@@ -316,15 +316,15 @@ def get_order_cart_obj(order_cart_id=None, inc_order_cart_line_li=None, inc_orde
if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)): if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)):
order_cart_rec['cfg'] = order_cart_cfg_rec order_cart_rec['cfg'] = order_cart_cfg_rec
app.logger.debug(order_cart_rec) log.debug(order_cart_rec)
else: else:
return False return False
try: try:
order_cart_obj = Order_Cart_Base(**order_cart_rec) order_cart_obj = Order_Cart_Base(**order_cart_rec)
app.logger.debug(order_cart_obj) log.debug(order_cart_obj)
except ValidationError as e: except ValidationError as e:
app.logger.error(e.json()) log.error(e.json())
return order_cart_obj return order_cart_obj
# ### END ### API Order Cart Model ### get_order_cart_obj() ### # ### END ### API Order Cart Model ### get_order_cart_obj() ###

View File

@@ -4,14 +4,13 @@ import datetime
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from .log import * from ..lib_general import *
from ..log import *
from .db_sql import sql_select from .db_sql import sql_select
from .order_model import Order_Base from .order_model import Order_Base
from .person_model import Person_Base #from .person_model import Person_Base
from .user_model import User_Base #from .user_model import User_Base
#from myapp.lib_general import *
#from myapp.help_crud import *
# ### BEGIN ### API Order Model ### save_order_obj() ### # ### BEGIN ### API Order Model ### save_order_obj() ###

View File

@@ -11,8 +11,8 @@ from .common_field_schema import base_fields, default_num_bytes
class Page_Base(BaseModel): class Page_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['page_id_random'], **base_fields['page_id_random'],
@@ -47,8 +47,8 @@ class Page_Base(BaseModel):
#@validator('page_id_random', always=True) #@validator('page_id_random', always=True)
def page_id_random_copy(cls, v, values, **kwargs): def page_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -56,11 +56,11 @@ class Page_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def page_id_lookup(cls, v, values, **kwargs): def page_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
app.logger.debug(values['id_random']) log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='page') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='page')
return None return None

View File

@@ -0,0 +1,84 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from .common_field_schema import base_fields, default_num_bytes
class Post_Comment_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
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),
)
id: Optional[int] = Field(
#alias='post_comment_id'
)
post_id_random: Optional[str]
post_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
title: Optional[str]
content: Optional[str]
anonymous: Optional[bool]
full_name: Optional[str]
email: Optional[str]
#timezone: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
#@validator('post_comment_id_random', always=True)
def post_comment_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
return values['id_random']
return None
@validator('id', always=True)
def post_comment_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='post_comment')
return None
@validator('post_id', always=True)
def post_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['post_id_random']:
return redis_lookup_id_random(record_id_random=values['post_id_random'], table_name='post')
return None
@validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields
Post_Comment_Base.update_forward_refs()

108
app/models/post_model.py Normal file
View File

@@ -0,0 +1,108 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from .common_field_schema import base_fields, default_num_bytes
class Post_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['post_id_random'],
alias='post_id_random',
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias='post_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
type_id_random: Optional[str]
type_id: Optional[int]
topic_id_random: Optional[str]
topic_id: Optional[int]
title: Optional[str]
content: Optional[str]
anonymous: Optional[bool]
full_name: Optional[str]
email: Optional[str]
timezone: Optional[str]
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
enable_comments: Optional[bool]
unauthenticated_access: Optional[bool]
hide: Optional[bool]
status: Optional[int]
review: Optional[bool]
approve: Optional[bool]
ready_on: Optional[datetime.datetime] = None
ready: Optional[bool]
archive_on: Optional[datetime.datetime] = None
archive: Optional[bool]
priority: Optional[bool]
sort: Optional[int]
group: Optional[str]
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
#@validator('post_id_random', always=True)
def post_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
return values['id_random']
return None
@validator('id', always=True)
def post_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='post')
return None
@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('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields
Post_Base.update_forward_refs()

View File

@@ -11,8 +11,8 @@ from .common_field_schema import base_fields, default_num_bytes
class Product_Base(BaseModel): class Product_Base(BaseModel):
app.logger.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
app.logger.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['product_id_random'], **base_fields['product_id_random'],
@@ -68,8 +68,8 @@ class Product_Base(BaseModel):
#@validator('product_id_random', always=True) #@validator('product_id_random', always=True)
def product_id_random_copy(cls, v, values, **kwargs): def product_id_random_copy(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
@@ -77,11 +77,11 @@ class Product_Base(BaseModel):
@validator('id', always=True) @validator('id', always=True)
def product_id_lookup(cls, v, values, **kwargs): def product_id_lookup(cls, v, values, **kwargs):
app.logger.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
app.logger.debug(locals()) log.debug(locals())
if values['id_random']: if values['id_random']:
app.logger.debug(values['id_random']) log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='product') return redis_lookup_id_random(record_id_random=values['id_random'], table_name='product')
return None return None

View File

@@ -0,0 +1,86 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from .common_field_schema import base_fields, default_num_bytes
from .user_model import Contact_Base
class User_Role_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
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),
)
id: Optional[int] = Field(
#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]
#role_id_random: Optional[str]
role_id: Optional[int]
for_type: Optional[str]
for_id_random: Optional[str]
for_id: Optional[int]
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
#@validator('user_role_id_random', always=True)
def user_role_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
return values['id_random']
return None
@validator('id', always=True)
def user_role_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='user_role')
return None
@validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
return None
@validator('for_id', always=True)
def for_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['for_id_random'] and values['for_type']:
return redis_lookup_id_random(record_id_random=values['for_id_random'], table_name=values['for_type'])
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields
User_Role_Base.update_forward_refs()

View File

@@ -18,10 +18,19 @@ from ..models.contact_model import *
from ..models.event_model import * from ..models.event_model import *
from ..models.event_exhibit_model import * from ..models.event_exhibit_model import *
from ..models.event_registration_model import * from ..models.event_registration_model import *
from ..models.membership_model import *
from ..models.order_model import * from ..models.order_model import *
from ..models.order_cart_model import *
from ..models.organization_model import *
from ..models.page_model import *
from ..models.person_model import *
from ..models.product_model import *
from ..models.post_model import *
from ..models.post_comment_model import *
from ..models.site_model import * from ..models.site_model import *
from ..models.site_domain_model import * from ..models.site_domain_model import *
from ..models.user_model import * from ..models.user_model import *
from ..models.user_role_model import *
from ..models.response_model import * from ..models.response_model import *
obj_type_li = {} obj_type_li = {}
@@ -54,20 +63,20 @@ obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Ev
obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base_name': Event_Registration_Base} obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base_name': Event_Registration_Base}
#obj_type_li['event_session'] = {'table_name': 'v_event_session', 'base_name': Event_Session_Base} #obj_type_li['event_session'] = {'table_name': 'v_event_session', 'base_name': Event_Session_Base}
#obj_type_li['event_track'] = {'table_name': 'v_event_track', 'base_name': Event_Track_Base} #obj_type_li['event_track'] = {'table_name': 'v_event_track', 'base_name': Event_Track_Base}
obj_type_li['hosted_file'] = {'table_name': 'hosted_file', 'base_name': Hosted_File_Base} #obj_type_li['hosted_file'] = {'table_name': 'hosted_file', 'base_name': Hosted_File_Base}
obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'base_name': Hosted_File_Link_Base} #obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'base_name': Hosted_File_Link_Base}
obj_type_li['journal'] = {'table_name': 'v_journal', 'base_name': Journal_Base} #obj_type_li['journal'] = {'table_name': 'v_journal', 'base_name': Journal_Base}
obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'base_name': Journal_Entry_Base} #obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'base_name': Journal_Entry_Base}
obj_type_li['log'] = {'table_name': 'log', 'base_name': Log_Base} #'v_log' #obj_type_li['log'] = {'table_name': 'log', 'base_name': Log_Base} #'v_log'
obj_type_li['log_client_viewing'] = {'table_name': 'log_client_viewing', 'base_name': Log_Client_Viewing_Base} #obj_type_li['log_client_viewing'] = {'table_name': 'log_client_viewing', 'base_name': Log_Client_Viewing_Base}
obj_type_li['membership'] = {'table_name': 'v_membership', 'base_name': Membership_Base} obj_type_li['membership'] = {'table_name': 'v_membership', 'base_name': Membership_Base}
obj_type_li['membership_cfg'] = {'table_name': 'v_membership_cfg', 'base_name': Membership_Cfg_Base} obj_type_li['membership_cfg'] = {'table_name': 'v_membership_cfg', 'base_name': Membership_Cfg_Base}
obj_type_li['message'] = {'table_name': 'message', 'base_name': Message_Base} #'v_message' #obj_type_li['message'] = {'table_name': 'message', 'base_name': Message_Base} #'v_message'
obj_type_li['order'] = {'table_name': 'v_order', 'base_name': Order_Base} obj_type_li['order'] = {'table_name': 'v_order', 'base_name': Order_Base}
obj_type_li['order_cart'] = {'table_name': 'v_order_cart', 'base_name': Order_Cart_Base} obj_type_li['order_cart'] = {'table_name': 'v_order_cart', 'base_name': Order_Cart_Base}
obj_type_li['order_cart_line'] = {'table_name': 'v_order_cart_line', 'base_name': Order_Cart_Line_Base} obj_type_li['order_cart_line'] = {'table_name': 'v_order_cart_line', 'base_name': Order_Cart_Line_Base}
obj_type_li['order_line'] = {'table_name': 'v_order_line', 'base_name': Order_Line_Base} obj_type_li['order_line'] = {'table_name': 'v_order_line', 'base_name': Order_Line_Base}
obj_type_li['order_transaction'] = {'table_name': 'order_transaction', 'base_name': Order_Transaction_Base} #obj_type_li['order_transaction'] = {'table_name': 'order_transaction', 'base_name': Order_Transaction_Base}
obj_type_li['organization'] = {'table_name': 'v_organization', 'base_name': Organization_Base} obj_type_li['organization'] = {'table_name': 'v_organization', 'base_name': Organization_Base}
obj_type_li['page'] = {'table_name': 'page', 'base_name': Page_Base} obj_type_li['page'] = {'table_name': 'page', 'base_name': Page_Base}
obj_type_li['person'] = {'table_name': 'v_person', 'base_name': Person_Base} obj_type_li['person'] = {'table_name': 'v_person', 'base_name': Person_Base}
@@ -79,28 +88,28 @@ obj_type_li['site_domain'] = {'table_name': 'v_site_domain', 'base_name': Site_D
obj_type_li['user'] = {'table_name': 'v_user', 'base_name': User_Base} obj_type_li['user'] = {'table_name': 'v_user', 'base_name': User_Base}
obj_type_li['user_role'] = {'table_name': 'v_user_role', 'base_name': User_Role_Base} # NOTE check view name: *_detail? obj_type_li['user_role'] = {'table_name': 'v_user_role', 'base_name': User_Role_Base} # NOTE check view name: *_detail?
obj_type_li['lu_country'] = {'table_name': 'lu_country', 'base_name': Lu_Country_Base} #obj_type_li['lu_country'] = {'table_name': 'lu_country', 'base_name': Lu_Country_Base}
obj_type_li['lu_country_subdivision'] = {'table_name': 'lu_country_subdivision', 'base_name': Lu_Country_Subdivision_Base} #obj_type_li['lu_country_subdivision'] = {'table_name': 'lu_country_subdivision', 'base_name': Lu_Country_Subdivision_Base}
obj_type_li['lu_education_degree'] = {'table_name': 'lu_education_degree', 'base_name': Lu_Education_Degree_Base} #obj_type_li['lu_education_degree'] = {'table_name': 'lu_education_degree', 'base_name': Lu_Education_Degree_Base}
obj_type_li['lu_education_level'] = {'table_name': 'lu_education_level', 'base_name': Lu_Education_Level_Base} #obj_type_li['lu_education_level'] = {'table_name': 'lu_education_level', 'base_name': Lu_Education_Level_Base}
obj_type_li['lu_ethnicity'] = {'table_name': 'lu_ethnicity', 'base_name': Lu_Ethnicity_Base} #obj_type_li['lu_ethnicity'] = {'table_name': 'lu_ethnicity', 'base_name': Lu_Ethnicity_Base}
obj_type_li['lu_file_purpose'] = {'table_name': 'lu_file_purpose', 'base_name': Lu_File_Purpose_Base} #obj_type_li['lu_file_purpose'] = {'table_name': 'lu_file_purpose', 'base_name': Lu_File_Purpose_Base}
obj_type_li['lu_gender'] = {'table_name': 'lu_gender', 'base_name': Lu_Gender_Base} #obj_type_li['lu_gender'] = {'table_name': 'lu_gender', 'base_name': Lu_Gender_Base}
obj_type_li['lu_html_color'] = {'table_name': 'lu_html_color', 'base_name': Lu_Html_Color_Base} #obj_type_li['lu_html_color'] = {'table_name': 'lu_html_color', 'base_name': Lu_Html_Color_Base}
obj_type_li['lu_media_type'] = {'table_name': 'lu_media_type', 'base_name': Lu_Media_Type_Base} #obj_type_li['lu_media_type'] = {'table_name': 'lu_media_type', 'base_name': Lu_Media_Type_Base}
obj_type_li['lu_membership_status'] = {'table_name': 'lu_membership_status', 'base_name': Lu_Membership_Status_Base} #obj_type_li['lu_membership_status'] = {'table_name': 'lu_membership_status', 'base_name': Lu_Membership_Status_Base}
obj_type_li['lu_membership_type'] = {'table_name': 'lu_membership_type', 'base_name': Lu_Membership_Type_Base} #obj_type_li['lu_membership_type'] = {'table_name': 'lu_membership_type', 'base_name': Lu_Membership_Type_Base}
obj_type_li['lu_order_status'] = {'table_name': 'lu_order_status', 'base_name': Lu_Order_Status_Base} #obj_type_li['lu_order_status'] = {'table_name': 'lu_order_status', 'base_name': Lu_Order_Status_Base}
obj_type_li['lu_post_topic'] = {'table_name': 'lu_post_topic', 'base_name': Lu_Post_Topic_Base} #obj_type_li['lu_post_topic'] = {'table_name': 'lu_post_topic', 'base_name': Lu_Post_Topic_Base}
obj_type_li['lu_product_type'] = {'table_name': 'lu_product_type', 'base_name': Lu_Product_Type_Base} #obj_type_li['lu_product_type'] = {'table_name': 'lu_product_type', 'base_name': Lu_Product_Type_Base}
obj_type_li['lu_pronoun'] = {'table_name': 'lu_pronoun', 'base_name': Lu_Pronoun_Base} #obj_type_li['lu_pronoun'] = {'table_name': 'lu_pronoun', 'base_name': Lu_Pronoun_Base}
obj_type_li['lu_race'] = {'table_name': 'lu_race', 'base_name': Lu_Race_Base} #obj_type_li['lu_race'] = {'table_name': 'lu_race', 'base_name': Lu_Race_Base}
obj_type_li['lu_time_zone'] = {'table_name': 'v_lu_time_zone', 'base_name': Lu_Time_Zone_Base} #obj_type_li['lu_time_zone'] = {'table_name': 'v_lu_time_zone', 'base_name': Lu_Time_Zone_Base}
obj_type_li['lu_user_role'] = {'table_name': 'lu_user_role', 'base_name': Lu_User_Role_Base} #obj_type_li['lu_user_role'] = {'table_name': 'lu_user_role', 'base_name': Lu_User_Role_Base}
obj_type_li['lu_user_status'] = {'table_name': 'lu_user_status', 'base_name': Lu_User_Status_Base} #obj_type_li['lu_user_status'] = {'table_name': 'lu_user_status', 'base_name': Lu_User_Status_Base}
obj_type_li['stripe_customer'] = {'table_name': 'stripe_customer', 'base_name': Stripe_Customer_Base} #obj_type_li['stripe_customer'] = {'table_name': 'stripe_customer', 'base_name': Stripe_Customer_Base}
obj_type_li['stripe_log'] = {'table_name': 'stripe_log', 'base_name': Stipe_Log_Base} #obj_type_li['stripe_log'] = {'table_name': 'stripe_log', 'base_name': Stipe_Log_Base}
# obj_type_li['c_idda_membership_profile'] = {'table_name': 'c_idda_membership_profile', 'base_name': C_Idda_Membership_Profile_Base} # obj_type_li['c_idda_membership_profile'] = {'table_name': 'c_idda_membership_profile', 'base_name': C_Idda_Membership_Profile_Base}
# obj_type_li['c_osit_demo_membership_profile'] = {'table_name': 'c_osit_demo_membership_profile', 'base_name': C_Osit_Demo_Membership_Profile_Base} # obj_type_li['c_osit_demo_membership_profile'] = {'table_name': 'c_osit_demo_membership_profile', 'base_name': C_Osit_Demo_Membership_Profile_Base}