import { obtenerIdDomCeldaTabla } from '../../utils/validacionFormulario';

export const CAMPOS_OBLIGATORIOS_REPRESENTANTE = [
    'documento_fiscal',
    'razon_social',
    'fecha_propuesta',
] as const;

export const ETIQUETAS_CAMPOS_REPRESENTANTE: Record<string, string> = {
    documento_fiscal: 'Nº Documento Fiscal',
    razon_social: 'Razón Social / Nombre',
    fecha_propuesta: 'Fecha del Contrato',
};

export const IDS_DOM_REPRESENTANTE: Record<string, string> = {
    documento_fiscal: 'documento_fiscal',
    razon_social: 'razon_social',
    fecha_propuesta: 'fecha_propuesta',
};

export const CAMPOS_OBLIGATORIOS_ELECTRICO_MULTICLIENTE = [
    'clienteId',
    'comercializadora',
    'producto',
    'cups_electrico',
    'fechaInicio',
    'fechaFin',
    'tarifa',
    'tipoprecio',
] as const;

export const CAMPOS_OBLIGATORIOS_GAS_MULTICLIENTE = [
    'clienteId',
    'comercializadora',
    'producto',
    'cupsGas',
    'fechaInicio',
    'fechaFin',
    'tarifaGas',
    'tipoprecio',
] as const;

export const ETIQUETAS_CUPS_MULTICLIENTE: Record<string, string> = {
    clienteId: 'Cliente',
    cups_electrico: 'CUPS Eléctrico',
    cupsGas: 'CUPS Gas',
    comercializadora: 'Comercializadora',
    producto: 'Producto',
    anexo: 'Anexo',
    fechaInicio: 'Fecha de Inicio',
    fechaFin: 'Fecha de Fin',
    tarifa: 'Tarifa Eléctrica',
    tarifaGas: 'Tarifa Gas',
    tipoprecio: 'Tipo de Precio',
};

export function obtenerIdDomClienteFila(
    tipo: 'electrico' | 'gas',
    rowIndex: number,
    campo: 'clienteId' | 'documento_fiscal' | 'razon_social',
): string {
    if (campo === 'clienteId') {
        return `${tipo}-fila-${rowIndex}-documento_fiscal`;
    }

    return `${tipo}-fila-${rowIndex}-${campo}`;
}

export function obtenerIdDomCampoFilaMulticliente(
    tipo: 'electrico' | 'gas',
    rowIndex: number,
    campo: string,
): string {
    if (campo === 'clienteId') {
        return obtenerIdDomClienteFila(tipo, rowIndex, 'clienteId');
    }

    return obtenerIdDomCeldaTabla(tipo, rowIndex, campo);
}
