// ═══════════════════════════════════════════════════════════
// Notification Types — from CONTRACTS.md §1.4
// ═══════════════════════════════════════════════════════════

export type NotificationType =
  | "task_assigned"
  | "approval_pending"
  | "sla_warning"
  | "sla_breach"
  | "deploy_status"
  | "pipeline_completed"
  | "agent_error"
  | "feedback_processed";

export type NotificationChannel = "dashboard" | "discord" | "email" | "sms" | "push";

export interface Notification {
  id: string;
  userId: string;
  type: NotificationType;
  title: string;
  body: string | null;
  data: Record<string, unknown>;
  channels: NotificationChannel[];
  deliveredVia: NotificationChannel[];
  read: boolean;
  readAt: string | null;
  dismissed: boolean;
  entityType: string | null;
  entityId: string | null;
  actionUrl: string | null;
  createdAt: string;
}
