-- 0010_operation_logs.sql — 操作日志（审计用）
-- 记录"会改变数据"的操作，重点是删除类（不可逆），也兼容未来扩展 create/update
CREATE TABLE IF NOT EXISTS operation_logs (
    id              INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id         INTEGER,
    username        TEXT,                -- 冗余存一份：用户被删/改名后日志还能看懂
    action          TEXT NOT NULL,       -- 'delete' | 'batch_delete' | 'create' | 'update' | ...
    target_type     TEXT NOT NULL,       -- 'wash_record' | 'chemical' | ...
    target_ids      TEXT NOT NULL,       -- JSON 数组（批量时是多个 id）
    target_summary  TEXT,                -- 人类可读的摘要，例如 "洗车 2026-01-15 快速 ¥30"
    detail_json     TEXT,                -- 任意 JSON，存删除前的快照等
    ip              TEXT,
    user_agent      TEXT,
    created_at      TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX IF NOT EXISTS idx_oplog_created    ON operation_logs(created_at DESC);
CREATE INDEX IF NOT EXISTS idx_oplog_user_time  ON operation_logs(username, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_oplog_action     ON operation_logs(action, target_type, created_at DESC);
