import { formatToYYYYMMDD } from '../../Utils';

const ISO_YMD = /^\d{4}-\d{2}-\d{2}$/;

/** Suma días calendario a una fecha ISO YYYY-MM-DD (zona local). */
export function sumarDiasAFechaIso(isoYmd: string, dias: number): string {
    if (!isoYmd || !ISO_YMD.test(isoYmd)) {
        return '';
    }

    const [y, mo, d] = isoYmd.split('-').map(Number);
    const date = new Date(y, mo - 1, d, 12, 0, 0, 0);
    date.setDate(date.getDate() + dias);

    const yy = date.getFullYear();
    const mm = String(date.getMonth() + 1).padStart(2, '0');
    const dd = String(date.getDate()).padStart(2, '0');

    return `${yy}-${mm}-${dd}`;
}

/** Fecha fin de contrato: inicio + 365 días (p. ej. 01/07/2026 → 30/06/2027). */
export function calcularFechaFinContratoDesdeInicio(fechaInicio: string, dias = 365): string {
    if (!fechaInicio?.trim()) {
        return '';
    }

    const iso = ISO_YMD.test(fechaInicio.trim())
        ? fechaInicio.trim()
        : formatToYYYYMMDD(fechaInicio.trim());

    if (!iso) {
        return '';
    }

    return sumarDiasAFechaIso(iso, dias);
}
