import { type NotificationChannel } from '../value-objects/notification-channel.vo';

export type NotificationStatus = 'PENDING' | 'SENT' | 'FAILED' | 'DELIVERED';

export interface NotificationEntity {
  id: string;
  userId: string;
  channel: NotificationChannel;
  templateKey: string;
  subject: string | null;
  body: string;
  metadata: Record<string, unknown> | null;
  status: NotificationStatus;
  errorDetail: string | null;
  sentAt: Date | null;
  readAt: Date | null;
  createdAt: Date;
}
