#!/usr/bin/env python3
"""Migración v8 — tabla log_bodeguero_estados para tracking de tiempos."""
import sqlite3, sys

DB = sys.argv[1] if len(sys.argv) > 1 else "/home/embalado/bascunan.db"

conn = sqlite3.connect(DB)
try:
    conn.execute("""
        CREATE TABLE IF NOT EXISTS log_bodeguero_estados (
            id         INTEGER PRIMARY KEY AUTOINCREMENT,
            id_usuario INTEGER NOT NULL,
            estado     TEXT NOT NULL,
            inicio_at  TEXT NOT NULL,
            fin_at     TEXT
        )
    """)
    conn.execute("CREATE INDEX IF NOT EXISTS idx_lbe_usuario ON log_bodeguero_estados(id_usuario)")
    conn.execute("CREATE INDEX IF NOT EXISTS idx_lbe_inicio ON log_bodeguero_estados(inicio_at)")
    print("  + tabla log_bodeguero_estados creada")
except sqlite3.OperationalError as e:
    print(f"  ~ ya existe ({e})")

# Seed con estado actual de cada bodeguero
seeded = conn.execute("""
    INSERT OR IGNORE INTO log_bodeguero_estados (id_usuario, estado, inicio_at)
    SELECT eb.id_usuario, eb.estado, eb.updated_at
    FROM estados_bodegueros eb
    WHERE eb.estado IS NOT NULL
      AND NOT EXISTS (
          SELECT 1 FROM log_bodeguero_estados l WHERE l.id_usuario=eb.id_usuario AND l.fin_at IS NULL
      )
""").rowcount
conn.commit()
conn.close()
print(f"  + {seeded} sesiones iniciales registradas")
print("Migración v8 completa.")
