Adding lots of models

This commit is contained in:
Scott Idem
2021-03-08 16:39:41 -05:00
parent 3d5fafc4bf
commit 90c3ab1ba1
6 changed files with 621 additions and 15 deletions

View File

@@ -0,0 +1,115 @@
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 Archive_Content_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['archive_id_random'],
alias='archive_id_random',
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias='archive_id'
)
account_id_random: Optional[str] # Is this field really needed?
account_id: Optional[int] # Is this field really needed?
archive_id_random: Optional[str]
archive_id: Optional[int]
archive_content_type_id: Optional[int]
archive_content_type: Optional[str]
lu_media_type_id: Optional[int]
lu_media_type: Optional[str]
name: Optional[str]
description: Optional[str]
html_content: Optional[str]
json_content: Optional[str]
url: Optional[str]
url_text: Optional[str]
hosted_file_id_random: Optional[str]
hosted_file_id: Optional[int]
path_file: Optional[str]
filename: Optional[str]
file_extension: Optional[str]
original_datetime: Optional[datetime.datetime] = None
original_datetime_timezone: Optional[datetime.datetime] = None
original_location: Optional[str] = None
original_address_id: Optional[int] = None
original_url: Optional[str]
original_url_text: Optional[str]
meta_data: Optional[str]
access_key: Optional[str]
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
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('archive_content_id_random', always=True)
def archive_content_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 archive_content_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='archive_content')
return None
@validator('archive_id', always=True)
def archive_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['archive_id_random']:
return redis_lookup_id_random(record_id_random=values['archive_id_random'], table_name='archive')
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
class Config:
underscore_attrs_are_private = True
fields = base_fields
Archive_Content_Base.update_forward_refs()

View File

@@ -1 +1,95 @@
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 Archive_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['archive_id_random'],
alias='archive_id_random',
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias='archive_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
archive_type_id: Optional[int]
archive_type: Optional[str]
name: Optional[str]
description: Optional[str]
html_content: Optional[str]
json_content: Optional[str]
url_content: Optional[str]
url_content_text: Optional[str]
original_datetime: Optional[datetime.datetime] = None
original_datetime_timezone: Optional[datetime.datetime] = None
original_location: Optional[str] = None
original_address_id: Optional[int] = None
original_url: Optional[str]
original_url_text: Optional[str]
meta_data: Optional[str]
access_key: Optional[str]
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
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('archive_id_random', always=True)
def archive_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 archive_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='archive')
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
class Config:
underscore_attrs_are_private = True
fields = base_fields
Archive_Base.update_forward_refs()

View File

@@ -0,0 +1,144 @@
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 Event_Exhibit_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
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),
)
id: Optional[int] = Field(
#alias='event_exhibit_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
event_id_random: Optional[str]
event_id: Optional[int]
organization_id_random: Optional[str]
organization_id: Optional[int]
contact_id_random: Optional[str]
contact_id: Optional[int]
person_id_random: Optional[str]
person_id: Optional[int]
status_id_random: Optional[str]
status_id: Optional[int]
name: Optional[str]
tagline: Optional[str]
description: Optional[str]
path_logo: Optional[str]
path_thumbnail: Optional[str]
path_banner_image: Optional[str]
banner_bg_color: Optional[str]
path_background_image: Optional[str]
background_bg_color: Optional[str]
embed_html: Optional[str]
staff_limit: Optional[int]
hosted_file_limit: Optional[int]
enable_organization_name_change: Optional[bool]
enable_name_change: Optional[bool]
enable_banner_image: Optional[bool]
enable_background_image: Optional[bool]
enable_embedded_content: Optional[bool]
enable_staff_photo: Optional[bool]
# access_key: Optional[str] # Maybe use in the future?
# enable: Optional[bool] # Maybe use in the future?
# enable_from: Optional[datetime.datetime] = None # Maybe use in the future?
# enable_to: Optional[datetime.datetime] = None # Maybe use in the future?
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('event_exhibit_id_random', always=True)
def event_exhibit_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 event_exhibit_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='event_exhibit')
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('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_id_random']:
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None
@validator('organization_id', always=True)
def organization_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['organization_id_random']:
return redis_lookup_id_random(record_id_random=values['organization_id_random'], table_name='organization')
return None
@validator('contact_id', always=True)
def contact_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['contact_id_random']:
return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
return None
@validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['person_id_random']:
return redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person')
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields
Event_Exhibit_Base.update_forward_refs()

View File

@@ -1 +1,136 @@
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 Event_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['event_id_random'],
alias='event_id_random',
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias='event_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
lu_event_type_id: Optional[int]
#lu_event_type: Optional[str] # Needs to be reviewed
type_name: Optional[str] = Field(
alias='type'
)
name: Optional[str]
summary: Optional[str]
description: Optional[str]
format: Optional[str]
lu_time_zone_id: Optional[int]
timezone: Optional[str]
start_datetime: Optional[datetime.datetime] = None
end_datetime: Optional[datetime.datetime] = None
recurring: Optional[bool]
recurring_pattern: Optional[str]
recurring_start_time: Optional[datetime.time]
recurring_end_time: Optional[datetime.time]
recurring_text: Optional[str]
weekday_sunday: Optional[bool]
weekday_monday: Optional[bool]
weekday_tuesday: Optional[bool]
weekday_wednesday: Optional[bool]
weekday_thursday: Optional[bool]
weekday_friday: Optional[bool]
weekday_saturday: Optional[bool]
address_location_id: Optional[int]
location_text: Optional[str]
online_start: Optional[datetime.datetime] = None
online_end: Optional[datetime.datetime] = None
reg_deadline_1: Optional[datetime.datetime] = None
reg_deadline_2: Optional[datetime.datetime] = None
reg_deadline_3: Optional[datetime.datetime] = None
reg_deadline_4: Optional[datetime.datetime] = None
max_registrants: Optional[int]
private: Optional[bool] # invite only
physical: Optional[bool] # physical in person event
virtual: Optional[bool] # virtual remote access event
# NOT FINISHED YET
# access_key: Optional[str] # Maybe use in the future?
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
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('event_id_random', always=True)
def event_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 event_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='event')
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
Event_Base.update_forward_refs()

View File

@@ -1 +1,114 @@
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 Event_Registration_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
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),
)
id: Optional[int] = Field(
#alias='event_registration_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
event_id_random: Optional[str]
event_id: Optional[int]
organization_id_random: Optional[str]
organization_id: Optional[int]
contact_id_random: Optional[str]
contact_id: Optional[int]
person_id_random: Optional[str]
person_id: Optional[int]
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('event_registration_id_random', always=True)
def event_registration_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 event_registration_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='event_registration')
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('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_id_random']:
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None
@validator('organization_id', always=True)
def organization_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['organization_id_random']:
return redis_lookup_id_random(record_id_random=values['organization_id_random'], table_name='organization')
return None
@validator('contact_id', always=True)
def contact_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['contact_id_random']:
return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
return None
@validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['person_id_random']:
return redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person')
return None
class Config:
underscore_attrs_are_private = True
fields = base_fields
Event_Registration_Base.update_forward_refs()

View File

@@ -12,7 +12,12 @@ from app.db_sql import *
from ..models.account_model import * from ..models.account_model import *
from ..models.account_cfg_model import * from ..models.account_cfg_model import *
from ..models.address_model import * from ..models.address_model import *
from ..models.archive_model import *
from ..models.archive_content_model import *
from ..models.contact_model import * from ..models.contact_model import *
from ..models.event_model import *
from ..models.event_exhibit_model import *
from ..models.event_registration_model import *
from ..models.order_model import * from ..models.order_model import *
from ..models.site_model import * from ..models.site_model import *
from ..models.site_domain_model import * from ..models.site_domain_model import *
@@ -33,22 +38,22 @@ obj_type_li['account_cfg'] = {'table_name': 'v_account_cfg_detail', 'base_name':
obj_type_li['address'] = {'table_name': 'v_address', 'base_name': Address_Base} obj_type_li['address'] = {'table_name': 'v_address', 'base_name': Address_Base}
obj_type_li['archive'] = {'table_name': 'v_archive', 'base_name': Archive_Base} obj_type_li['archive'] = {'table_name': 'v_archive', 'base_name': Archive_Base}
obj_type_li['archive_content'] = {'table_name': 'v_archive_content', 'base_name': Archive_Content_Base} obj_type_li['archive_content'] = {'table_name': 'v_archive_content', 'base_name': Archive_Content_Base}
obj_type_li['change_log'] = {'table_name': 'change_log', 'base_name': Change_Log_Base} #obj_type_li['change_log'] = {'table_name': 'change_log', 'base_name': Change_Log_Base}
obj_type_li['contact'] = {'table_name': 'v_contact', 'base_name': Contact_Base} obj_type_li['contact'] = {'table_name': 'v_contact', 'base_name': Contact_Base}
obj_type_li['cont_edu_cert'] = {'table_name': 'cont_edu_cert', 'base_name': Cont_Edu_Cert_Base} #obj_type_li['cont_edu_cert'] = {'table_name': 'cont_edu_cert', 'base_name': Cont_Edu_Cert_Base}
obj_type_li['event'] = {'table_name': 'v_event', 'base_name': Event_Base} obj_type_li['event'] = {'table_name': 'v_event', 'base_name': Event_Base}
obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Badge_Base} #obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Badge_Base}
obj_type_li['event_badge_log'] = {'table_name': 'event_badge_log', 'base_name': Event_Badge_Log_Base} #obj_type_li['event_badge_log'] = {'table_name': 'event_badge_log', 'base_name': Event_Badge_Log_Base}
obj_type_li['event_badge_template'] = {'table_name': 'event_badge_template', 'base_name': Event_Badge_Template_Base} #obj_type_li['event_badge_template'] = {'table_name': 'event_badge_template', 'base_name': Event_Badge_Template_Base}
obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base} #obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base}
obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail? obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail?
obj_type_li['event_file'] = {'table_name': 'v_event_file', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file #obj_type_li['event_file'] = {'table_name': 'v_event_file', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file
obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base} #obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base}
obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base} #obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base}
obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base} #obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base}
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}