fix(idaa): audit and harden IDAA module components and types

- Updated ae_types.ts with missing IDAA-specific fields for Archives and Events (topic_name, archive_on, contact_li_json, etc.) using snake_case.
- Refactored bulletin board post filter to safely handle null archive_on dates.
- Fixed missing 'data' prop assignment in bulletin board list component to resolve type error.
- Corrected core_func.download_export__obj_type method name in recovery meetings export.
- Hardened safety checks for contact_li_json in recovery meetings view logic to prevent null property access.
- Mapped Jitsi meeting event data to internal snake_case variables and fixed input type assignments.
- Updated project documentation (TODO, GEMINI.md, .ae_brief) to reflect IDAA hardening progress.
This commit is contained in:
Scott Idem
2026-01-26 17:50:27 -05:00
parent 0a390c9505
commit ac14721bd0
9 changed files with 91 additions and 79 deletions

View File

@@ -62,7 +62,7 @@ export interface Event {
// IDAA Recovery Meetings:
// Currently only really used for IDAA
contact_li_json?: null | string[]; // full_name, email, phone_mobile, phone_home, phone_office, other_text
contact_li_json?: null | any[]; // full_name, email, phone_mobile, phone_home, phone_office, other_text
// contact_li_json_ext?: null|string;
external_person_id?: null | string;

View File

@@ -400,8 +400,9 @@ export interface ae_Event extends ae_BaseObj {
conference: boolean;
type?: string;
name: string;
summary?: string;
format?: string;
description?: string;
timezone?: string;
start_datetime?: string | Date;
@@ -418,6 +419,16 @@ export interface ae_Event extends ae_BaseObj {
cfg_json?: any;
data_json?: any;
// IDAA Recovery Meetings / Additional fields
contact_li_json?: any[];
external_person_id?: string;
physical?: boolean;
virtual?: boolean;
recurring?: boolean;
recurring_text?: string;
attend_url?: string;
attend_url_text?: string;
// Joined view fields
event_location_obj_li?: ae_EventLocation[];
event_session_obj_li?: ae_EventSession[];
@@ -732,11 +743,16 @@ export interface ae_Archive extends ae_BaseObj {
account_id_random: string;
archive_type?: string;
topic_id?: string;
topic_name?: string;
content_html?: string;
original_datetime?: string | Date;
original_location?: string;
archive_on?: string | Date;
archive_content_count?: number;
}
@@ -752,8 +768,11 @@ export interface ae_ArchiveContent extends ae_BaseObj {
content_html?: string;
url?: string;
duration?: string;
hosted_file_id_random?: string;
filename?: string;
subdirectory_path?: string;
}
/**