export const notificationTitles = {
  // Leave Management Notifications
  LEAVE_REQUEST_SUBMITTED: "Leave Request Submitted",
  LEAVE_REQUEST_APPROVED: "Leave Request Approved",
  LEAVE_REQUEST_REJECTED: "Leave Request Rejected",
  LEAVE_APPROVAL_REQUIRED: "Leave Approval Required",

  // Project Assignment Notifications
  PROJECT_ASSIGNMENT: "Project Assignment",
  PROJECT_ASSIGNMENT_REMOVED: "Project Assignment Removed",

  // Project Status Notifications
  PROJECT_STATUS_UPDATED: "Project Status Updated",
  PROJECT_STATUS_CHANGED: "Project Status Changed",

  // General Project Notifications
  PROJECT_CREATED: "New Project Created",
  PROJECT_BUDGET_ALERT: "Project Budget Alert",
  PROJECT_DEADLINE_ALERT: "Project Deadline Alert",
}

export const notificationMessages = {
  // Leave Management Messages
  LEAVE_REQUEST_SUBMITTED: (
    employeeName: string,
    leaveType: string,
    duration: number,
  ) =>
    `${employeeName} has submitted a ${leaveType} request for ${duration} day(s). Please review and approve/reject.`,

  LEAVE_REQUEST_APPROVED: (
    leaveType: string,
    startDate: string,
    endDate: string,
  ) =>
    `Your ${leaveType} request from ${startDate} to ${endDate} has been approved.`,

  LEAVE_REQUEST_REJECTED: (
    leaveType: string,
    startDate: string,
    endDate: string,
    reason?: string,
  ) =>
    `Your ${leaveType} request from ${startDate} to ${endDate} has been rejected.${reason ? ` Reason: ${reason}` : ""}`,

  // Project Assignment Messages
  PROJECT_ASSIGNMENT: (projectName: string, clientName?: string) =>
    `You have been assigned to project "${projectName}"${clientName ? ` for client ${clientName}` : ""}.`,

  PROJECT_ASSIGNMENT_REMOVED: (projectName: string) =>
    `You have been removed from project "${projectName}".`,

  // Project Status Messages
  PROJECT_STATUS_UPDATED: (
    projectName: string,
    oldStatus: string,
    newStatus: string,
  ) =>
    `Project "${projectName}" status has been updated from ${oldStatus} to ${newStatus}.`,

  PROJECT_STATUS_CHANGED_ADMIN: (
    projectName: string,
    newStatus: string,
    updatedBy: string,
  ) =>
    `Project "${projectName}" status has been changed to ${newStatus} by ${updatedBy}.`,
}
