export const ROUTES = {
  HOME: '/',

  LOGIN: '/login',
  AUTH_MAGIC: '/auth/magic',
  AUTH_ACCEPT_INVITE: '/auth/accept-invite',

  DASHBOARD: '/dashboard',

  TICKETS: '/tickets',
  TICKET_DETAIL: (id: string) => `/tickets/${id}`,
  TICKET_CREATE: '/tickets/create',

  PROJECTS: '/projects',
  PROJECT_DETAIL: (id: string) => `/projects/${id}`,
  PROJECT_TEAM: (id: string) => `/projects/${id}/team`,
  PROJECT_BACKLOG: (id: string) => `/projects/${id}/backlog`,
  PROJECT_WORK_ITEM: (projectId: string, ticketId: string) =>
    `/projects/${projectId}/work-items/${ticketId}`,
  PROJECT_SPRINT_PLANNING: (id: string) => `/projects/${id}/sprint-planning`,
  PROJECT_SPRINT: (projectId: string, sprintId: string) =>
    `/projects/${projectId}/sprints/${sprintId}`,
  PROJECT_GANTT: (id: string) => `/projects/${id}/gantt`,
  PROJECT_BOARD: (id: string) => `/projects/${id}/board`,
  PROJECT_CAPACITY: (id: string) => `/projects/${id}/capacity`,
  PROJECT_SPRINT_BOARD: (id: string) => `/projects/${id}/sprint-board`,
  /** @deprecated Redirects to PROJECT_BOARD */
  PROJECT_KANBAN: (id: string) => `/projects/${id}/kanban`,
  PROJECT_SPRINT_BOARD_VIEW: (projectId: string, sprintId: string) =>
    `/projects/${projectId}/sprints/${sprintId}/board`,
  PROJECT_MILESTONES: (id: string) => `/projects/${id}/milestones`,
  MY_WORK: '/my-work',
  PROJECT_BURNDOWN: (id: string) => `/projects/${id}/burndown`,
  PROJECT_SPRINT_BURNDOWN: (projectId: string, sprintId: string) =>
    `/projects/${projectId}/sprints/${sprintId}/burndown`,
  PROJECT_VELOCITY: (id: string) => `/projects/${id}/velocity`,
  PROJECT_WORKLOAD: (id: string) => `/projects/${id}/workload`,
  PROJECT_RISKS: (id: string) => `/projects/${id}/risks`,
  PROJECT_SETTINGS: (id: string) => `/projects/${id}/settings`,
  PROJECTS_GANTT: '/projects/gantt',
  PORTFOLIO: '/projects/portfolio',
  PORTFOLIO_TIMELINE: '/projects/timeline',
  PORTFOLIO_DEPENDENCIES: '/projects/cross-dependencies',
  PROJECT_RELEASES: (id: string) => `/projects/${id}/releases`,
  PROJECT_SPRINTS: (id: string) => `/projects/${id}/sprints`,
  PROJECT_DEPENDENCIES: (id: string) => `/projects/${id}/dependencies`,
  PROJECT_REPORTS: (id: string) => `/projects/${id}/reports`,
  PROJECT_EXECUTIVE: (id: string) => `/projects/${id}/executive`,
  PROJECT_REPORT_VELOCITY: (id: string) => `/projects/${id}/reports/velocity`,
  PROJECT_REPORT_BURNDOWN: (id: string) => `/projects/${id}/reports/burndown`,
  PROJECT_REPORT_BURNUP: (id: string) => `/projects/${id}/reports/burnup`,
  PROJECT_REPORT_THROUGHPUT: (id: string) => `/projects/${id}/reports/throughput`,
  PROJECT_REPORT_LEAD_TIME: (id: string) => `/projects/${id}/reports/lead-time`,
  PROJECT_REPORT_CYCLE_TIME: (id: string) => `/projects/${id}/reports/cycle-time`,
  PROJECT_REPORT_SPRINT_HEALTH: (id: string) => `/projects/${id}/reports/sprint-health`,
  PROJECT_REPORT_CAPACITY_TREND: (id: string) => `/projects/${id}/reports/capacity-trend`,
  PROJECT_REPORT_RISK_TREND: (id: string) => `/projects/${id}/reports/risk-trend`,
  PROJECT_REPORT_DEPENDENCY_TREND: (id: string) => `/projects/${id}/reports/dependency-trend`,
  PROJECT_REPORT_WORK_DISTRIBUTION: (id: string) => `/projects/${id}/reports/work-distribution`,
  PROJECT_REPORT_ASSIGNEE_LOAD: (id: string) => `/projects/${id}/reports/assignee-load`,
  PROJECT_REPORT_EPIC_PROGRESS: (id: string) => `/projects/${id}/reports/epic-progress`,
  PROJECT_REPORT_RELEASE_PROGRESS: (id: string) => `/projects/${id}/reports/release-progress`,
  PROJECT_RISK_MATRIX: (id: string) => `/projects/${id}/risks/matrix`,
  PROJECT_MILESTONE_TIMELINE: (id: string) => `/projects/${id}/milestones/timeline`,
  PROJECT_DEPENDENCY_GRAPH: (id: string) => `/projects/${id}/dependencies/graph`,

  SEARCH: '/search',

  SETTINGS: '/settings',
  SETTINGS_SLA: '/settings/sla',

  ADMIN_COMPANIES: '/admin/companies',
  ADMIN_ROLES: '/admin/roles',
  ADMIN_TICKET_META: '/admin/ticket-meta',
  ADMIN_NOTIFICATION_TEMPLATES: '/admin/notification-templates',
  ADMIN_ASSIGNEE_PERFORMANCE: '/admin/assignee-performance',
  ADMIN_AGENT_PERFORMANCE: '/admin/agent-performance',
  ADMIN_USERS: '/admin/users',
  ADMIN_INVITES: '/admin/invites',
  ADMIN_DEPARTMENTS: '/admin/departments',
  ADMIN_CATEGORIES: '/admin/categories',
  ADMIN_AUDIT_LOGS: '/admin/audit-logs',

  PROFILE: '/profile',
  PROFILE_MY_TICKETS: '/profile/my-tickets',
  PROFILE_SESSIONS: '/profile/sessions',
  PROFILE_SETTINGS: '/profile/settings',

  DEPARTMENT_PORTAL: (slug: string) => `/d/${slug}`,
  DEPARTMENT_PORTAL_CREATE: (slug: string) => `/d/${slug}/create-ticket`,
  DEPARTMENT_PORTAL_MY_TICKETS: (slug: string) => `/d/${slug}/my-tickets`,

  NOTIFICATIONS: '/notifications',
  NOTIFICATION_PREFERENCES: '/notifications/preferences',
} as const;
