Wrapping up for the day. Lots of changes.

This commit is contained in:
Scott Idem
2024-03-19 20:23:42 -04:00
parent 19d2dd630b
commit fbbaa1392b
13 changed files with 563 additions and 43 deletions

View File

@@ -4,13 +4,44 @@ export interface Badge {
// id?: number;
id_random: string;
event_badge_id_random: string;
event_id_random: string;
pronouns: null|string;
informal_name: null|string;
title_names: null|string;
given_name: string;
middle_name: null|string;
family_name: null|string;
designations: null|string;
professional_title: null|string;
professional_title_override: null|string;
full_name: string;
full_name_override: null|string;
email: string;
email_override: null|string;
affiliations: string;
affiliations_override: null|string;
email: string;
email_override: null|string;
address_line_1: null|string;
address_line_2: null|string;
address_line_3: null|string;
city: null|string;
country_subdivision_code: null|string;
state_province: null|string;
state_province_abb: null|string;
postal_code: null|string;
country_alpha_2_code: null|string;
country: null|string;
full_address: null|string;
location: null|string;
location_override: null|string;
query_str: null|string;
badge_type: string;
badge_type_code: string;
badge_type_code_override: null|string;
@@ -18,21 +49,30 @@ export interface Badge {
external_event_id: string;
external_id: string;
external_person_id: string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: Date;
updated_on: null|Date;
}
export interface Exhibit {
// id?: number;
id_random: string;
event_exhibit_id_random: string;
event_id_random: string;
code: string;
name: string;
tagline: null|string;
// tagline: null|string;
description: null|string;
staff_passcode: null
data_json: null|string;
leads_api_access: null|boolean;
leads_custom_questions_json: null|string;
leads_device_sm_qty: null|number;
@@ -40,13 +80,53 @@ export interface Exhibit {
license_max: number;
license_li_json: null|string;
cfg_json: string;
enable: boolean;
hide: boolean;
priority: boolean
sort: number;
group: string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: Date;
updated_on: null|Date;
}
export interface Exhibit_tracking {
// id?: number;
id_random: string;
event_exhibit_tracking_id_random: string;
event_exhibit_id_random: string;
event_badge_id_random: string;
event_person_id_random: null|string; // Is this needed?
exhibitor_notes: null|string;
responses_json: null|string;
data_json: null|string;
event_exhibit_name: string; // Extra field for convenience
event_badge_title_names: null|string;
event_badge_given_name: string;
event_badge_family_name: null|string;
event_badge_designations: null|string;
event_badge_full_name: string;
event_badge_affiliations: null|string;
event_badge_email: null|string;
event_badge_location: null|string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: null|Date;
}
export class MySubClassedDexie extends Dexie {
@@ -54,14 +134,16 @@ export class MySubClassedDexie extends Dexie {
// We just tell the typing system this is the case
badges!: Table<Badge>;
exhibits!: Table<Exhibit>;
exhibit_tracking!: Table<Exhibit_tracking>;
constructor() {
super('ae_events_db');
this.version(1).stores({
// badges: '++id, full_name, email' // Primary key and indexed props
badges: 'id_random, full_name, full_name_override, email, email_override, affiliations, affiliations_override, badge_type, badge_type_code, badge_type_code_override, badge_type_override, external_event_id, external_id, external_person_id, created_on, updated_on', // Primary key and indexed props
exhibits: 'id_random, code, name, description, staff_passcode, data_json, license_max, license_li_json, cfg_json, created_on, updated_on',
});
// badges: '++id, full_name, email' // Primary key and indexed props
badges: 'id_random, event_badge_id_random, full_name, full_name_override, email, email_override, affiliations, affiliations_override, badge_type, badge_type_code, badge_type_code_override, badge_type_override, external_event_id, external_id, external_person_id, enable, hide, priority, sort, group, notes, created_on, updated_on',
exhibits: 'id_random, event_exhibit_id_random, code, name, description, staff_passcode, data_json, license_max, license_li_json, cfg_json, enable, hide, priority, sort, group, notes, created_on, updated_on',
exhibit_tracking: 'id_random, event_exhibit_tracking_id_random, event_exhibit_id_random, event_badge_id_random, event_person_id_random, exhibitor_notes, responses_json, data_json, event_badge_full_name, event_badge_email, enable, hide, priority, sort, group, notes, created_on, updated_on'
});
}
}