feat: migrate clients module to patients + add docs

This commit is contained in:
colinislit
2025-11-23 10:13:00 +01:00
parent 8e3925ea09
commit 6fcb9a0e7b
277 changed files with 9131 additions and 458 deletions

45
lib/types/screening.ts Normal file
View File

@@ -0,0 +1,45 @@
/**
* Screening Types
*
* Shared type definitions for screening entities and related helper types.
*/
import { Database } from '@/lib/supabase/database.types';
import { z } from 'zod';
export type Screening = Database['public']['Tables']['screenings']['Row'];
export type ScreeningActivity = Database['public']['Tables']['screening_activities']['Row'];
export type ScreeningDocument = Database['public']['Tables']['screening_documents']['Row'];
export interface ScreeningWithRelations extends Screening {
screening_activities?: ScreeningActivity[];
screening_documents?: ScreeningDocument[];
}
export const UpdateScreeningSchema = z.object({
screening_id: z.string().uuid('Screening ID moet een geldige UUID zijn'),
patient_id: z.string().uuid('Patiënt ID moet een geldige UUID zijn'),
request_for_help: z.string().optional(),
decision: z.enum(['geschikt', 'niet_geschikt']).optional(),
decision_notes: z.string().optional(),
decision_department: z.string().optional(),
});
export type UpdateScreeningInput = z.infer<typeof UpdateScreeningSchema>;
export const CreateActivitySchema = z.object({
screening_id: z.string().uuid('Screening ID moet een geldige UUID zijn'),
patient_id: z.string().uuid('Patiënt ID moet een geldige UUID zijn'),
activity_text: z
.string()
.min(3, 'Beschrijf minimaal 3 tekens')
.max(2000, 'Maximaal 2000 tekens'),
});
export type CreateActivityInput = z.infer<typeof CreateActivitySchema>;
export interface ScreeningSummary {
screening: ScreeningWithRelations;
activities: ScreeningActivity[];
documents: ScreeningDocument[];
}