refactor: 对齐后端样例工程规范

This commit is contained in:
2026-07-26 18:24:13 +08:00
parent 4382641e19
commit 4f2bb7e88b
66 changed files with 1869 additions and 660 deletions

View File

@@ -0,0 +1,27 @@
-- org_gas_station可燃气体站主表。identity 由应用生成 UUID V7禁止自增主键。
CREATE TABLE IF NOT EXISTS org_gas_station (
identity uuid PRIMARY KEY,
station_code varchar(32) NOT NULL UNIQUE,
name varchar(128) NOT NULL,
principal varchar(64) NOT NULL,
service_area varchar(128) NOT NULL,
created_at timestamptz NOT NULL,
updated_at timestamptz NOT NULL,
created_by_identity uuid,
updated_by_identity uuid,
status varchar(32) NOT NULL DEFAULT 'draft',
version integer NOT NULL DEFAULT 1
);
COMMENT ON TABLE org_gas_station IS '可燃气体站主表';
COMMENT ON COLUMN org_gas_station.identity IS '主键,应用生成的 UUID V7';
COMMENT ON COLUMN org_gas_station.station_code IS '气站全局唯一业务编码';
COMMENT ON COLUMN org_gas_station.name IS '气站名称';
COMMENT ON COLUMN org_gas_station.principal IS '气站负责人姓名';
COMMENT ON COLUMN org_gas_station.service_area IS '气站授权服务区域';
COMMENT ON COLUMN org_gas_station.created_at IS '记录创建时间UTC';
COMMENT ON COLUMN org_gas_station.updated_at IS '记录更新时间UTC';
COMMENT ON COLUMN org_gas_station.created_by_identity IS '创建人 identity';
COMMENT ON COLUMN org_gas_station.updated_by_identity IS '更新人 identity';
COMMENT ON COLUMN org_gas_station.status IS '状态draft、enabled、frozen、archived';
COMMENT ON COLUMN org_gas_station.version IS '乐观锁版本';

View File

@@ -0,0 +1,28 @@
-- saf_event安全事件主表。事件和审计记录不允许物理删除。
CREATE TABLE IF NOT EXISTS saf_event (
identity uuid PRIMARY KEY,
event_code varchar(32) NOT NULL UNIQUE,
device_identity uuid,
level integer NOT NULL CHECK (level BETWEEN 1 AND 3),
title varchar(256) NOT NULL,
created_at timestamptz NOT NULL,
updated_at timestamptz NOT NULL,
created_by_identity uuid,
updated_by_identity uuid,
status varchar(32) NOT NULL DEFAULT 'pending',
version integer NOT NULL DEFAULT 1
);
CREATE INDEX IF NOT EXISTS idx_saf_event_status_level ON saf_event(status, level);
COMMENT ON TABLE saf_event IS '安全事件主表';
COMMENT ON COLUMN saf_event.identity IS '主键,应用生成的 UUID V7';
COMMENT ON COLUMN saf_event.event_code IS '安全事件全局唯一业务编码';
COMMENT ON COLUMN saf_event.device_identity IS '关联 dev_device 的 identity';
COMMENT ON COLUMN saf_event.level IS '风险等级1 高风险、2 中风险、3 低风险';
COMMENT ON COLUMN saf_event.title IS '安全事件说明';
COMMENT ON COLUMN saf_event.created_at IS '记录创建时间UTC';
COMMENT ON COLUMN saf_event.updated_at IS '记录更新时间UTC';
COMMENT ON COLUMN saf_event.created_by_identity IS '创建人 identity';
COMMENT ON COLUMN saf_event.updated_by_identity IS '更新人 identity';
COMMENT ON COLUMN saf_event.status IS '状态pending、processing、closed、overdue';
COMMENT ON COLUMN saf_event.version IS '乐观锁版本';

View File

@@ -0,0 +1,39 @@
-- 首期平台组织与身份主表。所有 identity 均为应用生成的 UUID V7。
CREATE TABLE IF NOT EXISTS idn_account (
identity uuid PRIMARY KEY, phone varchar(32) NOT NULL UNIQUE, account_type varchar(32) NOT NULL,
service_area varchar(128) NOT NULL, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL,
created_by_identity uuid, updated_by_identity uuid, status varchar(32) NOT NULL DEFAULT 'enabled', version integer NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS org_delivery_point (
identity uuid PRIMARY KEY, delivery_code varchar(32) NOT NULL UNIQUE, gas_station_identity uuid,
name varchar(128) NOT NULL, service_area varchar(128) NOT NULL, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL,
created_by_identity uuid, updated_by_identity uuid, status varchar(32) NOT NULL DEFAULT 'draft', version integer NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS org_service_person (
identity uuid PRIMARY KEY, account_identity uuid UNIQUE, gas_station_identity uuid, delivery_point_identity uuid,
name varchar(64) NOT NULL, roles varchar(128) NOT NULL, work_status varchar(32) NOT NULL, credential_status varchar(32) NOT NULL,
created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, created_by_identity uuid, updated_by_identity uuid,
status varchar(32) NOT NULL DEFAULT 'draft', version integer NOT NULL DEFAULT 1
);
COMMENT ON TABLE idn_account IS '身份账户主表';
COMMENT ON COLUMN idn_account.identity IS '主键,应用生成的 UUID V7';
COMMENT ON COLUMN idn_account.phone IS '手机号,敏感字段,展示时脱敏';
COMMENT ON COLUMN idn_account.account_type IS '账户类型user、service_person、admin';
COMMENT ON COLUMN idn_account.service_area IS '授权服务区域';
COMMENT ON COLUMN idn_account.status IS '状态enabled、frozen、archived';
COMMENT ON TABLE org_delivery_point IS '配送点主表';
COMMENT ON COLUMN org_delivery_point.identity IS '主键,应用生成的 UUID V7';
COMMENT ON COLUMN org_delivery_point.delivery_code IS '配送点全局唯一业务编码';
COMMENT ON COLUMN org_delivery_point.gas_station_identity IS '归属 org_gas_station 的 identity';
COMMENT ON COLUMN org_delivery_point.name IS '配送点名称';
COMMENT ON COLUMN org_delivery_point.service_area IS '配送服务区域';
COMMENT ON COLUMN org_delivery_point.status IS '状态draft、enabled、frozen、archived';
COMMENT ON TABLE org_service_person IS '服务人员主表';
COMMENT ON COLUMN org_service_person.identity IS '主键,应用生成的 UUID V7';
COMMENT ON COLUMN org_service_person.account_identity IS '关联 idn_account 的 identity';
COMMENT ON COLUMN org_service_person.gas_station_identity IS '归属 org_gas_station 的 identity';
COMMENT ON COLUMN org_service_person.delivery_point_identity IS '主归属 org_delivery_point 的 identity';
COMMENT ON COLUMN org_service_person.roles IS '可执行角色集合';
COMMENT ON COLUMN org_service_person.work_status IS '上班与接单状态';
COMMENT ON COLUMN org_service_person.credential_status IS '资质状态';
COMMENT ON COLUMN org_service_person.status IS '状态draft、enabled、frozen、archived';

View File

@@ -0,0 +1,5 @@
# PostgreSQL 迁移
迁移文件名遵循 `<序号>_create_<模块前缀_单数实体>.sql`。每个主表必须以应用生成的 UUID V7 `identity` 为主键,并对表、字段、索引、约束和枚举补充中文注释。
当前 API 的 GORM 自动迁移用于本地开发;生产发布必须先评审并执行本目录的显式 SQL 迁移,再部署新版本服务。