from fpdf import FPDF
import pandas as pd
import base64

class PDFReport(FPDF):
    def header(self):
        self.set_font('Arial', 'B', 15)
        self.cell(0, 10, 'Relatório Executivo - GLPI', 0, 1, 'C')
        self.ln(5)

    def footer(self):
        self.set_y(-15)
        self.set_font('Arial', 'I', 8)
        self.cell(0, 10, f'Página {self.page_no()}', 0, 0, 'C')

def generate_pdf(df, kpis):
    pdf = PDFReport()
    pdf.add_page()
    pdf.set_font('Arial', '', 12)
    
    # Executive Summary
    pdf.set_font('Arial', 'B', 14)
    pdf.cell(0, 10, 'Resumo Executivo', 0, 1)
    pdf.set_font('Arial', '', 12)
    
    pdf.cell(0, 10, f"Total de Chamados: {kpis['total']}", 0, 1)
    pdf.cell(0, 10, f"Chamados Solucionados: {kpis['solved']}", 0, 1)
    pdf.cell(0, 10, f"Chamados em Aberto: {kpis['open']}", 0, 1)
    pdf.cell(0, 10, f"Taxa de Sucesso: {kpis['success_rate']:.1f}%", 0, 1)
    pdf.ln(10)
    
    # Top Issues Table (Simplified)
    pdf.set_font('Arial', 'B', 14)
    pdf.cell(0, 10, 'Chamados Recentes', 0, 1)
    pdf.set_font('Arial', 'B', 10)
    
    # Header
    pdf.cell(20, 10, 'ID', 1)
    pdf.cell(100, 10, 'Título', 1)
    pdf.cell(40, 10, 'Status', 1)
    pdf.ln()
    
    # Data
    pdf.set_font('Arial', '', 10)
    for index, row in df.head(15).iterrows():
        pdf.cell(20, 10, str(row['id']), 1)
        pdf.cell(100, 10, str(row['name'])[:50], 1)
        pdf.cell(40, 10, str(row['status']), 1)
        pdf.ln()
        
    return pdf.output(dest='S').encode('latin-1')

def convert_df_to_csv(df):
    return df.to_csv(index=False).encode('utf-8')
