feat(agenda): Epic 0 - Database schema for agenda module

- E0.S1: Add encounter_id and intake_id columns to reports table
- E0.S2: Add performance indices for reports and encounters
- E0.S3: Regenerate TypeScript types

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
colinislit
2025-12-02 16:44:31 +01:00
parent aacada2197
commit 43c7cb898b
8 changed files with 4371 additions and 37 deletions

View File

@@ -0,0 +1,52 @@
-- ============================================================================
-- Migration: Add encounter_id and intake_id columns to reports table
-- Epic: E0 - Database & Types
-- Story: E0.S1 - encounter_id toevoegen aan reports
-- ============================================================================
-- This migration adds bidirectional linking between reports and encounters/intakes
-- allowing reports to be associated with specific appointments and intake sessions.
-- ============================================================================
-- Add encounter_id column
-- Links reports to specific encounters (appointments)
ALTER TABLE reports
ADD COLUMN IF NOT EXISTS encounter_id UUID REFERENCES encounters(id) ON DELETE SET NULL;
-- Add intake_id column
-- Links reports to specific intake sessions
ALTER TABLE reports
ADD COLUMN IF NOT EXISTS intake_id UUID REFERENCES intakes(id) ON DELETE SET NULL;
-- Add comments for documentation
COMMENT ON COLUMN reports.encounter_id IS 'Link report to specific encounter/appointment (FHIR Encounter reference)';
COMMENT ON COLUMN reports.intake_id IS 'Link report to specific intake session';
-- ============================================================================
-- Verification
-- ============================================================================
DO $$
BEGIN
-- Check encounter_id column exists
IF EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'reports' AND column_name = 'encounter_id'
) THEN
RAISE NOTICE '✓ encounter_id column added to reports table';
ELSE
RAISE EXCEPTION 'encounter_id column not found in reports table';
END IF;
-- Check intake_id column exists
IF EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'reports' AND column_name = 'intake_id'
) THEN
RAISE NOTICE '✓ intake_id column added to reports table';
ELSE
RAISE EXCEPTION 'intake_id column not found in reports table';
END IF;
RAISE NOTICE '============================================';
RAISE NOTICE 'Migration E0.S1 completed successfully';
RAISE NOTICE '============================================';
END $$;