Files
OSIT-AE-API-FastAPI/app/object_definitions/events.py
Scott Idem b8a417a5d7 Key Accomplishments:
1. Badge Model Updates: Added print_count, print_first_datetime, and print_last_datetime to the
      Event_Badge_Basic_Base model.
   2. Soft Delete in V3 CRUD: Implemented a method query parameter (delete, hide, disable) for the DELETE
      endpoints in api_crud_v3.py.
   3. Security Hardening: Populated searchable_fields allowlists for all objects across the V3 CRUD
      definitions (core.py, events.py, orders.py, cms.py, lookups.py, membership.py, other.py).
   4. Shared Documentation: Created /home/scott/agents_sync/Aether/api_v3.md to coordinate these V3 API
      features with the Svelte agent and other tools.
2026-01-05 20:05:33 -05:00

274 lines
11 KiB
Python

from app.models.event_models import *
from app.models.event_abstract_models import *
from app.models.event_badge_models import *
from app.models.event_badge_template_models import *
from app.models.event_device_models import *
from app.models.event_exhibit_models import *
from app.models.event_exhibit_tracking_models import *
from app.models.event_file_models import *
from app.models.event_location_models import *
from app.models.event_person_models import *
from app.models.event_person_tracking_models import *
from app.models.event_presentation_models import *
from app.models.event_presenter_models import *
from app.models.event_registration_models import *
from app.models.event_session_models import *
from app.models.event_track_models import *
event_obj_li = {
'event': {
'tbl': 'event',
'tbl_default': 'v_event',
'tbl_alt': 'v_event_w_file_count',
'tbl_update': 'event',
'mdl': Event_Base,
'mdl_default': Event_Base,
'mdl_alt': Event_Meeting_Flat_Base,
'mdl_in': Event_Base,
'mdl_out': Event_Base,
# Legacy V2 keys:
'table_name': 'v_event',
'table_name_alt': 'v_event_w_file_count',
'tbl_name_update': 'event',
'base_name': Event_Base,
'base_name_alt': Event_Meeting_Flat_Base,
'exp_default': [
'event_id_random',
'conference', 'type',
'name', 'description',
'location_text', 'physical', 'virtual',
'attend_url', 'attend_url_text', 'attend_url_passcode', 'attend_phone', 'attend_phone_passcode', 'attend_text',
'contact_1_id', 'contact_2_id',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
'exp_idaa': [
'event_id_random',
'external_person_id', # IDAA Novi ID
'conference', 'type',
'name', 'description',
'format', 'timezone', 'recurring', 'recurring_pattern', 'recurring_start_time', 'recurring_end_time', 'recurring_text',
'weekday_sunday', 'weekday_monday', 'weekday_tuesday', 'weekday_wednesday', 'weekday_thursday', 'weekday_friday', 'weekday_saturday',
'location_text', 'physical', 'virtual',
'attend_url', 'attend_url_passcode', 'attend_phone', 'attend_phone_passcode', 'attend_text',
'contact_1_id', 'contact_2_id',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'event_id_random', 'account_id_random', 'event_code', 'type', 'name',
'summary', 'description', 'format', 'timezone', 'location_text',
'status', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'event_abstract': {
'tbl': 'event_abstract',
'tbl_default': 'v_event_abstract',
'tbl_update': 'event_abstract',
'mdl': Event_Abstract_In,
'mdl_default': Event_Abstract_In,
'mdl_in': Event_Abstract_In,
'mdl_out': Event_Abstract_In,
# Legacy V2 keys:
'table_name': 'v_event_abstract',
'tbl_name_update': 'event_abstract',
'base_name': Event_Abstract_In,
},
'event_badge': {
'tbl': 'event_badge',
'tbl_default': 'v_event_badge',
'tbl_alt': 'v_event_badge_only',
'tbl_update': 'event_badge',
'mdl': Event_Badge_Base,
'mdl_default': Event_Badge_Basic_Base,
# Legacy V2 keys:
'table_name': 'v_event_badge',
'table_name_alt': 'v_event_badge_only',
'tbl_name_update': 'event_badge',
'base_name': Event_Badge_Basic_Base,
},
'event_badge_template': {
'tbl': 'event_badge_template',
'tbl_default': 'v_event_badge_template',
'tbl_update': 'event_badge_template',
'mdl': Event_Badge_Template_Base,
'mdl_default': Event_Badge_Template_Base,
'mdl_in': Event_Badge_Template_Base,
'mdl_out': Event_Badge_Template_Base,
# Legacy V2 keys:
'table_name': 'v_event_badge_template',
'tbl_name_update': 'event_badge_template',
'base_name': Event_Badge_Template_Base,
},
'event_device': {
'tbl': 'event_device',
'tbl_default': 'v_event_device',
'tbl_alt': 'v_event_device',
'tbl_update': 'event_device',
'mdl': Event_Device_Base,
'mdl_default': Event_Device_Base,
'mdl_in': Event_Device_Base,
'mdl_out': Event_Device_Base,
# Legacy V2 keys:
'table_name': 'v_event_device',
'tbl_name_update': 'event_device',
'base_name': Event_Device_Base,
},
'event_exhibit': {
'tbl': 'event_exhibit',
'tbl_default': 'v_event_exhibit',
'tbl_update': 'event_exhibit',
'mdl': Event_Exhibit_Base,
'mdl_default': Event_Exhibit_Base,
'mdl_in': Event_Exhibit_Base,
'mdl_out': Event_Exhibit_Base,
# Legacy V2 keys:
'table_name': 'v_event_exhibit',
'tbl_name_update': 'event_exhibit',
'base_name': Event_Exhibit_Base,
},
'event_exhibit_tracking': {
'tbl': 'event_exhibit_tracking',
'tbl_default': 'v_event_exhibit_tracking',
'tbl_update': 'event_exhibit_tracking',
'mdl': Event_Exhibit_Tracking_Base,
'mdl_default': Event_Exhibit_Tracking_Base,
# Legacy V2 keys:
'table_name': 'v_event_exhibit_tracking',
'tbl_name_update': 'event_exhibit_tracking',
'base_name': Event_Exhibit_Tracking_Base,
},
'event_file': {
'tbl': 'event_file',
'tbl_default': 'v_event_file_simple',
'tbl_alt': 'v_event_file',
'tbl_update': 'event_file',
'mdl': Event_File_Base,
'mdl_default': Event_File_Base,
'mdl_in': Event_File_Base,
'mdl_out': Event_File_Base,
# Legacy V2 keys:
'table_name': 'v_event_file_simple',
'table_name_alt': 'v_event_file',
'tbl_name_update': 'event_file',
'base_name': Event_File_Base,
},
'event_location': {
'tbl': 'event_location',
'tbl_default': 'v_event_location',
'tbl_alt': 'v_event_location_w_file_count',
'tbl_update': 'event_location',
'mdl': Event_Location_Base,
'mdl_default': Event_Location_Base,
'mdl_in': Event_Location_Base,
'mdl_out': Event_Location_Base,
# Legacy V2 keys:
'table_name': 'v_event_location',
'table_name_alt': 'v_event_location_w_file_count',
'tbl_name_update': 'event_location',
'base_name': Event_Location_Base,
},
'event_person': {
'tbl': 'event_person',
'tbl_default': 'v_event_person',
'tbl_update': 'event_person',
'mdl': Event_Person_Base,
'mdl_default': Event_Person_Base,
'mdl_in': Event_Person_Base,
'mdl_out': Event_Person_Base,
# Legacy V2 keys:
'table_name': 'v_event_person',
'tbl_name_update': 'event_person',
'base_name': Event_Person_Base,
},
'event_person_tracking': {
'tbl': 'event_person_tracking',
'tbl_default': 'v_event_person_tracking',
'tbl_update': 'event_person_tracking',
'mdl': Event_Person_Tracking_Base,
'mdl_default': Event_Person_Tracking_Base,
# Legacy V2 keys:
'table_name': 'v_event_person_tracking',
'tbl_name_update': 'event_person_tracking',
'base_name': Event_Person_Tracking_Base,
},
'event_presentation': {
'tbl': 'event_presentation',
'tbl_default': 'v_event_presentation',
'tbl_alt': 'v_event_presentation_w_file_count',
'tbl_update': 'event_presentation',
'mdl': Event_Presentation_Base,
'mdl_default': Event_Presentation_Base,
'mdl_in': Event_Presentation_Base,
'mdl_out': Event_Presentation_Base,
# Legacy V2 keys:
'table_name': 'v_event_presentation',
'table_name_alt': 'v_event_presentation_w_file_count',
'tbl_name_update': 'event_presentation',
'base_name': Event_Presentation_Base,
},
'event_presenter': {
'tbl': 'event_presenter',
'tbl_default': 'v_event_presenter',
'tbl_alt': 'v_event_presenter_w_file_count',
'tbl_update': 'event_presenter',
'mdl': Event_Presenter_Base,
'mdl_default': Event_Presenter_Base,
'mdl_in': Event_Presenter_Base,
'mdl_out': Event_Presenter_Out_Base,
# Legacy V2 keys:
'table_name': 'v_event_presenter',
'table_name_alt': 'v_event_presenter_w_file_count',
'tbl_name_update': 'event_presenter',
'base_name': Event_Presenter_Base,
'exp_default': [
'event_presenter_id_random',
'title_names', 'given_name', 'middle_name', 'family_name', 'designations',
'professional_title', 'full_name',
'affiliations',
'email', 'biography',
'agree',
'comments',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
},
'event_registration': {
'tbl': 'event_registration',
'tbl_default': 'v_event_registration',
'tbl_update': 'event_registration',
'mdl': Event_Registration_Base,
'mdl_default': Event_Registration_Base,
'mdl_in': Event_Registration_Base,
'mdl_out': Event_Registration_Base,
# Legacy V2 keys:
'table_name': 'v_event_registration',
'tbl_name_update': 'event_registration',
'base_name': Event_Registration_Base,
},
'event_session': {
'tbl': 'event_session',
'tbl_default': 'v_event_session',
'tbl_alt': 'v_event_session_w_file_count',
'tbl_update': 'event_session',
'mdl': Event_Session_Base,
'mdl_default': Event_Session_Base,
'mdl_in': Event_Session_Base,
'mdl_out': Event_Session_Base,
'exclude_for_db': {'poc_person_id', 'file_count', 'internal_use_count', 'enable_from', 'enable_to', 'event_name', 'event_start_datetime', 'event_end_datetime', 'event_location_name', 'event_track_name', 'event_abstract_list', 'event_badge_list', 'event_device_list', 'event_file_list', 'event_file_internal_use_list', 'event_location', 'event_location_list', 'event_person_list', 'event_presenter_cat', 'event_presentation_list', 'event_presenter_list', 'event_track', 'poc_event_person'},
# Legacy V2 keys:
'table_name': 'v_event_session',
'tbl_name_update': 'event_session',
'base_name': Event_Session_Base,
},
'event_track': {
'tbl': 'event_track',
'tbl_default': 'v_event_track',
'tbl_update': 'event_track',
'mdl': Event_Track_Base,
'mdl_default': Event_Track_Base,
# Legacy V2 keys:
'table_name': 'v_event_track',
'tbl_name_update': 'event_track',
'base_name': Event_Track_Base,
},
}