<?php

namespace App\Helper;

use App\Models\ClinicIdentity;
use Illuminate\Support\Facades\Storage;

class ClinicIdentityHelper
{
    /**
     * Obtiene la identidad activa del consultorio
     * 
     * @return ClinicIdentity|null
     */
    public static function getActiveIdentity()
    {
        return ClinicIdentity::where('is_active', true)->first();
    }

    /**
     * Genera el HTML del encabezado para documentos con la identidad del consultorio
     * 
     * @return string
     */
    public static function getDocumentHeader()
    {
        $identity = self::getActiveIdentity();
        
        if (!$identity) {
            return '<div class="doc-header text-center mb-4">
                <h2>Documento Médico</h2>
            </div>';
        }
        
        $html = '<div class="doc-header mb-4">';
        
        // Logo y título en la misma línea
        $html .= '<div class="row align-items-center">';
        
        // Logo si existe
        if ($identity->logo_path) {
            $html .= '<div class="col-2">';
            $html .= '<img src="' . asset('storage/' . $identity->logo_path) . '" class="img-fluid" style="max-height: 100px;">';
            $html .= '</div>';
            $html .= '<div class="col-10">';
        } else {
            $html .= '<div class="col-12">';
        }
        
        // Nombre y datos de contacto
        $html .= '<h2 class="mb-1">' . $identity->name . '</h2>';
        
        // Especialidad si existe
        if ($identity->specialty) {
            $html .= '<p class="mb-1"><em>' . $identity->specialty . '</em></p>';
        }
        
        // Dirección siempre existe
        $html .= '<p class="mb-1">' . $identity->address . '</p>';
        
        // Datos de contacto si existen
        $contactInfo = [];
        if ($identity->phone) $contactInfo[] = 'Tel: ' . $identity->phone;
        if ($identity->email) $contactInfo[] = 'Email: ' . $identity->email;
        if ($identity->website) $contactInfo[] = 'Web: ' . $identity->website;
        
        if (!empty($contactInfo)) {
            $html .= '<p class="mb-0">' . implode(' | ', $contactInfo) . '</p>';
        }
        
        $html .= '</div>'; // Cierre de col
        $html .= '</div>'; // Cierre de row
        
        // Línea divisoria
        $html .= '<hr class="my-3">';
        
        $html .= '</div>'; // Cierre de doc-header
        
        return $html;
    }

    /**
     * Genera el HTML del pie de página para documentos con la identidad del consultorio
     * 
     * @return string
     */
    public static function getDocumentFooter()
    {
        $identity = self::getActiveIdentity();
        
        if (!$identity) {
            return '<div class="doc-footer text-center mt-4">
                <hr>
                <p class="small mb-0">Documento generado por el sistema médico</p>
            </div>';
        }
        
        $html = '<div class="doc-footer mt-4">';
        $html .= '<hr>';
        
        // Información del pie de página
        $html .= '<div class="row">';
        $html .= '<div class="col-12 text-center">';
        
        $html .= '<p class="small mb-0">' . $identity->name . ' - ' . $identity->address . '</p>';
        
        // Datos de contacto si existen
        $contactInfo = [];
        if ($identity->phone) $contactInfo[] = 'Tel: ' . $identity->phone;
        if ($identity->email) $contactInfo[] = 'Email: ' . $identity->email;
        
        if (!empty($contactInfo)) {
            $html .= '<p class="small mb-0">' . implode(' | ', $contactInfo) . '</p>';
        }
        
        // Horario si existe
        if ($identity->working_hours) {
            $html .= '<p class="small mb-0">Horario: ' . $identity->working_hours . '</p>';
        }
        
        $html .= '</div>'; // Cierre de col
        $html .= '</div>'; // Cierre de row
        
        $html .= '</div>'; // Cierre de doc-footer
        
        return $html;
    }
} 