Add meetings, sprints, and approval decision notes
Migration 042 creates meetings and sprints tables, adds decision_notes to approvals. Full-stack: MeetingService, SprintService, IPC channels, preload bridge, domain types. UI: MeetingsPage with scheduling and type filtering, SprintsPage with progress tracking, ApprovalDetailDialog with decision notes textarea.
This commit is contained in:
1 parent
75e5d17a86
commit
ed9b3a3dd1
18 files changed
+430
-12
No files matched your search
@@ -0,0 +1,37 @@
|
||||
export const approvalNotesMeetingsSprintsSchema = `
|
||||
alter table approvals add column decision_notes text;
|
||||
|
||||
create table if not exists meetings (
|
||||
id text primary key,
|
||||
org_id text not null references organizations(id) on delete cascade,
|
||||
title text not null,
|
||||
meeting_type text not null,
|
||||
status text not null,
|
||||
scheduled_at text,
|
||||
duration_minutes integer not null,
|
||||
agenda text not null,
|
||||
notes text not null,
|
||||
decisions text not null,
|
||||
created_at text not null,
|
||||
updated_at text not null
|
||||
);
|
||||
|
||||
create index if not exists idx_meetings_org on meetings(org_id, scheduled_at);
|
||||
|
||||
create table if not exists sprints (
|
||||
id text primary key,
|
||||
org_id text not null references organizations(id) on delete cascade,
|
||||
name text not null,
|
||||
goal text not null,
|
||||
status text not null,
|
||||
start_date text not null,
|
||||
end_date text not null,
|
||||
velocity_points integer not null default 0,
|
||||
completed_points integer not null default 0,
|
||||
retrospective text not null,
|
||||
created_at text not null,
|
||||
updated_at text not null
|
||||
);
|
||||
|
||||
create index if not exists idx_sprints_org on sprints(org_id, status);
|
||||
`;
|
||||
@@ -40,6 +40,7 @@ import { providerAuthProfileCascadeSchema } from "./migrations/038-provider-auth
|
||||
import { auditImmutabilityOrgTeardownSchema } from "./migrations/039-audit-immutability-org-teardown";
|
||||
import { documentsKnowledgeAutomationSchema } from "./migrations/040-documents-knowledge-automation";
|
||||
import { taskSubtasksDeleteSchema } from "./migrations/041-task-subtasks-delete";
|
||||
import { approvalNotesMeetingsSprintsSchema } from "./migrations/042-approval-notes-meetings-sprints";
|
||||
|
||||
interface Migration {
|
||||
version: number;
|
||||
@@ -89,6 +90,7 @@ const MIGRATIONS: Migration[] = [
|
||||
{ version: 39, name: "audit_immutability_org_teardown", sql: auditImmutabilityOrgTeardownSchema },
|
||||
{ version: 40, name: "documents_knowledge_automation", sql: documentsKnowledgeAutomationSchema },
|
||||
{ version: 41, name: "task_subtasks_delete", sql: taskSubtasksDeleteSchema },
|
||||
{ version: 42, name: "approval_notes_meetings_sprints", sql: approvalNotesMeetingsSprintsSchema },
|
||||
];
|
||||
|
||||
const SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1].version;
|
||||
|
||||
Reference in new issue
Block a user