From 064942c6474c54fb324a3704951c511874c6f587 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 20 Nov 2025 14:26:30 -0500 Subject: [PATCH] docs: Reorganize documentation files - Centralize project-wide documentation into a new /documentation directory. - Remove old, deprecated README guideline files. - Create a comprehensive AETHER_API_OBJECTS.md file detailing all API data models. --- OLD_README_guidelines_ui_ux.md | 137 - OLD_README_guidelines_v1.md | 80 - OLD_README_guidelines_v2.md | 173 -- documentation/AETHER_API_OBJECTS.md | 2274 +++++++++++++++++ .../ARCHITECTURE.md | 0 COMPONENTS.md => documentation/COMPONENTS.md | 0 .../DATA_STRUCTURES.md | 0 .../NAMING_CONVENTIONS.md | 0 .../SVELTE_DEXIE_GUIDE.md | 0 9 files changed, 2274 insertions(+), 390 deletions(-) delete mode 100644 OLD_README_guidelines_ui_ux.md delete mode 100644 OLD_README_guidelines_v1.md delete mode 100644 OLD_README_guidelines_v2.md create mode 100644 documentation/AETHER_API_OBJECTS.md rename ARCHITECTURE.md => documentation/ARCHITECTURE.md (100%) rename COMPONENTS.md => documentation/COMPONENTS.md (100%) rename DATA_STRUCTURES.md => documentation/DATA_STRUCTURES.md (100%) rename NAMING_CONVENTIONS.md => documentation/NAMING_CONVENTIONS.md (100%) rename SVELTE_DEXIE_GUIDE.md => documentation/SVELTE_DEXIE_GUIDE.md (100%) diff --git a/OLD_README_guidelines_ui_ux.md b/OLD_README_guidelines_ui_ux.md deleted file mode 100644 index 650e3a3e..00000000 --- a/OLD_README_guidelines_ui_ux.md +++ /dev/null @@ -1,137 +0,0 @@ -# AE UI Components, Layout, and Style Standards (HTML/CSS) - -## Aether Components - -### System Components - -- [header] -- [main/module]s -- [footer] -- [app] refresh, clear IDB, clear local storage (settings), iframe toggle (also updates URL param), copy URL, generate and show QR -- [menu][mode] edit, more (all or details) -- [menu][access_type] passcode input, clear -- [menu][user] sign in/out, reset password, email link, change username and email -- [menu][theme] mode (light/dark), name (theme list) -- [debug] toggle (also updates URL param), show core and module storages, manually set init timestamp -- [scroll_to] top, page up, page down, bottom - -### Core Components - -- [copy_btn] clipboard, bind:value, btn_text, btn_html -- [txt_editor] textarea -- [md_editor] CodeMirror, ShadEditor TipTap (need to remove) -- [html_editor] -- [media_player] - - hosted_file archive_content media_player, - - bind:host_id, - - bind:media_type - - status - stopped, paused, playing -- [hosted_file_li] manage_hosted_file_li, make available for selection -- [hosted_file_link_to] list links per object, bind:add link, bind:remove link -- [upload_to_host] - input_hosted_file; needs to handle multiple files - - link_type, - - link_id, - - inner fragment - label html - - bind:trigger - - bind:show_spinner - - bind:show_percent - - status - - result - started, uploading, finished -- [upload_file_tbl] input_hosted_file_tbl, check for dup file hash, remove from list -- [download_from_host] - - bind:host_file_id - - bind:filename - - bind:file_ext - - btn inner fragment - - bind:trigger - - bind:show_spinner - - bind:show_percent - - status - - result - started, downloading, finished -- [data_store] -- [ae_crud] need to simplify! obj, prop, current_value, bind:value, bind:trigger, inner fragment -- [ae_obj_prop_val] - essentially a wrapper for the function - - bind:obj_type - - bind:obj_id - - bind:obj_prop - - bind:obj_value - - bind:obj_new_value - - bind:trigger - - bind:show_spinner - - bind:show_percent - - status - - result -- [sql_qry] -- [obj_tbl] obj sql results tbl or similar -- [qr_scanner] -- [websocket] - -### Main / Module Components - -- [menu][options] various settings, show/hide content and options, limit, sorting options, etc -- [menu][actions] various actions, sign in/out, email - -### Object Menu - -- properties: id, name, group, priority, sort, alert, hide, enable, note -- future properties: ext_id (not ready yet), ext_sys_id (not ready yet), code (not ready yet) -- actions: create, view, edit, update, hide, disable, delete, alert (message), archive (not ready yet) -- future actions: copy, import -- sort options: - - [default] group > priority > sort (ASC/DESC) > alert > name - - [sort_updated] group > priority > sort (ASC/DESC) > alert > updated_on > created_on - - [priority_updated] group > priority > updated_on (ASC/DESC) > created_on - - [priority_name] group > priority > name (ASC/DESC) > sort > alert > updated_on > created_on - - [name] priority > name (ASC/DESC) > sort > alert > updated_on > created_on - - [created_on] priority > created_on (ASC/DESC) - - [updated_on] priority > updated_on (ASC/DESC) > created_on - -### Pop-ups: - -- modal_header - - title - - close -- modal_main -- modal_meta -- modal_footer - - close - -#### Pop-up Modal (blocking) - -- modal position - -#### Pop-up Modal Inline - -- inline, inline-block, block - -#### Pop-up Dialog - -- dialog position - -## Containers - -### Navigation - -- link -- download - -### Forms - -- save -- clear value -- set null value - -### Other Containers - -- help - blue -- info - blue -- alert - yellow -- warning - orange -- error - red -- message - green - ---- - -## Need to organize: - -- lu: id, account_id, for_obj_id, code, name, description, group, sort, priority, enable, perm_level diff --git a/OLD_README_guidelines_v1.md b/OLD_README_guidelines_v1.md deleted file mode 100644 index 82f4192b..00000000 --- a/OLD_README_guidelines_v1.md +++ /dev/null @@ -1,80 +0,0 @@ -# One Sky IT's Aether App - UI and UX Guidelines and Rules - -## General - -### Events - -#### layout header - -#### layout footer - -### Journals - -#### buttons - -##### alert - -##### info - -##### priority, flag - -##### warning, hide - -```css -variant-soft-warning hover:variant-filled-warning -``` - -##### error, delete, disable - -```css -variant-soft-error hover:variant-filled-error -``` - -#### new root layout header - -#### submenu - -```css -flex flex-row items-center justify-center gap-1 -``` - -#### new layout footer - -## Svelte 5 and SvelteKit v2 (framework and routing) - -## Tailwind 3.x CSS (styles) - -Waiting to upgrade to 4.x when ShadCN is ready. ShadCN is still being worked on as of late March 2025. - -- https://ui.shadcn.com/docs/tailwind-v4 - -## CodeMirror 6.x (text and code editor) - -- https://codemirror.net - -## ShadCN (Tailwind Components) - -- https://ui.shadcn.com/docs -- https://github.com/shadcn-ui/ui - -## Skeleton (Design System, Tailwind Components, Functional Components) - -Waiting to upgrade to Skeleton v3. Mostly because of the Tailwind 4.x upgrade needed for ShadCN. - -- https://www.skeleton.dev/docs/get-started/migrate-from-v2 - -## Flowbite (Tailwind Components) - -## Lucide Icons (SVG Icons) - -- https://lucide.dev/icons/ - -## Markdown - -Using marked for Markdown parsing. - -- https://marked.js.org/ - -## Edra (TipTap based Rich Text Editor) - -- https://edra.tsuzat.com/ diff --git a/OLD_README_guidelines_v2.md b/OLD_README_guidelines_v2.md deleted file mode 100644 index e167724e..00000000 --- a/OLD_README_guidelines_v2.md +++ /dev/null @@ -1,173 +0,0 @@ -# AE Svelte and SvelteKit Technical Standards - -## Official Modules - -### Core - -- Accounts - Minimal -- Files -- People - Minimal -- Sites - Minimal -- Users - Minimal - -### Extended - -Archives - Minimal, Events - Badges, Events - Presentation Management, Posts - Minimal, Journals - -### Custom - -IDAA - Archives, IDAA - BB, IDAA - Recovery Meetings - ---- - -## localStorage: - -- api -- app - global -- core - core modules -- [module] - extended modules -- [custom] - custom modules - ---- - -## Indexed DB - -- ae_core_db -- [module] -- [custom] - custom modules: none currently - ---- - -## Data Sorting - -- group > priority > sort > updated/created on -- type > start date/time > code or name - ---- - -## Objects - -### Function - Obj Prop Update - -- obj_type -- obj_id -- obj_prop -- obj_value - -### Core - -### Extended - -### Custom - ---- - -## Object Properties or Fields - -### Core - -Expected standard field names: id, id_random, [obj-type]\_id_random, code, name, enable, hide, priority, sort, group, notes, created_on, updated_on -Special use field names: for_type, for_id, archive_on, passcode, external_id - -### Configs and Fields with JSON - -- cfg_json -- data_json -- linked_li_json - -### Special Generated Fields - -tmp_sort_1, tmp_sort_2, - -### Future standard fields!!! - -obj_id?: null|string; -obj_ext_uid?: null|string; // Probably not needed for journals -obj_ext_id?: null|string; // Probably not needed for journals -obj_import_id?: null|string; // Probably not needed for journals -obj_code?: null|string; -obj_account_id?: null|string; -obj_passcode?: null|string; -obj_type?: null|string; // Should always be 'journal' in this case -obj_type_ver_id?: null|string; // The ID from the table for the object type -obj_name?: null|string; -obj_summary?: null|string; // LLM (AI) generated summary...??? -obj_outline?: null|string; // LLM (AI) generated outline...??? -obj_description?: null|string; // Probably not needed for journals -obj_enable?: null|boolean; -obj_enable_on?: null|Date; -obj_archive_on?: null|Date; -obj_hide?: null|boolean; -obj_priority?: null|number; -obj_sort?: null|number; -obj_group?: null|string; -obj_cfg_json?: null|string; -obj_notes?: null|string; -obj_created_on?: Date; -obj_updated_on?: null|Date; - -## Dixie IDB liveQuery with Select Objects (slct) and Lists of Objects (slct_x_li) - -Use this method below to create a read/write snapshot of the current liveQuery results. This allows you to use it as part of a form and binding values. It might make since to call this something like "lqw**x_obj" and "lqw**x_obj_li". lqw = liveQuery writable - -lq**xyz_obj - Use for general read only -lqw**xyz_obj - Use for forms and binding values. What happens if the actual LQ obj is updated after the bind? -$slct or $lqw ? - -Sort of related.... more permission/security though: Create a new table that will be attached to every v\_ view in the DB. This new table would be a field permission list. It could work similar to the data_store table and related view. This seems like a good idea????? 2025-08-11 - -```ts -let lq__post_obj = $derived( - liveQuery(async () => { - if (log_lvl) { - console.log(`lq__post_obj: post_id = ${$idaa_slct?.post_id}`); - } - let results = await db_posts.post.get($idaa_slct.post_id ?? ''); // null or undefined does not reset things like '' does - - // Check if results are different than the current $idaa_slct.post_obj - if ($idaa_slct.post_obj && results) { - if (JSON.stringify($idaa_slct.post_obj) !== JSON.stringify(results)) { - $idaa_slct.post_obj = { ...results }; - if (log_lvl) { - console.log(`$idaa_slct.post_obj = `, $idaa_slct.post_obj); - } - } else { - if (log_lvl) { - console.log(`Post object has not changed for post_id: ${$idaa_slct.post_id}`); - } - } - } - - return results; - }) -); - -let lq__post_comment_obj_li = $derived( - liveQuery(async () => { - let results = await db_posts.comment - .where('post_id') - .equals($idaa_slct.post_id ?? '') // null or undefined does not reset things like '' does - .reverse() - .sortBy('updated_on'); - // .sortBy('title'); - - if ( - $idaa_slct.post_comment_obj_li && - JSON.stringify($idaa_slct.post_comment_obj_li) !== JSON.stringify(results) - ) { - $idaa_slct.post_comment_obj_li = [...results]; - if (log_lvl) { - console.log(`$idaa_slct.post_comment_obj_li = `, $idaa_slct.post_comment_obj_li); - } - } else { - if (log_lvl) { - console.log( - `Post comment object list has not changed for post_id: ${$idaa_slct.post_id}` - ); - } - } - - return results; - }) -); -``` diff --git a/documentation/AETHER_API_OBJECTS.md b/documentation/AETHER_API_OBJECTS.md new file mode 100644 index 00000000..61878e19 --- /dev/null +++ b/documentation/AETHER_API_OBJECTS.md @@ -0,0 +1,2274 @@ +# Aether API Object Reference + +This document provides a reference for the data structures of the core Aether API objects, based on their Pydantic models. + +--- + +## Account + +**Source Model:** `Account_Base` in `models/account_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `short_name`: `Optional[str]` +- `description`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `account_cfg`: `Optional[Account_Cfg_Base]` +- `address_list`: `Optional[list]` +- `archive_list`: `Optional[list]` +- `contact_list`: `Optional[list]` +- `event_list`: `Optional[list]` +- `fundraising_cfg`: `Optional[Fundraising_Cfg_Base]` +- `hosted_file_list`: `Optional[list]` +- `journal_list`: `Optional[list]` +- `membership_cfg`: `Optional[Membership_Cfg_Base]` +- `membership_group_list`: `Optional[list]` +- `membership_person_list`: `Optional[list]` +- `membership_type_list`: `Optional[list]` +- `order_list`: `Optional[list]` +- `organization_list`: `Optional[list]` +- `page_list`: `Optional[list]` +- `person_list`: `Optional[list]` +- `post_list`: `Optional[list]` +- `product_list`: `Optional[list]` +- `site_list`: `Optional[list]` +- `user_list`: `Optional[list]` + +## Account Cfg + +**Source Model:** `Account_Cfg_Base` in `models/account_cfg_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `account_code`: `Optional[str]` +- `account_name`: `Optional[str]` +- `account_short_name`: `Optional[str]` +- `account_description`: `Optional[str]` +- `account_enable`: `Optional[bool]` +- `account_enable_from`: `Optional[datetime.datetime]` +- `account_enable_to`: `Optional[datetime.datetime]` +- `modules_enabled`: `Optional[Json]` +- `show_user_availability`: `Optional[bool]` +- `show_person_create`: `Optional[bool]` +- `person_create_label`: `Optional[str]` +- `show_person_view`: `Optional[bool]` +- `person_view_label`: `Optional[str]` +- `show_person_load`: `Optional[bool]` +- `person_load_label`: `Optional[str]` +- `show_cart`: `Optional[bool]` +- `cart_label`: `Optional[str]` +- `default_no_reply_email`: `Optional[str]` +- `default_no_reply_name`: `Optional[str]` +- `default_reply_to_email`: `Optional[str]` +- `default_reply_to_name`: `Optional[str]` +- `confirm_email`: `Optional[str]` +- `confirm_name`: `Optional[str]` +- `help_event_email`: `Optional[str]` +- `help_event_name`: `Optional[str]` +- `help_event_exhibit_email`: `Optional[str]` +- `help_event_exhibit_name`: `Optional[str]` +- `help_event_presenter_email`: `Optional[str]` +- `help_event_presenter_name`: `Optional[str]` +- `help_general_email`: `Optional[str]` +- `help_general_name`: `Optional[str]` +- `help_leadership_email`: `Optional[str]` +- `help_leadership_name`: `Optional[str]` +- `help_member_email`: `Optional[str]` +- `help_member_name`: `Optional[str]` +- `help_tech_email`: `Optional[str]` +- `help_tech_name`: `Optional[str]` +- `order_header`: `Optional[str]` +- `order_thanks`: `Optional[str]` +- `order_message`: `Optional[str]` +- `order_footer`: `Optional[str]` +- `order_fundraising_thanks`: `Optional[str]` +- `order_fundraising_message`: `Optional[str]` +- `fundraising_message`: `Optional[str]` +- `post_rules`: `Optional[str]` +- `post_comment_rules`: `Optional[str]` +- `show_post_title`: `Optional[bool]` +- `show_post_comment_title`: `Optional[bool]` +- `hide_posts_after`: `Optional[int]` +- `delete_posts_after`: `Optional[int]` +- `stripe_api_key`: `Optional[str]` +- `stripe_publishable_key`: `Optional[str]` +- `stripe_account_id`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `fundraising_cfg`: `Optional[Fundraising_Cfg_Base]` +- `membership_cfg`: `Optional[Membership_Cfg_Base]` + +## Activity Log + +**Source Model:** `Activity_Log_Base` in `models/activity_log_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `external_client_id`: `Optional[str]` +- `google_ga`: `Optional[str]` +- `google_gid`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `source`: `Optional[str]` +- `url_root`: `Optional[str]` +- `url_full_path`: `Optional[str]` +- `url_params`: `Optional[str]` +- `object_type`: `Optional[str]` +- `object_id_random`: `Optional[str]` +- `object_id`: `Optional[int]` +- `action`: `Optional[str]` +- `action_with`: `Optional[str]` +- `action_on_type`: `Optional[str]` +- `action_on_id_random`: `Optional[str]` +- `action_on_id`: `Optional[int]` +- `action_on_code`: `Optional[str]` +- `action_data`: `Optional[str]` +- `code`: `Optional[str]` +- `type_id`: `Optional[int]` +- `type_name`: `Optional[str]` +- `details`: `Optional[str]` +- `other_json`: `Optional[str]` +- `meta_json`: `Optional[str]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Address + +**Source Model:** `Address_Base` in `models/address_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id_random`: `Optional[str]` +- `for_id`: `Optional[int]` +- `contact_id_random`: `Optional[str]` +- `contact_id`: `Optional[int]` +- `name`: `Optional[str]` +- `attention_to`: `Optional[str]` +- `organization_name`: `Optional[str]` +- `line_1`: `Optional[str]` +- `line_2`: `Optional[str]` +- `line_3`: `Optional[str]` +- `city`: `Optional[str]` +- `country_subdivision_code`: `Optional[str]` +- `country_subdivision_name`: `Optional[str]` +- `state_province`: `Optional[str]` +- `postal_code`: `Optional[str]` +- `country_alpha_2_code`: `Optional[str]` +- `country_name`: `Optional[str]` +- `country`: `Optional[str]` +- `lu_time_zone_id`: `Optional[str]` +- `timezone`: `Optional[str]` +- `latitude`: `Optional[str]` +- `longitude`: `Optional[str]` +- `map_url`: `Optional[str]` +- `congressional_district`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Archive + +**Source Model:** `Archive_Base` in `models/archive_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `archive_type_id`: `Optional[int]` +- `archive_type`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `content_html`: `Optional[str]` +- `content_json`: `Optional[str]` +- `content_url`: `Optional[str]` +- `content_url_text`: `Optional[str]` +- `original_datetime`: `Optional[datetime.datetime]` +- `original_timezone`: `Optional[str]` +- `original_location`: `Optional[str]` +- `original_address_id`: `Optional[int]` +- `original_url`: `Optional[str]` +- `original_url_text`: `Optional[str]` +- `archive_content_count`: `Optional[int]` +- `meta_data`: `Optional[str]` +- `access_key`: `Optional[str]` +- `sort_by`: `Optional[str]` +- `sort_by_desc`: `Optional[bool]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `archive_content_list`: `Optional[list]` + +## Archive Content + +**Source Model:** `Archive_Content_Base` in `models/archive_content_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `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]` +- `content_html`: `Optional[str]` +- `content_json`: `Optional[Union[Json, None]]` +- `url`: `Optional[str]` +- `url_text`: `Optional[str]` +- `hosted_file_id_random`: `Optional[str]` +- `hosted_file_id`: `Optional[int]` +- `file_path`: `Optional[str]` +- `filename`: `Optional[str]` +- `file_extension`: `Optional[str]` +- `hosted_file_path`: `str` +- `api_hosted_file_path_download`: `str` +- `api_hosted_file_path_stream`: `str` +- `original_datetime`: `Optional[datetime.datetime]` +- `original_timezone`: `Optional[str]` +- `original_location`: `Optional[str]` +- `original_address_id`: `Optional[int]` +- `original_url`: `Optional[str]` +- `original_url_text`: `Optional[str]` +- `meta_data`: `Optional[str]` +- `access_key`: `Optional[str]` +- `enable_for_public`: `Optional[bool]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `hosted_file_hash_sha256`: `Optional[str]` +- `hosted_file_subdirectory_path`: `Optional[str]` +- `hosted_file_content_type`: `Optional[str]` +- `hosted_file_size`: `Optional[str]` + +## Event + +**Source Model:** `Event_Base` in `models/event_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `code`: `Optional[str]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `poc_event_person_id_random`: `Optional[str]` +- `poc_event_person_id`: `Optional[int]` +- `poc_person_id_random`: `Optional[str]` +- `poc_person_id`: `Optional[int]` +- `external_person_id`: `Optional[str]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `lu_event_type_id`: `Optional[int]` +- `conference`: `Optional[bool]` +- `type`: `Optional[str]` +- `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]` +- `end_datetime`: `Optional[datetime.datetime]` +- `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_random`: `Optional[str]` +- `address_location_id`: `Optional[int]` +- `location_address_json`: `Optional[Union[Json, None]]` +- `location_text`: `Optional[str]` +- `online_start`: `Optional[datetime.datetime]` +- `online_end`: `Optional[datetime.datetime]` +- `reg_deadline_1`: `Optional[datetime.datetime]` +- `reg_deadline_2`: `Optional[datetime.datetime]` +- `reg_deadline_3`: `Optional[datetime.datetime]` +- `reg_deadline_4`: `Optional[datetime.datetime]` +- `max_registrants`: `Optional[int]` +- `private`: `Optional[bool]` +- `physical`: `Optional[bool]` +- `virtual`: `Optional[bool]` +- `contact_1_id_random`: `Optional[str]` +- `contact_1_id`: `Optional[int]` +- `contact_2_id_random`: `Optional[str]` +- `contact_2_id`: `Optional[int]` +- `contact_3_id_random`: `Optional[str]` +- `contact_3_id`: `Optional[int]` +- `contact_li_json`: `Optional[Union[Json, None]]` +- `attend_url`: `Optional[str]` +- `attend_url_code`: `Optional[str]` +- `attend_url_passcode`: `Optional[str]` +- `attend_phone`: `Optional[str]` +- `attend_phone_passcode`: `Optional[str]` +- `attend_text`: `Optional[str]` +- `attend_json`: `Optional[Union[Json, None]]` +- `passcode`: `Optional[str]` +- `file_count`: `Optional[int]` +- `internal_use_count`: `Optional[int]` +- `event_file_id_li_json`: `Optional[Union[Json, None]]` +- `file_count_all`: `Optional[int]` +- `status`: `Optional[str]` +- `review`: `Optional[bool]` +- `approve`: `Optional[bool]` +- `ready`: `Optional[bool]` +- `ready_on`: `Optional[datetime.datetime]` +- `archive`: `Optional[bool]` +- `archive_on`: `Optional[datetime.datetime]` +- `mod_abstracts_json`: `Optional[Union[Json, None]]` +- `mod_badges_json`: `Optional[Union[Json, None]]` +- `mod_exhibits_json`: `Optional[Union[Json, None]]` +- `mod_meetings_json`: `Optional[Union[Json, None]]` +- `mod_pres_mgmt_json`: `Optional[Union[Json, None]]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_session_proposal_questions`: `Optional[Json]` +- `address_location`: `Optional[Address_Base]` +- `contact_1`: `Optional[Contact_Base]` +- `contact_2`: `Optional[Contact_Base]` +- `contact_3`: `Optional[Contact_Base]` +- `event_abstract_list`: `Optional[list]` +- `event_cfg`: `Optional[Event_Cfg_Base]` +- `event_device_list`: `Optional[list]` +- `event_exhibit_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_location_list`: `Optional[list[Event_Location_Base]]` +- `event_person_list`: `Optional[list]` +- `event_presentation_list`: `Optional[list]` +- `event_presenter_list`: `Optional[list]` +- `event_session_list`: `Optional[list[Event_Session_Base]]` +- `event_track_list`: `Optional[list]` +- `poc_person`: `Optional[Person_Base]` + +## Event Badge + +**Source Model:** `Event_Badge_Base` in `models/event_badge_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_id_random_only`: `Optional[str]` +- `event_id_only`: `Optional[int]` +- `event_badge_template_id_random`: `Optional[str]` +- `event_badge_template_id`: `Optional[int]` +- `event_person_id_random`: `Optional[str]` +- `event_person_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `external_event_id`: `Optional[str]` +- `external_registration_id`: `Optional[str]` +- `external_reg_id`: `Optional[str]` +- `external_person_id`: `Optional[str]` +- `external_sys_id`: `Optional[str]` +- `pronouns`: `Optional[str]` +- `pronouns_override`: `Optional[str]` +- `informal_name`: `Optional[str]` +- `title_names`: `Optional[str]` +- `given_name`: `Optional[str]` +- `middle_name`: `Optional[str]` +- `family_name`: `Optional[str]` +- `designations`: `Optional[str]` +- `professional_title`: `Optional[str]` +- `display_professional_title`: `Optional[str]` +- `professional_title_override`: `Optional[str]` +- `full_name`: `Optional[str]` +- `full_name_override`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `affiliations_override`: `Optional[str]` +- `email`: `Optional[str]` +- `email_override`: `Optional[str]` +- `phone`: `Optional[str]` +- `phone_override`: `Optional[str]` +- `address_line_1`: `Optional[str]` +- `address_line_2`: `Optional[str]` +- `address_line_3`: `Optional[str]` +- `city`: `Optional[str]` +- `county`: `Optional[str]` +- `country_subdivision_code`: `Optional[str]` +- `state_province`: `Optional[str]` +- `state_province_abb`: `Optional[str]` +- `postal_code`: `Optional[str]` +- `country_alpha_2_code`: `Optional[str]` +- `country`: `Optional[str]` +- `location`: `Optional[str]` +- `location_override`: `Optional[str]` +- `location_short`: `Optional[str]` +- `location_long`: `Optional[str]` +- `query_str`: `Optional[str]` +- `badge_type_code_override`: `Optional[str]` +- `badge_type_override`: `Optional[str]` +- `badge_type_code`: `Optional[str]` +- `badge_type`: `Optional[str]` +- `member_type_code`: `Optional[str]` +- `member_type`: `Optional[str]` +- `member_status`: `Optional[str]` +- `registration_type_code`: `Optional[str]` +- `registration_type`: `Optional[str]` +- `other_1`: `Optional[str]` +- `other_2`: `Optional[str]` +- `ticket_0_code`: `Optional[str]` +- `ticket_1_code`: `Optional[str]` +- `ticket_2_code`: `Optional[str]` +- `ticket_3_code`: `Optional[str]` +- `ticket_4_code`: `Optional[str]` +- `ticket_5_code`: `Optional[str]` +- `ticket_6_code`: `Optional[str]` +- `ticket_7_code`: `Optional[str]` +- `ticket_8_code`: `Optional[str]` +- `ticket_9_code`: `Optional[str]` +- `ticket_10_code`: `Optional[str]` +- `agree_to_tc`: `Optional[bool]` +- `allow_tracking`: `Optional[bool]` +- `print_first_datetime`: `Optional[datetime.datetime]` +- `print_last_datetime`: `Optional[datetime.datetime]` +- `print_count`: `Optional[int]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `default_qry_string`: `Optional[str]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `enable`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `order`: `Optional[Union[Order_Base, None]]` +- `ticket_list`: `Optional[list]` +- `event_badge_template`: `Optional[Union[Event_Badge_Template_Base, None]]` + +## Person + +**Source Model:** `Person_Base` in `models/person_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `contact_id_random`: `Optional[str]` +- `contact_id`: `Optional[int]` +- `organization_id_random`: `Optional[str]` +- `organization_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `membership_person_id_random`: `Optional[str]` +- `membership_person_id`: `Optional[int]` +- `pronouns`: `Optional[str]` +- `informal_name`: `Optional[str]` +- `title_names`: `Optional[str]` +- `prefix`: `Optional[str]` +- `given_name`: `Optional[str]` +- `middle_name`: `Optional[str]` +- `family_name`: `Optional[str]` +- `designations`: `Optional[str]` +- `suffix`: `Optional[str]` +- `professional_title`: `Optional[str]` +- `preferred_display_name`: `Optional[str]` +- `first_last_name`: `Optional[str]` +- `first_middle_last_name`: `Optional[str]` +- `last_first_name`: `Optional[str]` +- `last_first_middle_name`: `Optional[str]` +- `full_name`: `Optional[str]` +- `full_name_override`: `Optional[str]` +- `informal_full_name`: `Optional[str]` +- `professional_full_name`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `primary_email`: `Optional[str]` +- `tagline`: `Optional[Union[None, str]]` +- `birth_date`: `Optional[datetime.date]` +- `lu_gender_id`: `Optional[int]` +- `lu_gender_name`: `Optional[str]` +- `email_allowed`: `Optional[bool]` +- `paper_mail_allowed`: `Optional[bool]` +- `source_code`: `Optional[str]` +- `external_id`: `Optional[str]` +- `external_sys_id`: `Optional[str]` +- `stripe_customer_id`: `Optional[str]` +- `allow_auth_key`: `Optional[bool]` +- `auth_key`: `Optional[str]` +- `passcode`: `Optional[str]` +- `status`: `Optional[str]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `enable`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `test_field`: `str` +- `email`: `Optional[str]` +- `cc_email`: `Optional[str]` +- `username`: `Optional[str]` +- `user_name`: `Optional[str]` +- `user_email`: `Optional[str]` +- `user_allow_auth_key`: `Optional[bool]` +- `user_super`: `Optional[bool]` +- `user_manager`: `Optional[bool]` +- `user_administrator`: `Optional[bool]` +- `user_public`: `Optional[bool]` +- `data_json`: `Optional[Union[Json, None]]` +- `other_json`: `Optional[Union[Json, None]]` +- `meta_json`: `Optional[Union[Json, None]]` +- `event_list`: `Optional[list]` +- `hosted_file_list`: `Optional[list]` +- `journal_list`: `Optional[list[Journal_Base]]` +- `contact`: `Optional[Union[Contact_Base, None]]` +- `membership_person`: `Optional[Membership_Person_Base]` +- `membership_group_list`: `Optional[list[Membership_Group_Base]]` +- `membership_type_list`: `Optional[list[Membership_Type_Base]]` +- `orders_info`: `Optional[dict]` +- `order_list`: `Optional[list]` +- `order_cart`: `Optional[dict]` +- `order_cart_v3`: `Optional[dict]` +- `organization`: `Optional[Union[Organization_Base, None]]` +- `post_list`: `Optional[list]` +- `user`: `Optional[Union[User_Base, None]]` + +## User Role + +**Source Model:** `User_Role_Base` in `models/user_role_models.py` + +- `id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `lu_user_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]` +- `enable_to`: `Optional[datetime.datetime]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` + +## Contact + +**Source Model:** `Contact_Base` in `models/contact_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `address_id_random`: `Optional[str]` +- `address_id`: `Optional[int]` +- `linked_address_id_random`: `Optional[str]` +- `linked_address_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `for_id_random`: `Optional[Union[str,None]]` +- `name`: `Optional[str]` +- `title`: `Optional[str]` +- `tagline`: `Optional[str]` +- `description`: `Optional[str]` +- `lu_time_zone_id`: `Optional[str]` +- `timezone_name`: `Optional[str]` +- `email`: `Optional[str]` +- `email_active`: `Optional[bool]` +- `email_status`: `Optional[str]` +- `cc_email`: `Optional[str]` +- `phone_mobile`: `Optional[str]` +- `phone_home`: `Optional[str]` +- `phone_office`: `Optional[str]` +- `phone_land`: `Optional[str]` +- `phone_fax`: `Optional[str]` +- `phone_other`: `Optional[str]` +- `website_url`: `Optional[str]` +- `website_name`: `Optional[str]` +- `facebook_url`: `Optional[str]` +- `instagram_url`: `Optional[str]` +- `linkedin_url`: `Optional[str]` +- `twitter_url`: `Optional[str]` +- `other_site_url`: `Optional[str]` +- `other_site_name`: `Optional[str]` +- `other_text`: `Optional[str]` +- `other_json`: `Optional[Json]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `address`: `Optional[Address_Base]` + +## Data Store + +**Source Model:** `Data_Store_Base` in `models/data_store_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id_random`: `Optional[str]` +- `for_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `type`: `Optional[str]` +- `json_str`: `Optional[Union[Json, None]]` +- `text`: `Optional[str]` +- `meta_json`: `Optional[str]` +- `meta_text`: `Optional[str]` +- `access`: `Optional[str]` +- `access_read`: `Optional[str]` +- `access_write`: `Optional[str]` +- `access_delete`: `Optional[str]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Order + +**Source Model:** `Order_Base` in `models/order_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `total_quantity`: `Optional[int]` +- `total_bill`: `Optional[int]` +- `total_paid`: `Optional[int]` +- `balance`: `Optional[int]` +- `status`: `Optional[str]` +- `checkout_status`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `cfg`: `Optional[Order_Cfg_Base]` +- `order_line_list`: `Optional[list]` +- `person`: `Optional[Person_Base]` + +## Order Cart + +**Source Model:** `Order_Cart_Base` in `models/order_cart_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `order_id_random`: `Optional[str]` +- `order_id`: `Optional[int]` +- `total_quantity`: `Optional[int]` +- `total_amount`: `Optional[int]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `cfg`: `Optional[Order_Cfg_Base]` +- `order_cart_line_list`: `Optional[list[Order_Cart_Line_Base]]` + +## Order Line + +**Source Model:** `Order_Line_Base` in `models/order_line_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `order_id_random`: `Optional[str]` +- `order_id`: `Optional[int]` +- `product_id_random`: `str` +- `product_id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `account_name`: `Optional[str]` +- `product_for_type`: `Optional[str]` +- `product_for_id_random`: `Optional[str]` +- `product_for_id`: `Optional[int]` +- `product_type_id`: `Optional[int]` +- `product_type`: `Optional[str]` +- `product_type_code`: `Optional[str]` +- `product_type_name`: `Optional[str]` +- `product_name`: `Optional[str]` +- `product_description`: `Optional[str]` +- `product_unit_price`: `Optional[int]` +- `product_recurring`: `Optional[bool]` +- `curr_product_id_random`: `Optional[str]` +- `curr_product_id`: `Optional[int]` +- `curr_product_for_type`: `Optional[str]` +- `curr_product_for_id`: `Optional[int]` +- `curr_product_for_id_random`: `Optional[str]` +- `curr_product_type_id`: `Optional[int]` +- `curr_product_type`: `Optional[str]` +- `curr_product_type_code`: `Optional[str]` +- `curr_product_type_name`: `Optional[str]` +- `curr_product_name`: `Optional[str]` +- `curr_product_description`: `Optional[str]` +- `curr_product_unit_price`: `Optional[int]` +- `curr_product_max_quantity`: `Optional[int]` +- `curr_product_recurring`: `Optional[bool]` +- `for_person_id`: `Optional[int]` +- `for_person_id_random`: `Optional[str]` +- `for_person_given_name`: `Optional[str]` +- `for_person_family_name`: `Optional[str]` +- `for_person_full_name`: `Optional[str]` +- `for_person_full_name_override`: `Optional[str]` +- `name`: `Optional[str]` +- `quantity`: `int` +- `amount`: `int` +- `dollar_amount`: `Optional[str]` +- `recurring`: `Optional[bool]` +- `message`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `order_status`: `Optional[str]` +- `order_notes`: `Optional[str]` +- `order_created_on`: `Optional[datetime.datetime]` +- `order_updated_on`: `Optional[datetime.datetime]` + +## Organization + +**Source Model:** `Organization_Base` in `models/organization_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `contact_id_random`: `Optional[str]` +- `contact_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `name`: `Optional[str]` +- `tagline`: `Optional[str]` +- `description`: `Optional[str]` +- `company`: `Optional[bool]` +- `nonprofit`: `Optional[bool]` +- `industry`: `Optional[int]` +- `start_date`: `Optional[datetime.datetime]` +- `end_date`: `Optional[datetime.datetime]` +- `logo_path`: `Optional[str]` +- `logo_bg_color`: `Optional[str]` +- `thumbnail_path`: `Optional[str]` +- `thumbnail_bg_color`: `Optional[str]` +- `priority`: `Optional[int]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `contact`: `Optional[Contact_Base]` + +## Page + +**Source Model:** `Page_Base` in `models/page_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `alias`: `Optional[str]` +- `name`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `title`: `Optional[str]` +- `body`: `Optional[str]` +- `style_href`: `Optional[str]` +- `script_src`: `Optional[str]` +- `authentication_required`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Site + +**Source Model:** `Site_Base` in `models/site_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `restrict_access`: `Optional[bool]` +- `access_key`: `Optional[str]` +- `access_code_kv_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `logo_path`: `Optional[str]` +- `logo_bg_color`: `Optional[str]` +- `background_image_path`: `Optional[str]` +- `background_bg_color`: `Optional[str]` +- `logo_filename`: `Optional[str]` +- `site_menu_html_path`: `Optional[str]` +- `title`: `Optional[str]` +- `tagline`: `Optional[str]` +- `header_html`: `Optional[str]` +- `header_css`: `Optional[str]` +- `header_image_path`: `Optional[str]` +- `header_image_bg_color`: `Optional[str]` +- `body_html`: `Optional[str]` +- `style_href`: `Optional[str]` +- `script_src`: `Optional[str]` +- `google_tracking_id`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `site_domain_list`: `Optional[list]` + +## Site Domain + +**Source Model:** `Site_Domain_Base` in `models/site_domain_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `site_id_random`: `Optional[str]` +- `site_id`: `Optional[int]` +- `fqdn`: `Optional[str]` +- `access_key`: `Optional[str]` +- `required_referrer`: `Optional[str]` +- `access_code_kv_json`: `Optional[Union[Json, None]]` +- `valid_for`: `Optional[int]` +- `enable`: `Optional[bool]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `account_id`: `Optional[int]` +- `account_id_random`: `Optional[str]` + +## Continuing Education Certificate + +**Source Model:** `Cont_Edu_Cert_Base` in `models/cont_edu_cert_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `product_id_random`: `Optional[str]` +- `product_id`: `Optional[int]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `title`: `Optional[str]` +- `course_name`: `Optional[str]` +- `credits`: `Optional[int]` +- `credits_text`: `Optional[str]` +- `datetime_start`: `Optional[datetime.datetime]` +- `datetime_end`: `Optional[datetime.datetime]` +- `location`: `Optional[str]` +- `enable`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `cont_edu_cert_person_list`: `Optional[list]` +- `product`: `Optional[Union[Product_Base, None]]` + +## Continuing Education Certificate Person + +**Source Model:** `Cont_Edu_Cert_Person_Base` in `models/cont_edu_cert_person_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `cont_edu_cert_id_random`: `Optional[str]` +- `cont_edu_cert_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `pronouns`: `Optional[str]` +- `informal_name`: `Optional[str]` +- `title_names`: `Optional[str]` +- `given_name`: `Optional[str]` +- `middle_name`: `Optional[str]` +- `family_name`: `Optional[str]` +- `designations`: `Optional[str]` +- `professional_title`: `Optional[str]` +- `display_name`: `Optional[str]` +- `last_first_name`: `Optional[str]` +- `full_name`: `Optional[str]` +- `informal_full_name`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `email`: `Optional[str]` +- `cert_type_code`: `Optional[str]` +- `enable`: `Optional[bool]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `cont_edu_cert_name`: `Optional[str]` +- `other_json`: `Optional[Json]` +- `cont_edu_cert`: `Optional[Union[Cont_Edu_Cert_Base, None]]` +- `person`: `Optional[Union[Person_Base, None]]` +- `user`: `Optional[Union[User_Base, None]]` + +## Event Person Tracking + +**Source Model:** `Event_Person_Tracking_Base` in `models/event_person_tracking_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_session_id_random`: `Optional[str]` +- `event_session_id`: `Optional[int]` +- `event_person_id_random`: `Optional[str]` +- `event_person_id`: `Optional[int]` +- `check_in_out`: `Optional[bool]` +- `break_in_out`: `Optional[bool]` +- `other_in_out`: `Optional[bool]` +- `other_type`: `Optional[str]` +- `in_datetime`: `Optional[datetime.datetime]` +- `out_datetime`: `Optional[datetime.datetime]` +- `check_in`: `Optional[bool]` +- `break_out`: `Optional[bool]` +- `break_in`: `Optional[bool]` +- `check_out`: `Optional[bool]` +- `datetime`: `Optional[datetime.datetime]` +- `enable`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_person_informal_name`: `Optional[str]` +- `event_person_given_name`: `Optional[str]` +- `event_person_family_name`: `Optional[str]` +- `event_person_full_name`: `Optional[str]` +- `event_person_full_name_override`: `Optional[str]` +- `event_person_affiliations`: `Optional[str]` +- `event_person_email`: `Optional[str]` +- `event_session_name`: `Optional[str]` +- `location_name`: `Optional[str]` +- `track_name`: `Optional[str]` + +## Event Registration + +**Source Model:** `Event_Registration_Base` in `models/event_registration_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `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]` +- `updated_on`: `Optional[datetime.datetime]` +- `cfg`: `Optional[Event_Registration_Cfg_Base]` +- `event_person_list`: `Optional[list]` + +## Event Track + +**Source Model:** `Event_Track_Base` in `models/event_track_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `lu_track_type_id`: `Optional[int]` +- `track_type_code`: `Optional[str]` +- `track_type`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `public`: `Optional[bool]` +- `public_hide`: `Optional[bool]` +- `hide_event_launcher`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_abstract_list`: `Optional[list]` +- `event_device_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_presentation_list`: `Optional[list]` +- `event_presenter_list`: `Optional[list]` +- `event_session_list`: `Optional[list]` +- `event_track_list`: `Optional[list]` + +## Fundraising Cfg + +**Source Model:** `Fundraising_Cfg_Base` in `models/fundraising_cfg_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `header_html`: `Optional[str]` +- `start_html`: `Optional[str]` +- `message_html`: `Optional[str]` +- `end_html`: `Optional[str]` +- `footer_html`: `Optional[str]` +- `order_thanks`: `Optional[str]` +- `order_message`: `Optional[str]` +- `message`: `Optional[str]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Hosted File + +**Source Model:** `Hosted_File_Base` in `models/hosted_file_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `hash_sha256`: `Optional[str]` +- `title`: `Optional[str]` +- `description`: `Optional[str]` +- `version`: `Optional[int]` +- `subdirectory_path`: `Optional[str]` +- `filename`: `Optional[str]` +- `extension`: `Optional[str]` +- `content_type`: `Optional[str]` +- `mimetype`: `Optional[str]` +- `size`: `Optional[int]` +- `already_exists`: `Optional[str]` +- `copy_timer`: `Optional[str]` +- `saved`: `Optional[str]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `hosted_file_found_check`: `Optional[bool]` +- `hosted_file_size_check`: `Optional[int]` +- `hosted_file_link_list`: `Optional[list]` + +## Journal + +**Source Model:** `Journal_Base` in `models/journal_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `import_id`: `Optional[str]` +- `code`: `Optional[str]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `for_id_random`: `Optional[str]` +- `name`: `Optional[str]` +- `short_name`: `Optional[str]` +- `summary`: `Optional[str]` +- `outline`: `Optional[str]` +- `description`: `Optional[str]` +- `description_html`: `Optional[str]` +- `description_json`: `Optional[str]` +- `type_code`: `Optional[str]` +- `tags`: `Optional[str]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `timezone`: `Optional[str]` +- `seconds`: `Optional[int]` +- `location`: `Optional[str]` +- `latitude`: `Optional[float]` +- `longitude`: `Optional[float]` +- `billable`: `Optional[bool]` +- `bill_to`: `Optional[str]` +- `alert`: `Optional[bool]` +- `alert_msg`: `Optional[str]` +- `private`: `Optional[bool]` +- `public`: `Optional[bool]` +- `personal`: `Optional[bool]` +- `professional`: `Optional[bool]` +- `default_private`: `Optional[bool]` +- `default_public`: `Optional[bool]` +- `default_personal`: `Optional[bool]` +- `default_professional`: `Optional[bool]` +- `due_datetime`: `Optional[datetime.datetime]` +- `due_alert`: `Optional[bool]` +- `archive_on`: `Optional[datetime.datetime]` +- `archive`: `Optional[bool]` +- `allow_auth`: `Optional[bool]` +- `auth_key`: `Optional[str]` +- `passcode`: `Optional[str]` +- `passcode_timeout`: `Optional[int]` +- `passcode_read`: `Optional[str]` +- `passcode_read_expire`: `Optional[int]` +- `private_passcode`: `Optional[str]` +- `public_passcode`: `Optional[str]` +- `sort_by`: `Optional[str]` +- `sort_by_desc`: `Optional[bool]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `meta_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `journal_entry_count`: `Optional[int]` +- `journal_entry_list`: `Optional[list[Journal_Entry_Base]]` +- `file_count`: `Optional[int]` +- `file_count_all`: `Optional[int]` +- `person_external_id`: `Optional[str]` +- `person_given_name`: `Optional[str]` +- `person_family_name`: `Optional[str]` +- `person_full_name`: `Optional[str]` +- `person_primary_email`: `Optional[str]` +- `person_passcode`: `Optional[str]` + +## Journal Entry + +**Source Model:** `Journal_Entry_Base` in `models/journal_entry_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `journal_id_random`: `Optional[str]` +- `journal_id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `import_id`: `Optional[str]` +- `code`: `Optional[str]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `for_id_random`: `Optional[str]` +- `name`: `Optional[str]` +- `short_name`: `Optional[str]` +- `summary`: `Optional[str]` +- `outline`: `Optional[str]` +- `content`: `Optional[str]` +- `content_html`: `Optional[str]` +- `content_json`: `Optional[Union[Json, None]]` +- `content_encrypted`: `Optional[str]` +- `history`: `Optional[str]` +- `history_encrypted`: `Optional[str]` +- `passcode_hash`: `Optional[str]` +- `template`: `Optional[bool]` +- `type_code`: `Optional[str]` +- `topic_code`: `Optional[str]` +- `category_code`: `Optional[str]` +- `tags`: `Optional[str]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `timezone`: `Optional[str]` +- `seconds`: `Optional[int]` +- `location`: `Optional[str]` +- `latitude`: `Optional[float]` +- `longitude`: `Optional[float]` +- `billable`: `Optional[bool]` +- `bill_to`: `Optional[str]` +- `alert`: `Optional[bool]` +- `alert_msg`: `Optional[str]` +- `private`: `Optional[bool]` +- `public`: `Optional[bool]` +- `personal`: `Optional[bool]` +- `professional`: `Optional[bool]` +- `parent_id_random`: `Optional[str]` +- `parent_id`: `Optional[int]` +- `related_entry_id_random`: `Optional[List[str]]` +- `related_entry_id_li`: `Optional[List[int]]` +- `due_datetime`: `Optional[datetime.datetime]` +- `due_alert`: `Optional[bool]` +- `archive_on`: `Optional[datetime.datetime]` +- `archive`: `Optional[bool]` +- `passcode`: `Optional[str]` +- `passcode_timeout`: `Optional[int]` +- `passcode_read`: `Optional[str]` +- `passcode_read_expire`: `Optional[int]` +- `url_kv_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `meta_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `file_count`: `Optional[int]` + +## Membership Cfg + +**Source Model:** `Membership_Cfg_Base` in `models/membership_cfg_models.py` + +- `account_name`: `Optional[str]` +- `cycle_type`: `Optional[str]` +- `membership_length`: `Optional[int]` +- `prorate`: `Optional[bool]` +- `calendar_year_start_buffer_days`: `Optional[int]` +- `calendar_year_start_buffer_on`: `Optional[datetime.datetime]` +- `calendar_year_start_on`: `Optional[datetime.datetime]` +- `calendar_year_end_on`: `Optional[datetime.datetime]` +- `calendar_year_end_buffer_days`: `Optional[int]` +- `calendar_year_end_buffer_on`: `Optional[datetime.datetime]` +- `enable_privacy_view`: `Optional[bool]` +- `renew_warning_hours`: `Optional[int]` +- `accept_message`: `Optional[str]` +- `reject_message`: `Optional[str]` +- `renew_message`: `Optional[str]` +- `default_no_reply_email`: `Optional[str]` +- `default_no_reply_name`: `Optional[str]` +- `confirm_email`: `Optional[str]` +- `confirm_name`: `Optional[str]` +- `extended_membership_person_profile`: `Optional[Json]` + +## Membership Group + +**Source Model:** `Membership_Group_Base` in `models/membership_group_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `parent_membership_group_id_random`: `Optional[str]` +- `parent_membership_group_id`: `Optional[int]` +- `product_id_random`: `Optional[str]` +- `product_id`: `Optional[int]` +- `name`: `Optional[str]` +- `overview`: `Optional[str]` +- `description`: `Optional[str]` +- `expire_in_days`: `Optional[int]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `membership_cfg`: `Optional[Membership_Cfg_Base]` +- `membership_person_group_list`: `Optional[list]` +- `product_list`: `Optional[list]` + +## Membership Person Group + +**Source Model:** `Membership_Person_Group_Base` in `models/membership_person_group_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `membership_group_id_random`: `Optional[str]` +- `membership_group_id`: `Optional[int]` +- `membership_group_name`: `Optional[str]` +- `membership_person_id_random`: `Optional[str]` +- `membership_person_id`: `Optional[int]` +- `product_id_random`: `Optional[str]` +- `product_id`: `Optional[int]` +- `lu_membership_group_status_id`: `Optional[int]` +- `membership_group_status_name`: `Optional[str]` +- `flag`: `Optional[bool]` +- `flag_message`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `membership_group`: `Optional[Membership_Group_Base]` +- `product`: `Optional[Product_Base]` + +## Membership Person Profile + +**Source Model:** `Membership_Person_Profile_Base` in `models/membership_person_profile_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `contact_id_random`: `Optional[str]` +- `contact_id`: `Optional[int]` +- `organization_id_random`: `Optional[str]` +- `organization_id`: `Optional[int]` +- `professional_title`: `Optional[str]` +- `display_name`: `Optional[str]` +- `full_name`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `tagline`: `Optional[str]` +- `biography`: `Optional[str]` +- `email`: `Optional[str]` +- `email_allowed`: `Optional[bool]` +- `email_newsletter`: `Optional[bool]` +- `mail_newsletter`: `Optional[bool]` +- `show_online`: `Optional[bool]` +- `show_printed`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `extended_json`: `Optional[Json]` +- `contact`: `Optional[Contact_Base]` +- `organization`: `Optional[Organization_Base]` + +## Membership Person Type + +**Source Model:** `Membership_Person_Type_Base` in `models/membership_person_type_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `membership_type_id_random`: `Optional[str]` +- `membership_type_id`: `Optional[int]` +- `membership_type_name`: `Optional[str]` +- `membership_person_id_random`: `Optional[str]` +- `membership_person_id`: `Optional[int]` +- `product_id_random`: `Optional[str]` +- `product_id`: `Optional[int]` +- `lu_membership_type_status_id`: `Optional[int]` +- `membership_type_status_name`: `Optional[str]` +- `level`: `Optional[int]` +- `application_start_on`: `Optional[datetime.datetime]` +- `approved_on`: `Optional[datetime.datetime]` +- `first_start_on`: `Optional[datetime.datetime]` +- `start_buffer_on`: `Optional[datetime.datetime]` +- `start_on`: `Optional[datetime.datetime]` +- `end_on`: `Optional[datetime.datetime]` +- `end_buffer_on`: `Optional[datetime.datetime]` +- `last_end_on`: `Optional[datetime.datetime]` +- `flag`: `Optional[bool]` +- `flag_message`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `membership_type`: `Optional[Membership_Type_Base]` +- `product`: `Optional[Product_Base]` + +## Membership Type + +**Source Model:** `Membership_Type_Base` in `models/membership_type_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `level`: `Optional[int]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `cycle_type`: `Optional[str]` +- `membership_length`: `Optional[int]` +- `prorate`: `Optional[bool]` +- `calendar_year_start_buffer_days`: `Optional[int]` +- `calendar_year_start_buffer_on`: `Optional[datetime.datetime]` +- `calendar_year_start_on`: `Optional[datetime.datetime]` +- `calendar_year_end_on`: `Optional[datetime.datetime]` +- `calendar_year_end_buffer_days`: `Optional[int]` +- `calendar_year_end_buffer_on`: `Optional[datetime.datetime]` +- `enable_privacy_view`: `Optional[bool]` +- `renew_warning_hours`: `Optional[int]` +- `accept_message`: `Optional[str]` +- `reject_message`: `Optional[str]` +- `renew_message`: `Optional[str]` +- `default_no_reply_email`: `Optional[str]` +- `default_no_reply_name`: `Optional[str]` +- `confirm_email`: `Optional[str]` +- `confirm_name`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `membership_cfg`: `Optional[Membership_Cfg_Base]` +- `membership_person_type_list`: `Optional[list]` +- `product_list`: `Optional[list]` + +## Product + +**Source Model:** `Product_Base` in `models/product_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id_random`: `Optional[str]` +- `for_id`: `Optional[int]` +- `type_id`: `Optional[int]` +- `type_code`: `Optional[str]` +- `type_name`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `image_url`: `Optional[str]` +- `image_small_url`: `Optional[str]` +- `unit_price`: `int` +- `tax_rate`: `Optional[int]` +- `lu_vat_id`: `Optional[int]` +- `vat_rate`: `Optional[int]` +- `max_quantity`: `Optional[int]` +- `recurring`: `Optional[bool]` +- `recurring_period`: `Optional[int]` +- `recurring_lu_unit_id`: `Optional[int]` +- `recurring_unit`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `lu_account_code_id`: `Optional[int]` +- `lu_account_code_deferred_id`: `Optional[int]` +- `metadata`: `Optional[str]` +- `hide`: `Optional[int]` +- `priority`: `Optional[int]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Sponsorship + +**Source Model:** `Sponsorship_Base` in `models/sponsorship_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `sponsorship_cfg_id_random`: `Optional[str]` +- `sponsorship_cfg_id`: `Optional[int]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `poc_email_name`: `Optional[str]` +- `poc_email`: `Optional[str]` +- `website_url`: `Optional[str]` +- `organization_json`: `Optional[Union[Json, None]]` +- `person_json`: `Optional[Union[Json, None]]` +- `poc_json`: `Optional[Union[Json, None]]` +- `address_li_json`: `Optional[Union[Json, None]]` +- `contact_li_json`: `Optional[Union[Json, None]]` +- `logo_li_json`: `Optional[Union[Json, None]]` +- `media_li_json`: `Optional[Union[Json, None]]` +- `questions_li_json`: `Optional[Union[Json, None]]` +- `social_li_json`: `Optional[Union[Json, None]]` +- `guest_li_json`: `Optional[Union[Json, None]]` +- `level_num`: `Optional[int]` +- `level_str`: `Optional[str]` +- `slct_level_json`: `Optional[Union[Json, None]]` +- `slct_option_li_json`: `Optional[Union[Json, None]]` +- `amount`: `Optional[int]` +- `paid`: `Optional[bool]` +- `access_key`: `Optional[str]` +- `agree`: `Optional[bool]` +- `comments`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `meta_data`: `Optional[str]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Sponsorship Cfg + +**Source Model:** `Sponsorship_Cfg_Base` in `models/sponsorship_cfg_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `for_id_random`: `Optional[str]` +- `level_li_json`: `Optional[Union[Json, None]]` +- `option_li_json`: `Optional[Union[Json, None]]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `start_deadline`: `Optional[datetime.datetime]` +- `end_deadline`: `Optional[datetime.datetime]` +- `payment_deadline`: `Optional[datetime.datetime]` +- `rsvp_deadline`: `Optional[datetime.datetime]` +- `schedule_datetime_li_json`: `Optional[Union[Json, None]]` +- `default_no_reply_email`: `Optional[str]` +- `default_no_reply_name`: `Optional[str]` +- `confirm_email`: `Optional[str]` +- `confirm_name`: `Optional[str]` +- `help_li_json`: `Optional[Union[Json, None]]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` + +## Post + +**Source Model:** `Post_Base` in `models/post_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `external_person_id`: `Optional[str]` +- `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]` +- `type`: `Optional[str]` +- `title`: `Optional[str]` +- `content`: `Optional[str]` +- `anonymous`: `Optional[bool]` +- `full_name`: `Optional[str]` +- `email`: `Optional[str]` +- `notify`: `Optional[bool]` +- `post_comment_count`: `Optional[int]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `enable_comments`: `Optional[bool]` +- `unauthenticated_access`: `Optional[bool]` +- `status`: `Optional[int]` +- `review`: `Optional[bool]` +- `approve`: `Optional[bool]` +- `ready_on`: `Optional[datetime.datetime]` +- `ready`: `Optional[bool]` +- `archive_on`: `Optional[datetime.datetime]` +- `archive`: `Optional[bool]` +- `linked_li_json`: `Optional[Union[Json, None]]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `topic_name`: `Optional[str]` +- `post_comment_list`: `Optional[list]` +- `person`: `Optional[Person_Base]` +- `user`: `Optional[User_Base]` + +## Post Comment + +**Source Model:** `Post_Comment_Base` in `models/post_comment_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `post_id_random`: `Optional[str]` +- `post_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `external_person_id`: `Optional[str]` +- `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]` +- `notify`: `Optional[bool]` +- `linked_li_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `person`: `Optional[Person_Base]` +- `user`: `Optional[User_Base]` + +## Event Badge Template + +**Source Model:** `Event_Badge_Template_Base` in `models/event_badge_template_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `logo_filename`: `Optional[str]` +- `logo_path`: `Optional[str]` +- `header_path`: `Optional[str]` +- `header_row_1`: `Optional[str]` +- `header_row_2`: `Optional[str]` +- `header_background`: `Optional[str]` +- `secondary_header_path`: `Optional[str]` +- `footer_path`: `Optional[str]` +- `footer_title`: `Optional[str]` +- `footer_left`: `Optional[str]` +- `footer_right`: `Optional[str]` +- `footer_background`: `Optional[str]` +- `badge_type_list`: `Optional[Json]` +- `ticket_list`: `Optional[Json]` +- `ticket_1_text`: `Optional[str]` +- `ticket_2_text`: `Optional[str]` +- `ticket_3_text`: `Optional[str]` +- `ticket_4_text`: `Optional[str]` +- `ticket_5_text`: `Optional[str]` +- `ticket_6_text`: `Optional[str]` +- `ticket_7_text`: `Optional[str]` +- `ticket_8_text`: `Optional[str]` +- `wireless_ssid`: `Optional[str]` +- `wireless_password`: `Optional[str]` +- `show_qr_front`: `Optional[bool]` +- `show_qr_back`: `Optional[bool]` +- `layout`: `Optional[str]` +- `style_filename`: `Optional[str]` +- `style_href`: `Optional[str]` +- `script_src`: `Optional[str]` +- `passcode`: `Optional[str]` +- `other_json`: `Optional[str]` +- `notes`: `Optional[str]` + +## Event Device + +**Source Model:** `Event_Device_Base` in `models/event_device_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `app_mode`: `Optional[str]` +- `use_local_api`: `Optional[bool]` +- `use_local_app`: `Optional[bool]` +- `api_secret_key`: `Optional[str]` +- `api_base_url`: `Optional[str]` +- `app_server_base_url`: `Optional[str]` +- `file_server_base_url`: `Optional[str]` +- `api_base_url_bak`: `Optional[str]` +- `app_server_base_url_bak`: `Optional[str]` +- `file_server_base_url_bak`: `Optional[str]` +- `trigger_open_filename`: `Optional[str]` +- `trigger_open_extension`: `Optional[str]` +- `trigger_open_open_in_os`: `Optional[str]` +- `trigger_open_file_id`: `Optional[str]` +- `trigger_open_hash_file`: `Optional[str]` +- `trigger_open_file_path`: `Optional[str]` +- `trigger_open_session_id`: `Optional[str]` +- `trigger_recording_start`: `Optional[bool]` +- `trigger_recording_stop`: `Optional[bool]` +- `trigger_reset`: `Optional[bool]` +- `trigger_show_admin`: `Optional[str]` +- `trigger_show_hidden`: `Optional[str]` +- `local_file_cache_path`: `Optional[str]` +- `host_file_temp_path`: `Optional[str]` +- `recording_path`: `Optional[str]` +- `record_audio`: `Optional[bool]` +- `record_video`: `Optional[bool]` +- `check_event_loop_period`: `Optional[int]` +- `check_event_device_loop_period`: `Optional[int]` +- `check_event_location_loop_period`: `Optional[int]` +- `check_event_session_loop_period`: `Optional[int]` +- `passcode`: `Optional[str]` +- `alert`: `Optional[bool]` +- `alert_msg`: `Optional[str]` +- `alert_on`: `Optional[datetime.datetime]` +- `status`: `Optional[str]` +- `status_msg`: `Optional[str]` +- `status_msg_on`: `Optional[datetime.datetime]` +- `record_status`: `Optional[str]` +- `record_status_msg`: `Optional[str]` +- `record_status_on`: `Optional[datetime.datetime]` +- `heartbeat`: `Optional[datetime.datetime]` +- `info_hostname`: `Optional[str]` +- `info_ip`: `Optional[str]` +- `info_ip_list`: `Optional[str]` +- `info_os`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `enable`: `Optional[bool]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `event_notes`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `other_json`: `Optional[Union[str,Json]]` +- `meta_json`: `Optional[Union[str,Json]]` +- `event_cfg`: `Optional[Event_Cfg_Base]` +- `event_location`: `Optional[Event_Location_Base]` + +## Event File + +**Source Model:** `Event_File_Base` in `models/event_file_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `hosted_file_id_random`: `Optional[str]` +- `hosted_file_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `for_id_random`: `Optional[str]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_exhibit_id_random`: `Optional[str]` +- `event_exhibit_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `event_presentation_id_random`: `Optional[str]` +- `event_presentation_id`: `Optional[int]` +- `event_presenter_id_random`: `Optional[str]` +- `event_presenter_id`: `Optional[int]` +- `event_session_id_random`: `Optional[str]` +- `event_session_id`: `Optional[int]` +- `event_track_id_random`: `Optional[str]` +- `event_track_id`: `Optional[int]` +- `filename`: `Optional[str]` +- `filename_no_ext`: `Optional[str]` +- `filename_w_ext`: `Optional[str]` +- `extension`: `Optional[str]` +- `title`: `Optional[str]` +- `description`: `Optional[str]` +- `lu_file_purpose_id`: `Optional[int]` +- `file_purpose`: `Optional[str]` +- `internal_use`: `Optional[bool]` +- `open_in_os`: `Optional[str]` +- `public_use`: `Optional[bool]` +- `public`: `Optional[bool]` +- `approve`: `Optional[bool]` +- `publish_optout`: `Optional[bool]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `hosted_file_hash_sha256`: `Optional[str]` +- `hosted_file_subdirectory_path`: `Optional[str]` +- `hosted_file_content_type`: `Optional[str]` +- `hosted_file_size`: `Optional[str]` +- `lu_event_file_purpose_name`: `Optional[str]` +- `event_name`: `Optional[str]` +- `event_code`: `Optional[str]` +- `event_start_datetime`: `Optional[datetime.datetime]` +- `event_end_datetime`: `Optional[datetime.datetime]` +- `event_location_code`: `Optional[str]` +- `event_location_name`: `Optional[str]` +- `event_presentation_code`: `Optional[str]` +- `event_presentation_type_code`: `Optional[str]` +- `event_presentation_name`: `Optional[str]` +- `event_presentation_start_datetime`: `Optional[datetime.datetime]` +- `event_presentation_end_datetime`: `Optional[datetime.datetime]` +- `event_presenter_code`: `Optional[str]` +- `event_presenter_given_name`: `Optional[str]` +- `event_presenter_family_name`: `Optional[str]` +- `event_presenter_full_name`: `Optional[str]` +- `event_presenter_email`: `Optional[str]` +- `event_session_code`: `Optional[str]` +- `event_session_type_code`: `Optional[str]` +- `event_session_name`: `Optional[str]` +- `event_session_start_datetime`: `Optional[datetime.datetime]` +- `event_session_end_datetime`: `Optional[datetime.datetime]` +- `event_track_code`: `Optional[str]` +- `event_track_name`: `Optional[str]` +- `hosted_file`: `Optional[Union[Hosted_File_Base, None]]` + +## Event Location + +**Source Model:** `Event_Location_Base` in `models/event_location_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `code`: `Optional[str]` +- `external_id`: `Optional[str]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_track_id_random`: `Optional[str]` +- `event_track_id`: `Optional[int]` +- `lu_location_type_id`: `Optional[int]` +- `location_type_code`: `Optional[str]` +- `location_type`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `internal_use`: `Optional[bool]` +- `record_audio`: `Optional[bool]` +- `record_video`: `Optional[bool]` +- `internal_notes`: `Optional[str]` +- `internal_notes_access`: `Optional[str]` +- `internal_notes_av`: `Optional[str]` +- `internal_notes_fb`: `Optional[str]` +- `internal_notes_it`: `Optional[str]` +- `internal_notes_staff`: `Optional[str]` +- `passcode`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `file_count`: `Optional[int]` +- `internal_use_count`: `Optional[int]` +- `event_file_id_li_json`: `Optional[Union[Json, None]]` +- `file_count_all`: `Optional[int]` +- `alert`: `Optional[bool]` +- `alert_msg`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `public`: `Optional[bool]` +- `public_hide`: `Optional[bool]` +- `hide_event_launcher`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_name`: `Optional[str]` +- `event_start_datetime`: `Optional[datetime.datetime]` +- `event_end_datetime`: `Optional[datetime.datetime]` +- `event_abstract_list`: `Optional[list]` +- `event_device_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_file_internal_use_list`: `Optional[list]` +- `event_presentation_list`: `Optional[list]` +- `event_presenter_list`: `Optional[list]` +- `event_session_list`: `Optional[list]` +- `event_track_list`: `Optional[list]` + +## Event Presentation + +**Source Model:** `Event_Presentation_Base` in `models/event_presentation_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `code`: `Optional[str]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_abstract_id_random`: `Optional[str]` +- `event_abstract_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `event_session_id_random`: `Optional[str]` +- `event_session_id`: `Optional[int]` +- `event_track_id_random`: `Optional[str]` +- `event_track_id`: `Optional[int]` +- `poc_event_person`: `Optional[Event_Person_Base]` +- `poc_person`: `Optional[Person_Base]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `abstract_code`: `Optional[str]` +- `type_code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `passcode`: `Optional[str]` +- `file_count`: `Optional[int]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `public`: `Optional[bool]` +- `public_hide`: `Optional[bool]` +- `hide_event_launcher`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_name`: `Optional[str]` +- `event_start_datetime`: `Optional[datetime.datetime]` +- `event_end_datetime`: `Optional[datetime.datetime]` +- `event_location_name`: `Optional[str]` +- `event_session_type_code`: `Optional[str]` +- `event_session_name`: `Optional[str]` +- `event_session_start_datetime`: `Optional[datetime.datetime]` +- `event_session_end_datetime`: `Optional[datetime.datetime]` +- `event_track_name`: `Optional[str]` +- `event_abstract_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_presenter_list`: `Optional[list[Event_Presenter_Base]]` +- `event_session`: `Optional[dict]` + +## Event Presenter + +**Source Model:** `Event_Presenter_Base` in `models/event_presenter_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `code`: `Optional[str]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `event_person_id_random`: `Optional[str]` +- `event_person_id`: `Optional[int]` +- `event_presentation_id_random`: `Optional[str]` +- `event_presentation_id`: `Optional[int]` +- `event_session_id_random`: `Optional[str]` +- `event_session_id`: `Optional[int]` +- `event_track_id_random`: `Optional[str]` +- `event_track_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `for_type`: `Optional[str]` +- `for_id`: `Optional[int]` +- `pronouns`: `Optional[str]` +- `informal_name`: `Optional[str]` +- `title_names`: `Optional[str]` +- `prefix`: `Optional[str]` +- `given_name`: `Optional[str]` +- `middle_name`: `Optional[str]` +- `family_name`: `Optional[str]` +- `designations`: `Optional[str]` +- `suffix`: `Optional[str]` +- `professional_title`: `Optional[str]` +- `display_name`: `Optional[str]` +- `full_name`: `Optional[str]` +- `full_name_override`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `affiliation`: `Optional[str]` +- `email`: `Optional[str]` +- `website_url`: `Optional[str]` +- `phone_li_json`: `Optional[Union[Json, None]]` +- `social_li_json`: `Optional[Union[Json, None]]` +- `tagline`: `Optional[str]` +- `biography`: `Optional[str]` +- `picture_path`: `Optional[str]` +- `picture_bg_color`: `Optional[str]` +- `image_li_json`: `Optional[Union[Json, None]]` +- `role`: `Optional[str]` +- `passcode`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `file_count`: `Optional[int]` +- `event_file_id_li_json`: `Optional[Union[Json, None]]` +- `agree`: `Optional[bool]` +- `comments`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `public`: `Optional[bool]` +- `public_hide`: `Optional[bool]` +- `hide_event_launcher`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_name`: `Optional[str]` +- `event_start_datetime`: `Optional[datetime.datetime]` +- `event_end_datetime`: `Optional[datetime.datetime]` +- `event_location_code`: `Optional[str]` +- `event_location_name`: `Optional[str]` +- `event_presentation_code`: `Optional[str]` +- `event_presentation_type_code`: `Optional[str]` +- `event_presentation_name`: `Optional[str]` +- `event_presentation_start_datetime`: `Optional[datetime.datetime]` +- `event_presentation_end_datetime`: `Optional[datetime.datetime]` +- `event_session_code`: `Optional[str]` +- `event_session_type_code`: `Optional[str]` +- `event_session_name`: `Optional[str]` +- `event_session_start_datetime`: `Optional[datetime.datetime]` +- `event_session_end_datetime`: `Optional[datetime.datetime]` +- `event_track_code`: `Optional[str]` +- `event_track_name`: `Optional[str]` +- `person_external_id`: `Optional[str]` +- `person_external_sys_id`: `Optional[str]` +- `person_given_name`: `Optional[str]` +- `person_family_name`: `Optional[str]` +- `person_professional_title`: `Optional[str]` +- `person_full_name`: `Optional[str]` +- `person_affiliations`: `Optional[str]` +- `person_primary_email`: `Optional[str]` +- `person_passcode`: `Optional[str]` +- `event_abstract`: `Optional[dict]` +- `event_abstract_list`: `Optional[list]` +- `event_cfg`: `Optional[Event_Cfg_Base]` +- `event_file_list`: `Optional[list]` +- `event_person`: `Optional[Event_Person_Base]` +- `event_presentation`: `Optional[dict]` +- `event_session`: `Optional[dict]` + +## Event Session + +**Source Model:** `Event_Session_Base` in `models/event_session_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `code`: `Optional[str]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_location_id_random`: `Optional[str]` +- `event_location_id`: `Optional[int]` +- `event_track_id_random`: `Optional[str]` +- `event_track_id`: `Optional[int]` +- `poc_event_person_id_random`: `Optional[str]` +- `poc_event_person_id`: `Optional[int]` +- `poc_person_id_random`: `Optional[str]` +- `poc_person_id`: `Optional[int]` +- `poc_agree`: `Optional[bool]` +- `poc_kv_json`: `Optional[Union[Json, None]]` +- `type_code`: `Optional[str]` +- `name`: `Optional[str]` +- `description`: `Optional[str]` +- `proposal_json`: `Optional[Union[Json, None]]` +- `start_datetime`: `Optional[datetime.datetime]` +- `end_datetime`: `Optional[datetime.datetime]` +- `attend_json`: `Optional[Union[Json, None]]` +- `rehearsal_json`: `Optional[Union[Json, None]]` +- `image_path`: `Optional[str]` +- `enable_event_file_approval_option`: `Optional[bool]` +- `internal_use`: `Optional[bool]` +- `record_audio`: `Optional[bool]` +- `record_video`: `Optional[bool]` +- `internal_notes`: `Optional[str]` +- `internal_notes_access`: `Optional[str]` +- `internal_notes_av`: `Optional[str]` +- `internal_notes_fb`: `Optional[str]` +- `internal_notes_it`: `Optional[str]` +- `internal_notes_staff`: `Optional[str]` +- `passcode`: `Optional[str]` +- `file_count`: `Optional[int]` +- `internal_use_count`: `Optional[int]` +- `event_file_id_li_json`: `Optional[Union[Json, None]]` +- `file_count_all`: `Optional[int]` +- `status`: `Optional[int]` +- `review`: `Optional[bool]` +- `approve`: `Optional[bool]` +- `ready`: `Optional[bool]` +- `alert`: `Optional[bool]` +- `alert_msg`: `Optional[str]` +- `ux_mode`: `Optional[str]` +- `enable`: `Optional[bool]` +- `enable_from`: `Optional[datetime.datetime]` +- `enable_to`: `Optional[datetime.datetime]` +- `hide`: `Optional[bool]` +- `public`: `Optional[bool]` +- `public_hide`: `Optional[bool]` +- `hide_event_launcher`: `Optional[bool]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `event_name`: `Optional[str]` +- `event_start_datetime`: `Optional[datetime.datetime]` +- `event_end_datetime`: `Optional[datetime.datetime]` +- `event_location_name`: `Optional[str]` +- `event_track_name`: `Optional[str]` +- `event_abstract_list`: `Optional[list]` +- `event_badge_list`: `Optional[list]` +- `event_device_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_file_internal_use_list`: `Optional[list]` +- `event_location`: `Optional[Union[Event_Location_Base, None]]` +- `event_location_list`: `Optional[list[Event_Location_Base]]` +- `event_person_list`: `Optional[list]` +- `event_presenter_cat`: `Optional[Union[str, None]]` +- `event_presentation_list`: `Optional[list[Event_Presentation_Base]]` +- `event_presenter_list`: `Optional[list]` +- `event_track`: `Optional[Event_Track_Base]` +- `poc_event_person`: `Optional[Event_Person_Base]` +- `poc_person`: `Optional[Person_Base]` +- `poc_person_external_id`: `Optional[str]` +- `poc_person_given_name`: `Optional[str]` +- `poc_person_family_name`: `Optional[str]` +- `poc_person_full_name`: `Optional[str]` +- `poc_person_primary_email`: `Optional[str]` +- `poc_person_passcode`: `Optional[str]` + +## Event Person + +**Source Model:** `Event_Person_Base` in `models/event_person_models.py` + +- `id_random`: `Optional[str]` +- `id`: `Optional[int]` +- `account_id_random`: `Optional[str]` +- `account_id`: `Optional[int]` +- `event_id_random`: `Optional[str]` +- `event_id`: `Optional[int]` +- `event_badge_id_random`: `Optional[str]` +- `event_badge_id`: `Optional[int]` +- `event_badge_vendor_id_random`: `Optional[str]` +- `event_badge_vendor_id`: `Optional[int]` +- `event_badge_vip_id_random`: `Optional[str]` +- `event_badge_vip_id`: `Optional[int]` +- `event_person_profile_id_random`: `Optional[str]` +- `event_person_profile_id`: `Optional[int]` +- `event_registration_id_random`: `Optional[str]` +- `event_registration_id`: `Optional[int]` +- `person_id_random`: `Optional[str]` +- `person_id`: `Optional[int]` +- `user_id_random`: `Optional[str]` +- `user_id`: `Optional[int]` +- `external_id`: `Optional[str]` +- `external_event_id`: `Optional[str]` +- `external_registration_id`: `Optional[str]` +- `external_reg_id`: `Optional[str]` +- `external_person_id`: `Optional[str]` +- `external_sys_id`: `Optional[str]` +- `agree_to_tc`: `Optional[bool]` +- `allow_tracking`: `Optional[bool]` +- `passcode`: `Optional[str]` +- `cfg_json`: `Optional[Union[Json, None]]` +- `data_json`: `Optional[Union[Json, None]]` +- `file_count`: `Optional[int]` +- `priority`: `Optional[bool]` +- `sort`: `Optional[int]` +- `group`: `Optional[str]` +- `enable`: `Optional[bool]` +- `notes`: `Optional[str]` +- `created_on`: `Optional[datetime.datetime]` +- `updated_on`: `Optional[datetime.datetime]` +- `informal_name`: `Optional[str]` +- `given_name`: `Optional[str]` +- `middle_name`: `Optional[str]` +- `family_name`: `Optional[str]` +- `full_name_override`: `Optional[str]` +- `full_name`: `Optional[str]` +- `affiliations`: `Optional[str]` +- `email`: `Optional[str]` +- `website_url`: `Optional[str]` +- `extended_json`: `Optional[Union[Json, None]]` +- `event_badge_informal_name`: `Optional[str]` +- `event_badge_given_name`: `Optional[str]` +- `event_badge_middle_name`: `Optional[str]` +- `event_badge_family_name`: `Optional[str]` +- `event_badge_full_name`: `Optional[str]` +- `event_badge_full_name_override`: `Optional[str]` +- `event_badge_affiliations`: `Optional[str]` +- `event_badge_email`: `Optional[str]` +- `event_badge_city`: `Optional[str]` +- `event_badge_state_province`: `Optional[str]` +- `event_badge_country_alpha_2_code`: `Optional[str]` +- `event_badge_country`: `Optional[str]` +- `event_person_informal_name`: `Optional[str]` +- `event_person_given_name`: `Optional[str]` +- `event_person_middle_name`: `Optional[str]` +- `event_person_family_name`: `Optional[str]` +- `event_person_name_override`: `Optional[str]` +- `event_person_full_name`: `Optional[str]` +- `event_person_affiliations`: `Optional[str]` +- `event_person_email`: `Optional[str]` +- `event_person_extended_json`: `Optional[Union[Json, None]]` +- `person_informal_name`: `Optional[str]` +- `person_given_name`: `Optional[str]` +- `person_middle_name`: `Optional[str]` +- `person_family_name`: `Optional[str]` +- `person_full_name`: `Optional[str]` +- `person_full_name_override`: `Optional[str]` +- `person_affiliations`: `Optional[str]` +- `person_email`: `Optional[str]` +- `user_email`: `Optional[str]` +- `user_name`: `Optional[str]` +- `user_username`: `Optional[str]` +- `event_badge`: `Optional[Event_Badge_Base]` +- `event_badge_vendor`: `Optional[Event_Badge_Base]` +- `event_badge_vip`: `Optional[Event_Badge_Base]` +- `event_exhibit_list`: `Optional[list]` +- `event_file_list`: `Optional[list]` +- `event_location_list`: `Optional[list]` +- `event_person_profile`: `Optional[Event_Person_Profile_Base]` +- `event_presentation_list`: `Optional[list]` +- `event_presenter_list`: `Optional[list]` +- `event_registration`: `Optional[Event_Registration_Base]` +- `event_session`: `Optional[list]` +- `event_track`: `Optional[list]` +- `person`: `Optional[Person_Base]` +- `user`: `Optional[User_Base]` diff --git a/ARCHITECTURE.md b/documentation/ARCHITECTURE.md similarity index 100% rename from ARCHITECTURE.md rename to documentation/ARCHITECTURE.md diff --git a/COMPONENTS.md b/documentation/COMPONENTS.md similarity index 100% rename from COMPONENTS.md rename to documentation/COMPONENTS.md diff --git a/DATA_STRUCTURES.md b/documentation/DATA_STRUCTURES.md similarity index 100% rename from DATA_STRUCTURES.md rename to documentation/DATA_STRUCTURES.md diff --git a/NAMING_CONVENTIONS.md b/documentation/NAMING_CONVENTIONS.md similarity index 100% rename from NAMING_CONVENTIONS.md rename to documentation/NAMING_CONVENTIONS.md diff --git a/SVELTE_DEXIE_GUIDE.md b/documentation/SVELTE_DEXIE_GUIDE.md similarity index 100% rename from SVELTE_DEXIE_GUIDE.md rename to documentation/SVELTE_DEXIE_GUIDE.md