refactor: harden type safety and modernize core forms for Svelte 5
- Standardize 'ae_BaseObj' and event types in 'ae_types.ts' to handle nullable fields from V3 API/Dexie. - Modernize Person, Address, and Contact forms with Svelte 5 Runes and reactive synchronization. - Refactor Event Settings and its sub-components to use the 'onsave' callback pattern, removing deprecated dispatchers. - Hardened 'element_data_store_v2' with safe initialization and localStorage caching logic. - Clean up unused 'element_data_store.svelte' (V1) and suppress Electron environment type errors in 'tmp_shell_handlers.ts'. - Update documentation and workspace settings to reflect Phase 5 reactive patterns.
This commit is contained in:
@@ -9,18 +9,18 @@
|
||||
export interface ae_BaseObj {
|
||||
id: string; // Primary key (maps to [obj_type]_id_random)
|
||||
|
||||
code?: string;
|
||||
code?: string | null;
|
||||
name?: string;
|
||||
short_name?: string;
|
||||
description?: string;
|
||||
description?: string | null;
|
||||
|
||||
enable: boolean;
|
||||
hide: boolean;
|
||||
enable: boolean | null;
|
||||
hide: boolean | null;
|
||||
archive?: boolean;
|
||||
archive_on?: string | Date;
|
||||
|
||||
priority: boolean;
|
||||
sort: number;
|
||||
priority: boolean | null;
|
||||
sort: number | null;
|
||||
group?: string;
|
||||
notes?: string;
|
||||
|
||||
@@ -569,9 +569,25 @@ export interface ae_EventSession extends ae_BaseObj {
|
||||
|
||||
data_json?: any;
|
||||
|
||||
// Joined fields
|
||||
event_presentation_li?: ae_EventPresentation[];
|
||||
event_file_li?: ae_EventFile[];
|
||||
// Additional database view fields found in db_events.ts
|
||||
file_count?: number | null;
|
||||
file_count_all?: number | null;
|
||||
internal_use_count?: number | null;
|
||||
event_file_id_li_json?: string | null;
|
||||
poc_person_given_name?: string | null;
|
||||
poc_person_family_name?: string | null;
|
||||
poc_person_full_name?: string | null;
|
||||
poc_person_primary_email?: string | null;
|
||||
poc_person_passcode?: string | null;
|
||||
event_name?: string | null;
|
||||
event_location_code?: string | null;
|
||||
event_location_name?: string | null;
|
||||
|
||||
// Joined fields (Aligned with Dexie Session interface)
|
||||
event_presentation_li?: ae_EventPresentation[] | null;
|
||||
event_file_li?: ae_EventFile[] | null;
|
||||
event_presentation_kv?: any;
|
||||
event_file_kv?: any;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -582,19 +598,25 @@ export interface ae_EventPresentation extends ae_BaseObj {
|
||||
event_presentation_id_random: string;
|
||||
event_id: string;
|
||||
event_id_random: string;
|
||||
event_session_id_random?: string;
|
||||
event_session_id: string;
|
||||
event_session_id_random: string;
|
||||
event_abstract_id?: string | null;
|
||||
event_abstract_id_random?: string | null;
|
||||
|
||||
abstract_code?: string;
|
||||
type_code?: string;
|
||||
abstract_code?: string | null;
|
||||
type_code?: string | null;
|
||||
|
||||
start_datetime?: string | Date;
|
||||
end_datetime?: string | Date;
|
||||
start_datetime?: string | Date | null;
|
||||
end_datetime?: string | Date | null;
|
||||
|
||||
passcode?: string;
|
||||
file_count?: number;
|
||||
passcode?: string | null;
|
||||
file_count?: number | null;
|
||||
|
||||
// Joined fields
|
||||
event_presenter_li?: ae_EventPresenter[];
|
||||
event_presenter_li?: ae_EventPresenter[] | null;
|
||||
event_presenter_kv?: any;
|
||||
event_session_code?: string | null;
|
||||
event_session_name?: string | null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user