import json
import os
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

CATALOG_FILE = "/var/www/html/PEPCVSON/pdf_catalog.json"
OUTPUT_FILE = "/var/www/html/PEPCVSON/servis.xlsx"

def main():
    if not os.path.exists(CATALOG_FILE):
        print("Katalog bulunamadı!")
        return

    with open(CATALOG_FILE, 'r', encoding='utf-8') as f:
        catalog = json.load(f)

    # Hariç tutulacak kelimeler (Parça listesinde olanlar)
    exclude_keywords = ["parça", "parca", "part"]

    # Excel Çalışma Kitabı Oluştur
    wb = Workbook()
    ws = wb.active
    ws.title = "Servis ve Diğer Dokümanlar"

    # Başlıklar
    headers = ['MARKA', 'MODEL', 'DOSYA ADI', 'DOSYA YOLU']
    ws.append(headers)

    # Stil Ayarları (Başlık)
    # Servis için Mavi renk kullanalım
    header_fill = PatternFill(start_color="87CEEB", end_color="87CEEB", fill_type="solid")
    header_font = Font(bold=True, color="000000")
    
    for cell in ws[1]:
        cell.fill = header_fill
        cell.font = header_font
        cell.alignment = Alignment(horizontal="center")

    count = 0
    print("Excel oluşturuluyor...")

    for brand, brand_data in catalog.get('brands', {}).items():
        for model, model_data in brand_data.get('models', {}).items():
            for pdf in model_data.get('pdfs', []):
                fname = pdf.get('filename', '').lower()
                
                # MANTIK: Parça keyword'lerinden HİÇBİRİ geçmiyorsa bu listeye ekle
                if not any(k in fname for k in exclude_keywords):
                    
                    # .pdf uzantısını kaldır
                    clean_filename = pdf.get('filename')
                    if clean_filename.lower().endswith('.pdf'):
                         clean_filename = clean_filename[:-4]
                    
                    ws.append([brand, model, clean_filename, pdf.get('path')])
                    count += 1

    # Sütun Genişlikleri Otomatik Ayar
    ws.column_dimensions['A'].width = 20
    ws.column_dimensions['B'].width = 20
    ws.column_dimensions['C'].width = 50
    ws.column_dimensions['D'].width = 80

    wb.save(OUTPUT_FILE)

    print(f"\n✅ Toplam {count} adet 'Servis/Diğer' dökümanı bulundu.")
    print(f"📄 Excel dosyası hazır: {OUTPUT_FILE}")

if __name__ == "__main__":
    main()
