-- =============================================
-- ODF v1.2.0 - 创建审计日志表 odf_audit_logs
-- 需求: 8.1, 8.2
-- =============================================

CREATE TABLE odf_audit_logs (
    Id              INT IDENTITY(1,1) PRIMARY KEY,
    TableName       NVARCHAR(100) NOT NULL,          -- 操作的表名
    RecordId        INT NULL,                         -- 操作的记录ID
    OperationType   NVARCHAR(20) NOT NULL,            -- 操作类型: INSERT/UPDATE/DELETE
    OperatorId      BIGINT NOT NULL,                  -- 操作人用户ID
    OperatorName    NVARCHAR(100) NULL,               -- 操作人用户名
    SourceClient    NVARCHAR(20) NOT NULL,            -- 操作来源: App/Admin
    OldData         NVARCHAR(MAX) NULL,               -- 修改前数据 (JSON)
    NewData         NVARCHAR(MAX) NULL,               -- 修改后数据 (JSON)
    OperationTime   DATETIME DEFAULT GETDATE(),       -- 操作时间
    DeptId          BIGINT NULL,                      -- 操作人所属部门
    Remark          NVARCHAR(500) NULL                -- 备注
);

-- 索引：按操作时间范围查询
CREATE INDEX IX_odf_audit_logs_OperationTime ON odf_audit_logs(OperationTime);

-- 索引：按表名筛选
CREATE INDEX IX_odf_audit_logs_TableName ON odf_audit_logs(TableName);

-- 索引：按操作类型筛选
CREATE INDEX IX_odf_audit_logs_OperationType ON odf_audit_logs(OperationType);
