-- 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);