import { UserRole } from '@/shared/types/app';

export type ParentMessageCategory = 'behavior' | 'event' | 'progress' | 'general';
export type CommunicationEventType = 'meeting' | 'drill' | 'event' | 'deadline';

export interface ParentTemplate {
  readonly id: string;
  readonly template: string;
  readonly category: ParentMessageCategory;
}

export interface ParentMessageDto {
  readonly id: string;
  readonly text: string;
  readonly to: string;
  readonly date: string;
  readonly category: ParentMessageCategory;
  readonly sentAt: string;
  readonly organizationId: string;
  readonly campusId: string | null;
  readonly createdById: string;
  readonly updatedById: string | null;
  readonly createdAt: string;
  readonly updatedAt: string;
}

export interface ParentMessageCreateDto {
  readonly recipientName: string;
  readonly messageText: string;
  readonly category: ParentMessageCategory;
}

export interface CommunicationEventDto {
  readonly id: string;
  readonly title: string;
  readonly date: string;
  readonly type: CommunicationEventType;
  readonly roles: readonly UserRole[];
  readonly organizationId: string;
  readonly campusId: string | null;
  readonly createdById: string;
  readonly updatedById: string | null;
  readonly createdAt: string;
  readonly updatedAt: string;
}

export interface CommunicationEventCreateDto {
  readonly title: string;
  readonly date: string;
  readonly type: CommunicationEventType;
  readonly roles: readonly UserRole[];
}
