import React from 'react';
import { formatCalendarDateEs } from '../../../../../utils/serverCalendarDate';

/**
 * Utilidades compartidas para los componentes de contrato
 */

export const formatFecha = (fecha: string | undefined): string => {
  if (!fecha) return "-";
  return formatCalendarDateEs(fecha);
};

export const getTipoContratoLabel = (tipo: number): string => {
  switch (tipo) {
    case 1:
      return "Contrato Simple";
    case 2:
      return "Contrato Multi-Punto";
    case 3:
      return "Contrato Multi-Cliente Multi-Punto";
    default:
      return `Tipo ${tipo}`;
  }
};

export const getEstadoLabel = (estado: string): { variant: string; label: string } => {
  switch (estado) {
    case 'P':
      return { variant: 'warning', label: 'Pendiente' };
    case 'A':
      return { variant: 'success', label: 'Aprobado' };
    case 'R':
      return { variant: 'danger', label: 'Rechazado' };
    default:
      return { variant: 'info', label: estado };
  }
};

export const getEstadoContratoLabel = (estado: number): string => {
  const ESTADOS_CONTRATO = [
    { key: 1, valor: 'Activo' },
    { key: 2, valor: 'Pendiente' },
    { key: 3, valor: 'En proceso' },
    { key: 4, valor: 'Cancelado' }
  ];

  const estadoObj = ESTADOS_CONTRATO.find(e => e.key === estado);
  return estadoObj ? estadoObj.valor : `Estado ${estado}`;
};

export const handlePrint = (printRef: React.RefObject<HTMLDivElement>, refProCom: string, fecProCom: string) => {
  if (printRef.current) {
    const printContents = printRef.current.innerHTML;
    const originalContents = document.body.innerHTML;

    document.body.innerHTML = `
      <html>
        <head>
          <title>Propuesta Comercial ${refProCom}</title>
          <style>
            body { font-family: Arial, sans-serif; }
            .print-header { text-align: center; margin-bottom: 20px; }
            table { width: 100%; border-collapse: collapse; margin-bottom: 15px; }
            th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
            th { background-color: #f2f2f2; }
            .section-title { margin-top: 20px; margin-bottom: 10px; font-weight: bold; }
            .subsection { margin-left: 20px; }
            .badge {
              display: inline-block;
              padding: 3px 8px;
              border-radius: 4px;
              font-size: 12px;
              font-weight: bold;
              text-align: center;
            }
            .badge-success { background-color: #d4edda; color: #155724; }
            .badge-warning { background-color: #fff3cd; color: #856404; }
            .badge-danger { background-color: #f8d7da; color: #721c24; }
            .badge-info { background-color: #d1ecf1; color: #0c5460; }
            .page-break { page-break-before: always; }
            @media print {
              .page-break { page-break-before: always; }
            }
          </style>
        </head>
        <body>
          <div class="print-header">
            <h2>Propuesta Comercial: ${refProCom}</h2>
            <p>Fecha: ${formatCalendarDateEs(fecProCom)}</p>
          </div>
          ${printContents}
        </body>
      </html>
    `;

    window.print();
    document.body.innerHTML = originalContents;
  }
};

