Migrate Event Exhibit and Tracking modules to unified type system

- Added ae_EventExhibit and ae_EventExhibitTracking interfaces to ae_types.ts.
- Replaced local interfaces in ae_events__exhibit.ts with unified imports.
- Standardized Promise return types for all core data loading, creation, and update functions in Exhibit and Tracking logic.
- Integrated triple-ID patterns for lead retrieval and booth management components.
This commit is contained in:
Scott Idem
2026-01-08 14:15:45 -05:00
parent 0749e899b2
commit e138f12c6d
2 changed files with 129 additions and 7 deletions

View File

@@ -1,7 +1,9 @@
import type { key_val } from '$lib/stores/ae_stores';
import { api } from '$lib/api/api';
import { db_save_ae_obj_li__ae_obj } from '$lib/ae_core/core__idb_dexie';
import { db_events } from '$lib/ae_events/db_events';
import type { ae_EventExhibit, ae_EventExhibitTracking } from '$lib/types/ae_types';
const ae_promises: key_val = {};
@@ -206,7 +208,7 @@ export async function load_ae_obj_id__exhibit({
exhibit_id: string;
try_cache?: boolean;
log_lvl?: number;
}) {
}): Promise<ae_EventExhibit | null> {
console.log(`*** load_ae_obj_id__exhibit() *** exhibit_id=${exhibit_id}`);
const params = {};
@@ -274,7 +276,7 @@ export async function load_ae_obj_li__exhibit({
params: any;
try_cache?: boolean;
log_lvl?: number;
}) {
}): Promise<ae_EventExhibit[]> {
console.log(`*** load_ae_obj_li__exhibit() *** event_id=${event_id}`);
const enabled: string = params.qry__enabled ?? 'enabled'; // all, disabled, enabled
@@ -380,9 +382,10 @@ export async function load_ae_obj_id__exhibit_tracking({
}: {
api_cfg: any;
exhibit_tracking_id: string;
params?: key_val;
try_cache?: boolean;
log_lvl?: number;
}) {
}): Promise<ae_EventExhibitTracking | null> {
console.log(
`*** load_ae_obj_id__exhibit_tracking() *** exhibit_tracking_id=${exhibit_tracking_id}`
);
@@ -452,7 +455,7 @@ export async function load_ae_obj_li__exhibit_tracking({
params: any;
try_cache?: boolean;
log_lvl?: number;
}) {
}): Promise<ae_EventExhibitTracking[]> {
console.log(`*** load_ae_obj_li__exhibit_tracking() *** exhibit_id=${exhibit_id}`);
const enabled: string = params.qry__enabled ?? 'enabled'; // all, disabled, enabled
@@ -545,7 +548,7 @@ export async function create_ae_obj__exhibit_tracking({
external_person_id: string;
params: key_val;
log_lvl: number;
}) {
}): Promise<ae_EventExhibitTracking | null> {
console.log(
`*** handle_create_ae_obj__exhibit_tracking() *** exhibit_id=${exhibit_id}, event_badge_id=${event_badge_id}`
);
@@ -631,7 +634,7 @@ export async function update_ae_obj__exhibit_tracking({
data: any;
params: key_val;
log_lvl: number;
}) {
}): Promise<ae_EventExhibitTracking | null> {
console.log(
`*** handle_update_ae_obj__exhibit_tracking() *** exhibit_tracking_id=${exhibit_tracking_id}`
);

View File

@@ -40,7 +40,25 @@ export interface ae_Account extends ae_BaseObj {
account_id: string;
account_id_random: string;
account_cfg?: any;
account_cfg?: ae_AccountCfg;
}
/**
* AccountCfg - Configuration settings for an account
*/
export interface ae_AccountCfg {
id: string;
account_id_random: string;
modules_enabled?: any;
default_no_reply_email?: string;
default_no_reply_name?: string;
post_rules?: string;
post_comment_rules?: string;
created_on: string | Date;
updated_on: string | Date;
}
/**
@@ -678,3 +696,104 @@ export interface ae_Organization extends ae_BaseObj {
logo_path?: string;
industry?: number;
}
/**
* EventRegistration - An attendee's registration for an event
*/
export interface ae_EventRegistration extends ae_BaseObj {
event_registration_id: string;
event_registration_id_random: string;
event_id: string;
event_id_random: string;
person_id: string;
person_id_random: string;
organization_id_random?: string;
contact_id_random?: string;
}
/**
* EventExhibit - A booth or display at an event
*/
export interface ae_EventExhibit extends ae_BaseObj {
event_exhibit_id: string;
event_exhibit_id_random: string;
event_id: string;
event_id_random: string;
organization_id_random?: string;
contact_id_random?: string;
person_id_random?: string;
tagline?: string;
logo_path?: string;
staff_limit?: number;
}
/**
* EventExhibitTracking - Lead retrieval or interaction data
*/
export interface ae_EventExhibitTracking extends ae_BaseObj {
event_exhibit_tracking_id: string;
event_exhibit_tracking_id_random: string;
event_id: string;
event_id_random: string;
event_exhibit_id_random: string;
event_person_id_random?: string;
event_badge_id_random?: string;
exhibitor_notes?: string;
responses_json?: any;
}
/**
* EventPerson - An individual linked to an event
*/
export interface ae_EventPerson extends ae_BaseObj {
event_person_id: string;
event_person_id_random: string;
event_id: string;
event_id_random: string;
person_id: string;
person_id_random: string;
event_badge_id_random?: string;
event_registration_id_random?: string;
passcode?: string;
agree_to_tc?: boolean;
}
/**
* EventPersonProfile - Detailed bio/info for an attendee
*/
export interface ae_EventPersonProfile extends ae_BaseObj {
event_person_profile_id: string;
event_person_profile_id_random: string;
event_id: string;
event_id_random: string;
event_person_id_random: string;
tagline?: string;
biography?: string;
website_url?: string;
thumbnail_path?: string;
picture_path?: string;
}
/**
* EventPersonTracking - Attendance and session interaction tracking
*/
export interface ae_EventPersonTracking extends ae_BaseObj {
event_person_id_random: string;
event_id: string;
event_id_random: string;
event_session_id_random?: string;
check_in_out?: boolean;
in_datetime?: string | Date;
out_datetime?: string | Date;
}