![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.ca/public_html/src/ |
import { Document } from './types/index';
export interface User {
id: string;
email: string;
password?: string; // Should be hashed in production
createdAt: string;
}
export interface Note {
id: string;
content: string;
createdAt: string;
createdBy: string;
}
export interface Address {
street?: string;
city?: string;
state?: string;
postalCode?: string;
country?: string;
}
export interface DetaineeInfo {
name?: string;
facility?: string;
inmateId?: string;
incarcerationDate?: string;
expectedReleaseDate?: string;
}
export interface LegalRepresentation {
hasLawyer: boolean;
lawyerName?: string;
lawyerContact?: string;
lawFirm?: string;
contactInfo?: string;
}
export interface AdditionalContact {
name: string;
relationship: string;
phone: string;
email?: string;
contactInfo?: string;
}
export interface Registration {
id: string;
userId?: string; // Link registration to a user
name: string;
email: string;
phone: string;
relationship: string;
message: string;
date: string;
status: 'pending' | 'reviewed';
notes: Note[];
reviewedBy?: string;
reviewedAt?: string;
birthDate?: string;
address?: Address;
detaineeInfo?: DetaineeInfo;
preferredLanguage: string;
preferredContactMethod: string;
additionalContacts: AdditionalContact[];
legalRepresentation?: LegalRepresentation;
documents?: Document[];
reminders?: any[];
createdAt: string;
detaineeName: string;
visitorName: string;
}
export interface RegistrationActionsProps {
registration: Registration;
onUpdate: (updatedRegistration: Registration) => void;
onDelete: (registrationId: string) => void;
onBulkAction?: (action: string, ids: string[]) => void;
selectedIds?: string[];
}
export interface DocumentStats {
type: string;
count: number;
}
export interface LanguageStats {
language: 'en' | 'fr';
count: number;
}
export interface RegistrationStats {
total: number;
pending: number;
reviewed: number;
documentStats: DocumentStats[];
languageStats: LanguageStats[];
}
export interface ThemeColors {
primary: string;
'primary-dark': string;
'primary-light': string;
secondary: string;
'secondary-dark': string;
'secondary-light': string;
accent: string;
'accent-dark': string;
'accent-light': string;
gradientStart: string;
gradientEnd: string;
}
export interface FormData {
name: string;
email: string;
phone: string;
birthDate: string;
relationship: string;
message: string;
address: {
street: string;
city: string;
state: string;
postalCode: string;
country: string;
};
detaineeInfo: {
name: string;
facility: string;
inmateId: string;
incarcerationDate: string;
expectedReleaseDate: string;
};
preferredLanguage: 'en' | 'fr';
preferredContactMethod: string;
additionalContacts: AdditionalContact[];
legalRepresentation: {
hasLawyer: boolean;
lawyerName: string;
lawyerContact: string;
};
documents: Document[];
}
export interface ExportOptions {
format: 'csv' | 'xlsx' | 'pdf' | 'excel';
fields?: string[];
filename?: string;
includeHeaders?: boolean;
dateFormat?: string;
dateRange?: {
start: string;
end: string;
};
includeNotes?: boolean;
includeActivity?: boolean;
}