"""
Crea y puebla una BD de DEMO de expedientes en SQLite (expedientes.db).
Sin dependencias externas: sqlite3 viene en la stdlib.

Esquema genérico de un registro de expedientes administrativos (inspecciones de
establecimientos municipales). En producción, se sustituiría esto por un
Oracle/Postgres real; el resto del agente NO cambia.
"""

import sqlite3
from pathlib import Path

DB = Path(__file__).parent / "expedientes.db"

EXPEDIENTES = [
    # codigo, titulo, tipo, estado, fecha_apertura, responsable, instalacion
    ("EXP-2024-001", "Inspección periódica de seguridad e higiene", "inspeccion", "cerrado",   "2024-02-11", "Marta Ruiz",   "Restaurante El Puerto"),
    ("EXP-2024-014", "Renovación de licencia de actividad", "licencia", "en_tramite","2024-05-03", "Luis Sáenz",   "Hotel Central"),
    ("EXP-2024-027", "Incidente en sistema de refrigeración", "incidente","abierto",  "2024-09-21", "Marta Ruiz",   "Mercado Municipal"),
    ("EXP-2025-002", "Inspección no programada", "inspeccion", "cerrado",   "2025-01-15", "Ana Belén Gil", "Cafetería La Plaza"),
    ("EXP-2025-008", "Expediente sancionador por exceso de ruido", "sancion","en_tramite","2025-03-30","Luis Sáenz",  "Discoteca Némesis"),
    ("EXP-2025-019", "Modificación de licencia de obras", "licencia",  "abierto",   "2025-06-12", "Ana Belén Gil","Centro Comercial Vega"),
    ("EXP-2025-031", "Inspección periódica de seguridad e higiene", "inspeccion", "archivado", "2025-08-07", "Marta Ruiz",   "Polideportivo Norte"),
    ("EXP-2026-003", "Incidente por fuga de agua", "incidente", "abierto",   "2026-02-19", "Luis Sáenz",   "Gimnasio Atlas"),
    ("EXP-2026-006", "Renovación de licencia de actividad", "licencia","en_tramite", "2026-04-02", "Ana Belén Gil","Panadería San Juan"),
]


def main():
    con = sqlite3.connect(DB)
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS expedientes")
    cur.execute("""
        CREATE TABLE expedientes (
            id             INTEGER PRIMARY KEY AUTOINCREMENT,
            codigo         TEXT UNIQUE NOT NULL,
            titulo         TEXT NOT NULL,
            tipo           TEXT NOT NULL,   -- inspeccion|licencia|incidente|sancion
            estado         TEXT NOT NULL,   -- abierto|en_tramite|cerrado|archivado
            fecha_apertura TEXT NOT NULL,   -- ISO YYYY-MM-DD
            responsable    TEXT NOT NULL,
            instalacion    TEXT NOT NULL
        )
    """)
    cur.executemany(
        "INSERT INTO expedientes "
        "(codigo, titulo, tipo, estado, fecha_apertura, responsable, instalacion) "
        "VALUES (?,?,?,?,?,?,?)",
        EXPEDIENTES,
    )
    con.commit()
    n = cur.execute("SELECT COUNT(*) FROM expedientes").fetchone()[0]
    con.close()
    print(f"BD creada en {DB} con {n} expedientes.")


if __name__ == "__main__":
    main()
