-- M006 系统管理后台：管理写操作审计表。
CREATE TABLE platform_admin_audit_log (
    id BIGINT NOT NULL COMMENT '管理审计内部 ID',
    actor_user_id BIGINT NOT NULL COMMENT '操作用户内部 ID',
    actor_username VARCHAR(128) NOT NULL COMMENT '操作用户登录名摘要',
    actor_display_name VARCHAR(128) NULL COMMENT '操作用户展示名摘要',
    target_type VARCHAR(64) NOT NULL COMMENT '操作对象类型：USER、ROLE、MENU、HOTEL、USER_ROLE、USER_HOTEL 等',
    target_id VARCHAR(128) NOT NULL COMMENT '操作对象稳定 ID，可能是内部 ID 或业务代码',
    action VARCHAR(64) NOT NULL COMMENT '操作类型，例如 CREATE、UPDATE、ENABLE、DISABLE、RESET_PASSWORD、ASSIGN',
    before_snapshot_json JSON NULL COMMENT '变更前摘要 JSON，不保存密码、token 或 secret',
    after_snapshot_json JSON NULL COMMENT '变更后摘要 JSON，不保存密码、token 或 secret',
    occurred_at DATETIME(6) NOT NULL COMMENT '操作发生 UTC 时间',
    PRIMARY KEY (id),
    KEY idx_platform_admin_audit_actor_time (actor_user_id, occurred_at),
    KEY idx_platform_admin_audit_target_time (target_type, target_id, occurred_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='平台管理后台写操作审计表';
