export type NotificationType = 'LEAVE_REQUEST_CREATED' | 'LEAVE_REQUEST_APPROVED' | 'LEAVE_REQUEST_REJECTED' | 'SYSTEM_ALERT';
export type NotificationPriority = 'LOW' | 'MEDIUM' | 'HIGH';

export interface NotificationPayload {
  entityId?: string;
  entityType?: 'LEAVE_REQUEST' | 'SYSTEM';
  [key: string]: any;
}

export interface AppNotification {
  id: string;
  tenantId: string;
  recipientId: string;
  actorId?: string;
  type: NotificationType;
  title: string;
  message: string;
  priority: NotificationPriority;
  isRead: boolean;
  createdAt: string;
  payload?: NotificationPayload;
}

export type LeaveRequestStatus = 'PENDING' | 'APPROVED' | 'REJECTED';

export interface LeaveRequest {
  id: string;
  tenantId: string;
  userId: string;
  startDate: string;
  endDate: string;
  status: LeaveRequestStatus;
  createdAt: string;
  updatedAt: string;
}
