export const translations = {
  es: {
    // Sidebar & Navigation
    sidebar: {
      favorites: 'Favoritos',
      dashboards: 'Tableros',
      pages: 'Páginas',
      analytics: 'Analítica',
      lightMode: 'Modo Claro',
      darkMode: 'Modo Oscuro',
      logout: 'Cerrar sesión',
      collapse: 'Colapsar',
      settings: 'Configuración',
      espanol: 'Español',
      english: 'English',
    },
    // Navigation items
    nav: {
      overview: 'Resumen',
      works: 'Obras',
      composers: 'Compositores',
      payees: 'Beneficiarios',
      contracts: 'Contratos',
      income: 'Ingresos',
      transactions: 'Transacciones',
      costs: 'Costos',
      statements: 'Declaraciones',
      suspense: 'En Suspensión',
      audit: 'Auditoría',
      settings: 'Configuración',
      // Portal nav
      inicio: 'Inicio',
      analitica: 'Analítica',
      topSongs: 'Mejores Canciones',
      incomeGroups: 'Grupos de Ingresos',
      territories: 'Territorios',
      exploitationSources: 'Fuentes de Explotación',
      canciones: 'Canciones',
      documentos: 'Documentos',
    },
    // Portal pages
    portal: {
      inicio: 'Inicio',
      analitica: 'Analítica',
      canciones: 'Canciones',
      documentos: 'Documentos',
      // Current Period Card
      currentPeriod: 'Período actual',
      currentBalance: 'Saldo actual',
      advances: 'Anticipos',
      adjustments: 'Ajustes',
      netEarnings: 'Ganancias netas',
      // Previous Period Card
      previousPeriod: 'Período anterior',
      finalBalance: 'Saldo final',
      showDetails: 'Mostrar detalles',
      hideDetails: 'Ocultar detalles',
      downloadStatement: 'Descargar Declaración',
      // Financial Summary
      financialSummary: 'Resumen financiero',
      netEarningsLabel: 'Ganancias netas',
      finalBalanceLabel: 'Saldo final',
      // Latest Statements
      latestStatements: 'Últimas declaraciones',
      showAll: 'Mostrar todo',
      downloadStatementAria: 'Descargar declaración',
      // Analytics
      royaltyPeriod: 'Período de regalías',
      // Top Songs Card
      topSongsTitle: 'Mejores Canciones',
      allSongs: 'Todas las canciones',
      seeMore: 'Ver más',
      // Income Groups Card
      incomeGroupsTitle: 'Grupos de Ingresos Más Altos',
      mainIncomeTypes: 'Tipos de ingresos principales',
      // Exploitation Sources Card
      exploitationSourcesTitle: 'Resumen de Fuentes de Explotación',
      allSources: 'Todas las fuentes',
      // Territories Card
      territoriesTitle: 'Territorios Principales',
      allTerritories: 'Todos los territorios',
      // Songs page
      songTitle: 'Título',
      songComposers: 'Compositores',
      songIswc: 'ISWC',
      songRegistration: 'Registro',
      noSongs: 'No hay canciones registradas.',
      // Documents page
      docName: 'Nombre',
      docType: 'Tipo',
      docAction: 'Acción',
      docDownload: 'Descargar',
      noDocs: 'No hay documentos disponibles.',
      docTypeStatement: 'Declaración',
      docTypeContract: 'Contrato',
      docTypeReport: 'Informe',
      // Total earnings
      totalEarnings: 'Ganancias totales',
    },
    // Login page
    login: {
      title: 'Divisi Metrics',
      subtitle: 'Analítica de regalías de publicación musical',
      selectRole: 'Selecciona un rol',
      selectRoleDesc: 'Selecciona un rol para explorar el tablero',
      logIn: 'Iniciar sesión',
      copyright: '© 2026 Divisi · Hecho con ❤ en Chile',
      // Role descriptions
      clientPortalLabel: 'Portal del Cliente',
      clientPortalDesc: 'Vista de datos de regalías para artistas/compositores',
      superAdminLabel: 'Super Admin',
      superAdminDesc: 'Acceso completo a todos los tableros incluyendo Auditoría',
      publisherAdminLabel: 'Publisher Admin',
      publisherAdminDesc: 'Acceso a todos los tableros excepto Auditoría',
      viewerLabel: 'Viewer',
      viewerDesc: 'Acceso de solo lectura a Resumen, Ingresos, Declaraciones y Costos',
    },
    dashboard: {
      // Common
      loading: 'Cargando datos…',
      // Overview page
      totalWorks: 'Total de Obras',
      totalComposers: 'Total de Compositores',
      totalIncomeYear: 'Ingresos Totales (Año)',
      activeContracts: 'Contratos Activos',
      pendingSuspense: 'Suspense Pendiente',
      pendingStatements: 'Declaraciones Pendientes',
      incomeOverTime: 'Ingresos a lo Largo del Tiempo',
      incomeByTerritory: 'Ingresos por Territorio',
      top10WorksByIncome: 'Top 10 Obras por Ingresos',
      incomeByMediaType: 'Ingresos por Tipo de Medio',
      totalIncome: 'Ingresos Totales',
      totalWorksTab: 'Total de Obras',
      operatingStatus: 'Estado Operativo',
      thisYear: 'Este Año',
      lastYear: 'Año Anterior',
      // Works page
      worksByGenre: 'Obras por Género',
      worksByRightsType: 'Obras por Tipo de Derechos',
      worksAddedOverTime: 'Obras Agregadas a lo Largo del Tiempo',
      writerSplitDistribution: 'Distribución de Splits de Escritor',
      // Composers page
      top10ComposersByIncome: 'Top 10 Compositores por Ingresos',
      composerCountTrends: 'Tendencias de Conteo de Compositores',
      composersByWorksCount: 'Compositores por Cantidad de Obras',
      incomePerTop5: 'Ingresos por Top 5 Compositores',
      // Income page
      grossIncome: 'Ingresos Brutos',
      netIncome: 'Ingresos Netos',
      recordCount: 'Cantidad de Registros',
      incomeBySource: 'Ingresos por Fuente',
      grossVsNet: 'Bruto vs Neto por Mes',
      // Costs page
      totalCosts: 'Costos Totales',
      costToIncomeRatio: 'Ratio Costo/Ingreso',
      costsByType: 'Costos por Tipo',
      costTrends: 'Tendencias de Costos',
      costsByCurrency: 'Costos por Moneda',
      costRatioOverTime: 'Ratio Costo/Ingreso a lo Largo del Tiempo',
      // Statements page
      totalStatements: 'Total de Declaraciones',
      draft: 'Borrador',
      final: 'Final',
      published: 'Publicado',
      totalNetPayable: 'Total Neto Pagable',
      statementsByStatus: 'Declaraciones por Estado',
      netPayableOverTime: 'Neto Pagable a lo Largo del Tiempo',
      top10PayeesByNetPayable: 'Top 10 Beneficiarios por Neto Pagable',
      statementsByCurrency: 'Declaraciones por Moneda',
      // Transactions page
      totalTransactions: 'Total de Transacciones',
      totalAmount: 'Monto Total',
      transactionsByType: 'Transacciones por Tipo',
      transactionsOverTime: 'Transacciones a lo Largo del Tiempo',
      transactionsByCurrency: 'Transacciones por Moneda',
      amountByType: 'Monto por Tipo',
      // Payees page
      totalPayees: 'Total de Beneficiarios',
      payeesByType: 'Beneficiarios por Tipo',
      payeesByTerritory: 'Beneficiarios por Territorio',
      top10PayeesByEarnings: 'Top 10 Beneficiarios por Ganancias',
      earningsDistribution: 'Distribución de Ganancias',
      // Contracts page
      totalContracts: 'Total de Contratos',
      activeContractsCount: 'Contratos Activos',
      contractsByTerritory: 'Contratos por Territorio',
      contractsByCurrency: 'Contratos por Moneda',
      contractsByStatus: 'Contratos por Estado',
      royaltySplitDistribution: 'Distribución de Splits de Regalías',
      contractsTimeline: 'Línea de Tiempo de Contratos',
      // Suspense page
      totalSuspenseItems: 'Total de Items en Suspense',
      pendingItems: 'Items Pendientes',
      resolvedItems: 'Items Resueltos',
      suspenseByMatchType: 'Suspense por Tipo de Coincidencia',
      suspenseByStatus: 'Suspense por Estado',
      suspenseOverTime: 'Suspense a lo Largo del Tiempo',
      resolutionRate: 'Tasa de Resolución',
      // Audit page
      totalEvents: 'Total de Eventos',
      auditByEntityType: 'Auditoría por Tipo de Entidad',
      auditByActionType: 'Auditoría por Tipo de Acción',
      auditOverTime: 'Auditoría a lo Largo del Tiempo',
      auditByUser: 'Auditoría por Usuario',
    },
  },
  en: {
    sidebar: {
      favorites: 'Favorites',
      dashboards: 'Dashboards',
      pages: 'Pages',
      analytics: 'Analytics',
      lightMode: 'Light Mode',
      darkMode: 'Dark Mode',
      logout: 'Logout',
      collapse: 'Collapse',
      settings: 'Settings',
      espanol: 'Español',
      english: 'English',
    },
    nav: {
      overview: 'Overview',
      works: 'Works',
      composers: 'Composers',
      payees: 'Payees',
      contracts: 'Contracts',
      income: 'Income',
      transactions: 'Transactions',
      costs: 'Costs',
      statements: 'Statements',
      suspense: 'Suspense',
      audit: 'Audit',
      settings: 'Settings',
      inicio: 'Home',
      analitica: 'Analytics',
      topSongs: 'Top Songs',
      incomeGroups: 'Income Groups',
      territories: 'Territories',
      exploitationSources: 'Exploitation Sources',
      canciones: 'Songs',
      documentos: 'Documents',
    },
    portal: {
      inicio: 'Home',
      analitica: 'Analytics',
      canciones: 'Songs',
      documentos: 'Documents',
      currentPeriod: 'Current Period',
      currentBalance: 'Current Balance',
      advances: 'Advances',
      adjustments: 'Adjustments',
      netEarnings: 'Net Earnings',
      previousPeriod: 'Previous Period',
      finalBalance: 'Final Balance',
      showDetails: 'Show details',
      hideDetails: 'Hide details',
      downloadStatement: 'Download Statement',
      financialSummary: 'Financial Summary',
      netEarningsLabel: 'Net Earnings',
      finalBalanceLabel: 'Final Balance',
      latestStatements: 'Latest Statements',
      showAll: 'Show all',
      downloadStatementAria: 'Download statement',
      royaltyPeriod: 'Royalty period',
      topSongsTitle: 'Top Songs',
      allSongs: 'All songs',
      seeMore: 'See more',
      incomeGroupsTitle: 'Highest Income Groups',
      mainIncomeTypes: 'Main income types',
      exploitationSourcesTitle: 'Exploitation Sources Summary',
      allSources: 'All sources',
      territoriesTitle: 'Main Territories',
      allTerritories: 'All territories',
      songTitle: 'Title',
      songComposers: 'Composers',
      songIswc: 'ISWC',
      songRegistration: 'Registration',
      noSongs: 'No registered songs.',
      docName: 'Name',
      docType: 'Type',
      docAction: 'Action',
      docDownload: 'Download',
      noDocs: 'No documents available.',
      docTypeStatement: 'Statement',
      docTypeContract: 'Contract',
      docTypeReport: 'Report',
      totalEarnings: 'Total Earnings',
    },
    login: {
      title: 'Divisi Metrics',
      subtitle: 'Music publishing royalty analytics',
      selectRole: 'Select a role',
      selectRoleDesc: 'Select a role to explore the dashboard',
      logIn: 'Log In',
      copyright: '© 2026 Divisi · Made with ❤ in Chile',
      clientPortalLabel: 'Client Portal',
      clientPortalDesc: 'Artist/composer view of royalty data',
      superAdminLabel: 'Super Admin',
      superAdminDesc: 'Full access to all dashboards including Audit',
      publisherAdminLabel: 'Publisher Admin',
      publisherAdminDesc: 'Access to all dashboards except Audit',
      viewerLabel: 'Viewer',
      viewerDesc: 'Read-only access to Overview, Income, Statements, and Costs',
    },
    dashboard: {
      // Common
      loading: 'Loading data…',
      // Overview page
      totalWorks: 'Total Works',
      totalComposers: 'Total Composers',
      totalIncomeYear: 'Total Income (Year)',
      activeContracts: 'Active Contracts',
      pendingSuspense: 'Pending Suspense',
      pendingStatements: 'Pending Statements',
      incomeOverTime: 'Income Over Time',
      incomeByTerritory: 'Income by Territory',
      top10WorksByIncome: 'Top 10 Works by Income',
      incomeByMediaType: 'Income by Media Type',
      totalIncome: 'Total Income',
      totalWorksTab: 'Total Works',
      operatingStatus: 'Operating Status',
      thisYear: 'This Year',
      lastYear: 'Last Year',
      // Works page
      worksByGenre: 'Works by Genre',
      worksByRightsType: 'Works by Rights Type',
      worksAddedOverTime: 'Works Added Over Time',
      writerSplitDistribution: 'Writer Split Distribution',
      // Composers page
      top10ComposersByIncome: 'Top 10 Composers by Income',
      composerCountTrends: 'Composer Count Trends',
      composersByWorksCount: 'Composers by Works Count',
      incomePerTop5: 'Income per Top 5 Composers Over Time',
      // Income page
      grossIncome: 'Gross Income',
      netIncome: 'Net Income',
      recordCount: 'Record Count',
      incomeBySource: 'Income by Source',
      grossVsNet: 'Gross vs Net by Month',
      // Costs page
      totalCosts: 'Total Costs',
      costToIncomeRatio: 'Cost-to-Income Ratio',
      costsByType: 'Costs by Type',
      costTrends: 'Cost Trends Over Time',
      costsByCurrency: 'Costs by Currency',
      costRatioOverTime: 'Cost-to-Income Ratio Over Time',
      // Statements page
      totalStatements: 'Total Statements',
      draft: 'Draft',
      final: 'Final',
      published: 'Published',
      totalNetPayable: 'Total Net Payable',
      statementsByStatus: 'Statements by Status',
      netPayableOverTime: 'Net Payable Over Time',
      top10PayeesByNetPayable: 'Top 10 Payees by Net Payable',
      statementsByCurrency: 'Statements by Currency',
      // Transactions page
      totalTransactions: 'Total Transactions',
      totalAmount: 'Total Amount',
      transactionsByType: 'Transactions by Type',
      transactionsOverTime: 'Transactions Over Time',
      transactionsByCurrency: 'Transactions by Currency',
      amountByType: 'Amount by Type',
      // Payees page
      totalPayees: 'Total Payees',
      payeesByType: 'Payees by Type',
      payeesByTerritory: 'Payees by Territory',
      top10PayeesByEarnings: 'Top 10 Payees by Earnings',
      earningsDistribution: 'Earnings Distribution',
      // Contracts page
      totalContracts: 'Total Contracts',
      activeContractsCount: 'Active Contracts',
      contractsByTerritory: 'Contracts by Territory',
      contractsByCurrency: 'Contracts by Currency',
      contractsByStatus: 'Contracts by Status',
      royaltySplitDistribution: 'Royalty Split Distribution',
      contractsTimeline: 'Contracts Timeline',
      // Suspense page
      totalSuspenseItems: 'Total Suspense Items',
      pendingItems: 'Pending Items',
      resolvedItems: 'Resolved Items',
      suspenseByMatchType: 'Suspense by Match Type',
      suspenseByStatus: 'Suspense by Status',
      suspenseOverTime: 'Suspense Over Time',
      resolutionRate: 'Resolution Rate',
      // Audit page
      totalEvents: 'Total Events',
      auditByEntityType: 'Audit by Entity Type',
      auditByActionType: 'Audit by Action Type',
      auditOverTime: 'Audit Over Time',
      auditByUser: 'Audit by User',
    },
  },
} as const;

export type TranslationKeys = {
  [K in keyof typeof translations.es]: {
    [P in keyof (typeof translations.es)[K]]: string;
  };
};
