CREATE SCHEMA IF NOT EXISTS log;
DROP TABLE IF EXISTS log.tb_sys_log CASCADE;
CREATE TABLE log.tb_sys_log (
  optsn       VARCHAR(50)   NOT NULL,               -- 流水号
  log_id      VARCHAR(50)   NOT NULL,               -- 日志ID
  type    VARCHAR(50)   NOT NULL,               -- 日志类型
  level   VARCHAR(50)   NOT NULL,               -- 日志级别
  module  VARCHAR(50)   NOT NULL,               -- 日志模块
  ip_address  VARCHAR(45),                                -- IP地址
  ip_source   VARCHAR(100),                               -- IP来源
  browser      VARCHAR(100),                              -- 浏览器
  os           VARCHAR(100),                              -- 操作系统
  message VARCHAR(255)  NOT NULL,               -- 日志消息
  data    JSONB         DEFAULT NULL,               -- 日志数据
  creator VARCHAR(50)   DEFAULT NULL,          -- 创建者
  service_type VARCHAR(50)  NOT NULL,           -- 服务类型
  dept_path VARCHAR(255)   DEFAULT NULL,               -- 部门全路径
  updater VARCHAR(50)   DEFAULT NULL,          -- 更新者
  create_time TIMESTAMPTZ   NOT NULL DEFAULT now(),               -- 日志创建时间
  update_time TIMESTAMPTZ   DEFAULT NULL,               -- 日志更新时间
  delete_time TIMESTAMPTZ   DEFAULT NULL,               -- 日志删除时间
  deleted BOOLEAN       NOT NULL DEFAULT false,               -- 是否删除
  PRIMARY KEY (log_id),
  UNIQUE (optsn)
);
COMMENT ON TABLE log.tb_sys_log IS '系统日志表';
COMMENT ON COLUMN log.tb_sys_log.optsn IS '流水号';
COMMENT ON COLUMN log.tb_sys_log.log_id IS '日志ID';
COMMENT ON COLUMN log.tb_sys_log.type IS '日志类型';
COMMENT ON COLUMN log.tb_sys_log.level IS '日志级别';
COMMENT ON COLUMN log.tb_sys_log.module IS '日志模块';
COMMENT ON COLUMN log.tb_sys_log.message IS '日志消息';
COMMENT ON COLUMN log.tb_sys_log.data IS '日志数据';
COMMENT ON COLUMN log.tb_sys_log.creator IS '创建者';
COMMENT ON COLUMN log.tb_sys_log.service_type IS '服务类型';
COMMENT ON COLUMN log.tb_sys_log.dept_path IS '部门全路径';
COMMENT ON COLUMN log.tb_sys_log.updater IS '更新者';
COMMENT ON COLUMN log.tb_sys_log.create_time IS '日志创建时间';
COMMENT ON COLUMN log.tb_sys_log.update_time IS '日志更新时间';
COMMENT ON COLUMN log.tb_sys_log.delete_time IS '日志删除时间';
COMMENT ON COLUMN log.tb_sys_log.deleted IS '是否删除';