Standardize Core UI forms and unify schemas for V3 API compatibility

- Implement new Svelte 5 Person, Address, and Contact form components with surgical payload logic.
- Refactor core routes (People, Addresses, Contacts) to support unified Create/Edit workflows.
- Update ae_types.ts, db_core.ts, and db_journals.ts to align with V3 backend object models.
- Fix type safety issues in Journal history views and refine metadata display.
- Migrate person core functions to the newer ae_core__person module.
This commit is contained in:
Scott Idem
2026-01-09 15:14:36 -05:00
parent 8e205b2db9
commit 5056d5d8f0
18 changed files with 1276 additions and 944 deletions

View File

@@ -106,12 +106,40 @@ export interface ae_SiteDomain extends ae_BaseObj {
/**
* Journal - A collection of entries
*/
/**
* Journal - A container for journal entries
*/
export interface ae_Journal extends ae_BaseObj {
journal_id: string;
journal_id_random: string;
account_id: string;
account_id_random: string;
person_id?: string;
person_id_random?: string;
for_type?: string;
for_id?: string;
for_id_random?: string;
type_code?: string;
tags?: string;
summary?: string;
outline?: string;
start_datetime?: string | Date;
end_datetime?: string | Date;
timezone?: string;
passcode?: string;
passcode_timeout?: number;
private_passcode?: string;
cfg_json?: any;
data_json?: any;
meta_json?: any;
// SQL View fields
journal_entry_count?: number;
file_count?: number;
}
@@ -128,6 +156,8 @@ export interface ae_JournalEntry extends ae_BaseObj {
person_id?: string;
person_id_random?: string;
template?: boolean;
journal_entry_type?: string;
activity_code?: string;
category_code?: string;
@@ -155,14 +185,30 @@ export interface ae_JournalEntry extends ae_BaseObj {
passcode_hash?: string;
start_datetime?: string | Date;
end_datetime?: string | Date;
timezone?: string;
seconds?: number;
location?: string;
latitude?: number;
longitude?: number;
billable?: boolean;
bill_to?: string;
bill_rate?: number;
billable_minutes?: number;
alert?: boolean;
alert_msg?: string;
data_json?: any;
meta_json?: any;
// SQL View fields
journal_code?: string;
journal_name?: string;
file_count?: number;
}
/**
@@ -178,10 +224,12 @@ export interface ae_Person extends ae_BaseObj {
user_id_random?: string;
prefix?: string;
title_names?: string;
given_name?: string;
middle_name?: string;
family_name?: string;
suffix?: string;
designations?: string;
full_name?: string;
informal_name?: string;
@@ -199,6 +247,9 @@ export interface ae_Person extends ae_BaseObj {
tagline?: string;
allow_auth_key?: boolean;
passcode?: string;
data_json?: any;
}