from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.pagesizes import A4, landscape
from .styles import *
from .tables import bordered_table

def build_region_pdf(response, context):
    doc = SimpleDocTemplate(
        response,
        pagesize=PAGE_SIZE,
        rightMargin=20,
        leftMargin=20,
        topMargin=15,
        bottomMargin=15
    )

    el = []

    region = context["region"]
    year = context["year"]
    totals = context["totals"]
    grades = context["grades"]
    ownership = context["ownership"]
    districts = context["districts"]

    # ================= HEADER =================
    el.append(Paragraph("OFISI YA RAIS - TAMISEMI", TITLE))
    el.append(Paragraph(f"MATOKEO YA DARASA LA SABA - {year}", TITLE))
    el.append(Spacer(1, 8))
    el.append(Paragraph(f"<b>MKOA:</b> {region.name}", HEADER))
    el.append(Spacer(1, 10))

    # ================= STUDENT SUMMARY =================
    student_table = [
        ["", "WASICHANA", "", "WAVULANA", "", "JUMLA", ""],
        ["", "NO", "%", "NO", "%", "NO", "%"],
        ["WALIOSAJILIWA",
         totals["reg_f"], "", totals["reg_m"], "", totals["reg"], "100"],
        ["WENYE MATOKEO",
         totals["sat_f"], "", totals["sat_m"], "", totals["sat"], ""],
        ["WASIOFANYA",
         totals["abs_f"], "", totals["abs_m"], "", totals["abs"], ""],
    ]

    el.append(Paragraph("WANAFUNZI", HEADER))
    el.append(bordered_table(student_table))
    el.append(Spacer(1, 10))

    # ================= GRADES SUMMARY =================
    grades_table = [
        ["DARAJA", "A", "B", "C", "D", "E", "PASS A-C"],
        ["JUMLA",
         grades["a"], grades["b"], grades["c"],
         grades["d"], grades["e"], context["a_c_total"]],
    ]

    el.append(Paragraph("UFAULU WA MADARAJA – JUMLA", HEADER))
    el.append(bordered_table(grades_table))
    el.append(Spacer(1, 10))

    # ================= OWNERSHIP =================
    for o in ownership:
        owner_table = [
            ["SHULE", "A", "B", "C", "D", "E", "PASS"],
            [
                o["owner"],
                o["af"] + o["am"],
                o["bf"] + o["bm"],
                o["cf"] + o["cm"],
                o["df"] + o["dm"],
                o["ef"] + o["em"],
                
            ]
        ]
        el.append(Paragraph(f"UFAULU: {o['owner']}", HEADER))
        el.append(bordered_table(owner_table))
        el.append(Spacer(1, 8))

    # ================= DISTRICT SUMMARY =================
    district_data = [["DISTRICT", "TOTAL", "PASS", "%"]]
    for d in districts:
        district_data.append([
            d["district_name"],
            d["total"],
            d["pass"],
            d["pass_pct"]
        ])

    el.append(Paragraph("MUHTASARI WA WILAYA", HEADER))
    el.append(bordered_table(district_data))

    doc.build(el)
