-- 1. 创建 doc_statistics 表的主键序列（自增ID用，与 doc_order_process 序列逻辑一致）
CREATE SEQUENCE doc_statistics_id_seq
    START WITH 1               -- 序列起始值
    INCREMENT BY 1             -- 每次递增1
    NO MINVALUE                -- 无最小值限制
    NO MAXVALUE                -- 无最大值限制
    CACHE 1;                   -- 缓存1个值提升性能


-- 2. 创建 doc_statistics 表（字段类型、约束与实体类属性一一对应）
CREATE TABLE "public"."doc_statistics" (
  "id" int8 NOT NULL DEFAULT nextval('doc_statistics_id_seq'::regclass),  -- 主键，关联序列自增
  "record_id" int8 DEFAULT NULL,                                          -- 记录ID（对应实体类 recordId）
  "statistic_definition_id" int8 DEFAULT NULL,                            -- 统计项定义ID（对应 statisticDefinitionId）
  "encounter_id" int8 DEFAULT NULL,                                       -- 就诊ID（对应 encounterId）
  "patient_id" int8 DEFAULT NULL,                                         -- 患者ID（对应 patientId）
  "statistic_definition_code" varchar(100) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,  -- 统计项编码（对应 statisticDefinitionCode，长度适配业务需求）
  "organization_id" int8 DEFAULT NULL,                                    -- 记录科室ID（对应 organizationId）
  "value" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,  -- 统计值（对应 value，用varchar兼容多种数据类型）
  "record_time" timestamp(6) DEFAULT NULL,                                -- 记录时间（对应 recordTime，实体类为Date，PostgreSQL用timestamp存储）
  "source" varchar(100) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,  -- 记录来源（对应 source）
  "tenant_id" int8 NOT NULL DEFAULT 1,                                    -- 租户ID（通用字段，与 doc_order_process 保持一致，默认值可根据业务调整）
  "delete_flag" char(1) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0',  -- 删除状态（0=未删除，1=已删除，与 doc_order_process 逻辑一致）
  "create_by" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,  -- 创建人（继承 HisBaseEntity 通用字段）
  "create_time" timestamptz(6) NOT NULL,                                  -- 创建时间（继承 HisBaseEntity，带时区，与 doc_order_process 一致）
  "update_by" varchar(32) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,  -- 更新人（继承 HisBaseEntity）
  "update_time" timestamptz(6) DEFAULT NULL,                              -- 更新时间（继承 HisBaseEntity，带时区）
  CONSTRAINT "doc_statistics_pkey" PRIMARY KEY ("id")                     -- 主键约束
)
;


-- 3. 设置表所有者（与 doc_order_process 保持一致，默认为 postgres）
ALTER TABLE "public"."doc_statistics" 
  OWNER TO "postgres";


-- 4. 字段注释（与实体类注释完全对应，便于维护）
COMMENT ON COLUMN "public"."doc_statistics"."id" IS '主键ID';
COMMENT ON COLUMN "public"."doc_statistics"."record_id" IS '记录ID';
COMMENT ON COLUMN "public"."doc_statistics"."statistic_definition_id" IS '统计项定义ID';
COMMENT ON COLUMN "public"."doc_statistics"."encounter_id" IS '就诊ID';
COMMENT ON COLUMN "public"."doc_statistics"."patient_id" IS '患者ID';
COMMENT ON COLUMN "public"."doc_statistics"."statistic_definition_code" IS '统计项编码';
COMMENT ON COLUMN "public"."doc_statistics"."organization_id" IS '记录科室ID';
COMMENT ON COLUMN "public"."doc_statistics"."value" IS '统计值';
COMMENT ON COLUMN "public"."doc_statistics"."record_time" IS '记录时间（格式：yyyy-MM-dd HH:mm:ss）';
COMMENT ON COLUMN "public"."doc_statistics"."source" IS '记录来源';
COMMENT ON COLUMN "public"."doc_statistics"."tenant_id" IS '租户ID';
COMMENT ON COLUMN "public"."doc_statistics"."delete_flag" IS '删除状态（0=未删除，1=已删除）';
COMMENT ON COLUMN "public"."doc_statistics"."create_by" IS '创建人';
COMMENT ON COLUMN "public"."doc_statistics"."create_time" IS '创建时间';
COMMENT ON COLUMN "public"."doc_statistics"."update_by" IS '更新人';
COMMENT ON COLUMN "public"."doc_statistics"."update_time" IS '更新时间';

-- 5. 表注释
COMMENT ON TABLE "public"."doc_statistics" IS '文档统计表（存储各类统计项数据，如医嘱统计、患者数据统计等）';


-- 插入新的迁移历史记录
INSERT INTO __MigrationsHistory (MigrationId, ProductVersion)
VALUES ('202509031200add_table_doc_statistics', '1.0.0');