- Shipped
- September 23, 2026 at 6:41 AM UTC
- Author
- Kamo
- Commit
- 7614a70
Members: `Member.intelligenceType` (HUMAN | ARTIFICIAL, STRING, defaults HUMAN on every construction path and in the column), `aiSupervisorMemberId` (plain id — members is the hottest table and is hard-deleted) and `aiModel`. Users: `namePhonetic`, beside the name rather than inside EmbNameFull, which leads, accounts, borrowers and sessions also embed. Job titles and departments: a `description` (TEXT, 4,000 characters) and ordered requirements in two child tables (`org_job_title_requirements`, `dept_requirements`: category, Required/Preferred, text ≤ 500, stable ids, ON DELETE CASCADE). `OrgRequirements` is the one rule set for both — validation before anything is written, diff-by-id so a kept requirement keeps its id, and an id from another owner is treated as new. Updates follow "absent means unchanged" for both new fields, so a caller that never sends them cannot wipe them; "" / [] clear. **************** now take the request DTO (only SecurityService calls them). DDL is hand-applied **************** applied 2026-09-22 03:01Z, before this push). A real SessionFactory over the whole library pins the new tables and columns to that DDL (RoleRequirementsMappingTest).
