feat(forum): add forum prisma models and board constant
This commit is contained in:
parent
9d19f66f28
commit
8cfa20d3aa
|
|
@ -0,0 +1,677 @@
|
|||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
binaryTargets = ["windows"]
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "mysql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
// 管理员账号
|
||||
model Admin {
|
||||
id String @id // 账号ID A(RRRRRR)
|
||||
name String @unique // 账号名
|
||||
password String // 密码
|
||||
username String // 用户名
|
||||
type Int @default(1) // 账号类型 1 - 超级管理员, 2 - 管理员
|
||||
status Int @default(1) // 账号状态 0 - 禁用, 1 - 可用
|
||||
authz_hist_mgmt Int @default(1) // 历史管理
|
||||
authz_tmpl_mgmt Int @default(1) // 模板管理
|
||||
authz_mtrl_mgmt Int @default(1) // 材料管理
|
||||
authz_audit_mgmt Int @default(1) // 审核管理
|
||||
authz_acct_mgmt Int @default(1) // 账号管理
|
||||
authz_sys_cfg Int @default(1) // 系统设置
|
||||
templates PublicTemplate[]
|
||||
materials PublicMaterial[]
|
||||
applied_requests AuditRequest[] @relation("applied_requests")
|
||||
reviewed_requests AuditRequest[] @relation("reviewed_requests")
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
deleted Int @default(0)
|
||||
|
||||
@@map("admin")
|
||||
}
|
||||
|
||||
// 用户账号
|
||||
model User {
|
||||
id String @id // 账号ID U(RRRRRR)
|
||||
name String @unique // 账户名
|
||||
password String // 密码
|
||||
username String // 用户名
|
||||
status Int @default(1) // 账号状态 0 - 禁用, 1 - 可用
|
||||
projects Project[]
|
||||
templates SelfTemplate[]
|
||||
materials SelfMaterial[]
|
||||
pub_temp_colls PublicTemplateCollection[] // 收藏的公共模板
|
||||
pub_mtrl_colls PublicMaterialCollection[] // 收藏的公共材料
|
||||
pub_templates PublicTemplate[]
|
||||
pub_materials PublicMaterial[]
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
deleted Int @default(0)
|
||||
phone String? @unique // 手机号(手机注册用户)
|
||||
|
||||
@@map("user")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 项目
|
||||
model Project {
|
||||
id String @id // 项目ID P(yMdHmSRR)
|
||||
name String? // 项目名称
|
||||
category String? // 项目类型
|
||||
province String? // 所在省份
|
||||
city String? // 所在城市
|
||||
climatic_zone String? // 所在气候区
|
||||
constr_area Float? // 建筑面积
|
||||
usage_area Float? // 使用面积
|
||||
spaces Space[] // 包含空间
|
||||
status Int @default(0) // 状态 0 - 未生成预测报告, 1 - 已生成预测报告
|
||||
predicted_at DateTime? // 预测报告生成时间
|
||||
score Float? // 得分
|
||||
grade String? // 评级
|
||||
creator_id String?
|
||||
creator_name String
|
||||
creator User? @relation(fields: [creator_id], references: [id], onDelete: SetNull)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("project")
|
||||
}
|
||||
|
||||
// 项目空间
|
||||
model Space {
|
||||
id String @id // 空间ID S(yMdHmSRR)
|
||||
project_id String // 所属项目ID
|
||||
project Project @relation(fields: [project_id], references: [id], onDelete: Cascade) // 所属项目
|
||||
name String? // 空间名称
|
||||
category String? // 空间类型
|
||||
layout Int? // 空间布局
|
||||
height Float? // 空间高度
|
||||
area Float? // 空间面积
|
||||
volume Float? // 空间体积
|
||||
env_temp Float? // 环境温度
|
||||
env_hum Float? // 环境湿度
|
||||
env_vent_rate Float? // 环境通风换气率
|
||||
apc_lmt_std_id String? // 空气污染物浓度限值标准ID
|
||||
apc_lmt_std ApcLimitStandard? @relation(fields: [apc_lmt_std_id], references: [id], onDelete: SetNull) // 空气污染物浓度限值标准
|
||||
materials Material[] // 包含材料
|
||||
methanal_c Float? // 甲醛浓度
|
||||
tvoc_c Float? // TVOC浓度
|
||||
benzene_c Float? // 苯浓度
|
||||
toluene_c Float? // 甲苯浓度
|
||||
p_xylene_c Float? // 二甲苯浓度
|
||||
methanal_c_exceed Int? // 甲醛是否超标
|
||||
tvoc_c_exceed Int? // TVOC是否超标
|
||||
benzene_c_exceed Int? // 苯是否超标
|
||||
toluene_c_exceed Int? // 甲苯是否超标
|
||||
p_xylene_c_exceed Int? // 二甲苯是否超标
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("space")
|
||||
}
|
||||
|
||||
// 空间材料
|
||||
model Material {
|
||||
id Int @id @default(autoincrement()) // 材料ID
|
||||
material_id String // 所属材料ID
|
||||
project_id String // 所属项目ID
|
||||
space_id String // 所属空间ID
|
||||
space Space @relation(fields: [space_id], references: [id], onDelete: Cascade) // 所属空间
|
||||
name String? // 材料名称
|
||||
category String? // 材料类型
|
||||
brand String? // 材料品牌
|
||||
factory String? // 材料厂家
|
||||
spec String? // 材料规格
|
||||
eco_level String? // 环保等级
|
||||
unit String? // 用量单位 AREA - 面积, LEN - 长度
|
||||
qty Float? // 用量值
|
||||
methanal Float? // 甲醛
|
||||
methanal_min_be Float? // 甲醛最低平衡释放量
|
||||
methanal_be_area Float? // 甲醛平衡释放量范围
|
||||
methanal_be_roc Float? // 甲醛平衡释放量变化率
|
||||
tvoc Float? // TVOC
|
||||
tvoc_min_be Float? // TVOC最低平衡释放量
|
||||
tvoc_be_area Float? // TVOC平衡释放量范围
|
||||
tvoc_be_roc Float? // TVOC平衡释放量变化率
|
||||
benzene Float? // 苯
|
||||
benzene_min_be Float? // 苯最低平衡释放量
|
||||
benzene_be_area Float? // 苯平衡释放量范围
|
||||
benzene_be_roc Float? // 苯平衡释放量变化率
|
||||
toluene Float? // 甲苯
|
||||
toluene_min_be Float? // 甲苯最低平衡释放量
|
||||
toluene_be_area Float? // 甲苯平衡释放量范围
|
||||
toluene_be_roc Float? // 甲苯平衡释放量变化率
|
||||
p_xylene Float? // 二甲苯
|
||||
p_xylene_min_be Float? // 二甲苯最低平衡释放量
|
||||
p_xylene_be_area Float? // 二甲苯平衡释放量范围
|
||||
p_xylene_be_roc Float? // 二甲苯平衡释放量变化率
|
||||
methanal_cr Float? // 甲醛贡献率
|
||||
tvoc_cr Float? // TVOC贡献率
|
||||
benzene_cr Float? // 苯贡献率
|
||||
toluene_cr Float? // 甲苯贡献率
|
||||
p_xylene_cr Float? // 二甲苯贡献率
|
||||
methanal_cr_exceed Int? // 甲醛贡献率是否超标
|
||||
tvoc_cr_exceed Int? // TVOC贡献率是否超标
|
||||
benzene_cr_exceed Int? // 苯贡献率是否超标
|
||||
toluene_cr_exceed Int? // 甲苯贡献率是否超标
|
||||
p_xylene_cr_exceed Int? // 二甲苯贡献率是否超标
|
||||
is_methanal_ps Int? // 是否为甲醛污染源
|
||||
is_tvoc_ps Int? // 是否为TVOC污染源
|
||||
is_benzene_ps Int? // 是否为苯污染源
|
||||
is_toluene_ps Int? // 是否为甲苯污染源
|
||||
is_p_xylene_ps Int? // 是否为二甲苯污染源
|
||||
user_id String
|
||||
user_name String
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("material")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 公共项目模板
|
||||
model PublicTemplate {
|
||||
id String @id // PT(yMdHmSRR)
|
||||
name String?
|
||||
category String?
|
||||
province String?
|
||||
city String?
|
||||
climatic_zone String?
|
||||
constr_area Float?
|
||||
usage_area Float?
|
||||
spaces PublicTemplateSpace[]
|
||||
display Int @default(0) // 是否展示
|
||||
collectors PublicTemplateCollection[] // 收藏此模板的用户
|
||||
pry_no Int @default(0)
|
||||
score Float?
|
||||
grade String?
|
||||
from String?
|
||||
creator_id String
|
||||
creator_name String
|
||||
related_user_id String?
|
||||
related_user User? @relation(fields: [related_user_id], references: [id], onDelete: SetNull)
|
||||
related_admin_id String?
|
||||
related_admin Admin? @relation(fields: [related_admin_id], references: [id], onDelete: SetNull)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("public_template")
|
||||
}
|
||||
|
||||
// 公共项目模板空间
|
||||
model PublicTemplateSpace {
|
||||
id String @id // PTS(yMdHmSRR)
|
||||
project_id String
|
||||
project PublicTemplate @relation(fields: [project_id], references: [id], onDelete: Cascade)
|
||||
name String?
|
||||
category String?
|
||||
layout Int?
|
||||
height Float?
|
||||
area Float?
|
||||
volume Float?
|
||||
env_temp Float?
|
||||
env_hum Float?
|
||||
env_vent_rate Float?
|
||||
apc_lmt_std_id String?
|
||||
apc_lmt_std ApcLimitStandard? @relation(fields: [apc_lmt_std_id], references: [id], onDelete: SetNull)
|
||||
materials PublicTemplateMaterial[]
|
||||
methanal_c Float?
|
||||
tvoc_c Float?
|
||||
benzene_c Float?
|
||||
toluene_c Float?
|
||||
p_xylene_c Float?
|
||||
methanal_c_exceed Int?
|
||||
tvoc_c_exceed Int?
|
||||
benzene_c_exceed Int?
|
||||
toluene_c_exceed Int?
|
||||
p_xylene_c_exceed Int?
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("public_template_space")
|
||||
}
|
||||
|
||||
// 公共项目模板材料
|
||||
model PublicTemplateMaterial {
|
||||
id Int @id @default(autoincrement())
|
||||
material_id String
|
||||
project_id String
|
||||
space_id String
|
||||
space PublicTemplateSpace @relation(fields: [space_id], references: [id], onDelete: Cascade)
|
||||
name String?
|
||||
category String?
|
||||
brand String?
|
||||
factory String?
|
||||
spec String?
|
||||
eco_level String?
|
||||
unit String?
|
||||
qty Float?
|
||||
methanal Float?
|
||||
methanal_min_be Float?
|
||||
methanal_be_area Float?
|
||||
methanal_be_roc Float?
|
||||
tvoc Float?
|
||||
tvoc_min_be Float?
|
||||
tvoc_be_area Float?
|
||||
tvoc_be_roc Float?
|
||||
benzene Float?
|
||||
benzene_min_be Float?
|
||||
benzene_be_area Float?
|
||||
benzene_be_roc Float?
|
||||
toluene Float?
|
||||
toluene_min_be Float?
|
||||
toluene_be_area Float?
|
||||
toluene_be_roc Float?
|
||||
p_xylene Float?
|
||||
p_xylene_min_be Float?
|
||||
p_xylene_be_area Float?
|
||||
p_xylene_be_roc Float?
|
||||
methanal_cr Float?
|
||||
tvoc_cr Float?
|
||||
benzene_cr Float?
|
||||
toluene_cr Float?
|
||||
p_xylene_cr Float?
|
||||
methanal_cr_exceed Int?
|
||||
tvoc_cr_exceed Int?
|
||||
benzene_cr_exceed Int?
|
||||
toluene_cr_exceed Int?
|
||||
p_xylene_cr_exceed Int?
|
||||
is_methanal_ps Int?
|
||||
is_tvoc_ps Int?
|
||||
is_benzene_ps Int?
|
||||
is_toluene_ps Int?
|
||||
is_p_xylene_ps Int?
|
||||
user_id String
|
||||
user_name String
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("public_template_material")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 自建模板
|
||||
model SelfTemplate {
|
||||
id String // ST(yMdHmSRR)
|
||||
name String?
|
||||
category String?
|
||||
province String?
|
||||
city String?
|
||||
climatic_zone String?
|
||||
constr_area Float?
|
||||
usage_area Float?
|
||||
spaces SelfTemplateSpace[]
|
||||
score Float?
|
||||
grade String?
|
||||
creator_id String
|
||||
creator_name String
|
||||
creator User @relation(fields: [creator_id], references: [id], onDelete: Cascade)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@id([id, creator_id])
|
||||
@@map("self_template")
|
||||
}
|
||||
|
||||
// 自建模板空间
|
||||
model SelfTemplateSpace {
|
||||
id String // STS(yMdHmSRR)
|
||||
project_id String
|
||||
project SelfTemplate @relation(fields: [project_id, creator_id], references: [id, creator_id], onDelete: Cascade)
|
||||
name String?
|
||||
category String?
|
||||
layout Int?
|
||||
height Float?
|
||||
area Float?
|
||||
volume Float?
|
||||
env_temp Float?
|
||||
env_hum Float?
|
||||
env_vent_rate Float?
|
||||
apc_lmt_std_id String?
|
||||
apc_lmt_std ApcLimitStandard? @relation(fields: [apc_lmt_std_id], references: [id], onDelete: SetNull)
|
||||
materials SelfTemplateMaterial[]
|
||||
methanal_c Float?
|
||||
tvoc_c Float?
|
||||
benzene_c Float?
|
||||
toluene_c Float?
|
||||
p_xylene_c Float?
|
||||
methanal_c_exceed Int?
|
||||
tvoc_c_exceed Int?
|
||||
benzene_c_exceed Int?
|
||||
toluene_c_exceed Int?
|
||||
p_xylene_c_exceed Int?
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@id([id, project_id])
|
||||
@@map("self_template_space")
|
||||
}
|
||||
|
||||
// 自建项目模板材料
|
||||
model SelfTemplateMaterial {
|
||||
id Int @id @default(autoincrement())
|
||||
material_id String
|
||||
project_id String
|
||||
space_id String
|
||||
space SelfTemplateSpace @relation(fields: [space_id, project_id], references: [id, project_id], onDelete: Cascade)
|
||||
name String?
|
||||
category String?
|
||||
brand String?
|
||||
factory String?
|
||||
spec String?
|
||||
eco_level String?
|
||||
unit String?
|
||||
qty Float?
|
||||
methanal Float?
|
||||
methanal_min_be Float?
|
||||
methanal_be_area Float?
|
||||
methanal_be_roc Float?
|
||||
tvoc Float?
|
||||
tvoc_min_be Float?
|
||||
tvoc_be_area Float?
|
||||
tvoc_be_roc Float?
|
||||
benzene Float?
|
||||
benzene_min_be Float?
|
||||
benzene_be_area Float?
|
||||
benzene_be_roc Float?
|
||||
toluene Float?
|
||||
toluene_min_be Float?
|
||||
toluene_be_area Float?
|
||||
toluene_be_roc Float?
|
||||
p_xylene Float?
|
||||
p_xylene_min_be Float?
|
||||
p_xylene_be_area Float?
|
||||
p_xylene_be_roc Float?
|
||||
methanal_cr Float?
|
||||
tvoc_cr Float?
|
||||
benzene_cr Float?
|
||||
toluene_cr Float?
|
||||
p_xylene_cr Float?
|
||||
methanal_cr_exceed Int?
|
||||
tvoc_cr_exceed Int?
|
||||
benzene_cr_exceed Int?
|
||||
toluene_cr_exceed Int?
|
||||
p_xylene_cr_exceed Int?
|
||||
is_methanal_ps Int?
|
||||
is_tvoc_ps Int?
|
||||
is_benzene_ps Int?
|
||||
is_toluene_ps Int?
|
||||
is_p_xylene_ps Int?
|
||||
user_id String
|
||||
user_name String
|
||||
creator_id String
|
||||
creator_name String
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("self_template_material")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 公共材料
|
||||
model PublicMaterial {
|
||||
material_id String @id // PM(yMdHmSRR)
|
||||
name String?
|
||||
category String?
|
||||
brand String?
|
||||
factory String?
|
||||
spec String?
|
||||
eco_level String?
|
||||
health_level String?
|
||||
methanal Float?
|
||||
methanal_min_be Float?
|
||||
methanal_be_area Float?
|
||||
methanal_be_roc Float?
|
||||
tvoc Float?
|
||||
tvoc_min_be Float?
|
||||
tvoc_be_area Float?
|
||||
tvoc_be_roc Float?
|
||||
benzene Float?
|
||||
benzene_min_be Float?
|
||||
benzene_be_area Float?
|
||||
benzene_be_roc Float?
|
||||
toluene Float?
|
||||
toluene_min_be Float?
|
||||
toluene_be_area Float?
|
||||
toluene_be_roc Float?
|
||||
p_xylene Float?
|
||||
p_xylene_min_be Float?
|
||||
p_xylene_be_area Float?
|
||||
p_xylene_be_roc Float?
|
||||
sort_order Int @default(0) // 手动排序权重,升序
|
||||
display Int @default(0) // 是否展示
|
||||
collectors PublicMaterialCollection[] // 收藏此材料的用户
|
||||
pry_no Int @default(0)
|
||||
from String?
|
||||
creator_id String
|
||||
creator_name String
|
||||
related_user_id String?
|
||||
related_user User? @relation(fields: [related_user_id], references: [id], onDelete: SetNull)
|
||||
related_admin_id String?
|
||||
related_admin Admin? @relation(fields: [related_admin_id], references: [id], onDelete: SetNull)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("public_material")
|
||||
}
|
||||
|
||||
// 自建材料
|
||||
model SelfMaterial {
|
||||
material_id String // SM(yMdHmSRR)
|
||||
name String?
|
||||
category String?
|
||||
brand String?
|
||||
factory String?
|
||||
spec String?
|
||||
eco_level String?
|
||||
health_level String?
|
||||
methanal Float?
|
||||
methanal_min_be Float?
|
||||
methanal_be_area Float?
|
||||
methanal_be_roc Float?
|
||||
tvoc Float?
|
||||
tvoc_min_be Float?
|
||||
tvoc_be_area Float?
|
||||
tvoc_be_roc Float?
|
||||
benzene Float?
|
||||
benzene_min_be Float?
|
||||
benzene_be_area Float?
|
||||
benzene_be_roc Float?
|
||||
toluene Float?
|
||||
toluene_min_be Float?
|
||||
toluene_be_area Float?
|
||||
toluene_be_roc Float?
|
||||
p_xylene Float?
|
||||
p_xylene_min_be Float?
|
||||
p_xylene_be_area Float?
|
||||
p_xylene_be_roc Float?
|
||||
sort_order Int @default(0)
|
||||
creator_id String
|
||||
creator_name String
|
||||
creator User @relation(fields: [creator_id], references: [id], onDelete: Cascade)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@id([material_id, creator_id])
|
||||
@@map("self_material")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 用户收藏的公共模板
|
||||
model PublicTemplateCollection {
|
||||
user_id String
|
||||
user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
|
||||
project_id String
|
||||
project PublicTemplate @relation(fields: [project_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@id([user_id, project_id])
|
||||
@@map("public_template_collection")
|
||||
}
|
||||
|
||||
// 用户收藏的公共材料
|
||||
model PublicMaterialCollection {
|
||||
user_id String
|
||||
user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
|
||||
material_id String
|
||||
material PublicMaterial @relation(fields: [material_id], references: [material_id], onDelete: Cascade)
|
||||
|
||||
@@id([user_id, material_id])
|
||||
@@map("public_material_collection")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 审核单
|
||||
model AuditRequest {
|
||||
id String @id
|
||||
status Int @default(0)
|
||||
source_id String?
|
||||
source_creator_id String?
|
||||
source String
|
||||
type String
|
||||
desc String?
|
||||
remark String?
|
||||
reason String?
|
||||
details AuditRequestDetails[]
|
||||
auditor_id String?
|
||||
auditor_name String?
|
||||
auditor Admin? @relation(name: "reviewed_requests", fields: [auditor_id], references: [id], onDelete: SetNull)
|
||||
audited_at DateTime?
|
||||
creator_id String?
|
||||
creator_name String
|
||||
creator Admin? @relation(name: "applied_requests", fields: [creator_id], references: [id], onDelete: SetNull)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
@@map("audit_request")
|
||||
}
|
||||
|
||||
// 审核单详情
|
||||
model AuditRequestDetails {
|
||||
id Int @id @default(autoincrement())
|
||||
aduit_request_id String
|
||||
audit_request AuditRequest @relation(fields: [aduit_request_id], references: [id], onDelete: Cascade)
|
||||
content Json
|
||||
|
||||
@@map("audit_request_details")
|
||||
}
|
||||
|
||||
// ------
|
||||
|
||||
// 项目-空间类型
|
||||
model ProjectSpaceCategory {
|
||||
pry_no_1 Int @default(0)
|
||||
pry_no_2 Int @default(0)
|
||||
project_category String
|
||||
space_category String
|
||||
|
||||
@@id([project_category, space_category])
|
||||
@@map("project_space_category")
|
||||
}
|
||||
|
||||
// 材料类型
|
||||
model MaterialCategory {
|
||||
pry_no_1 Int @default(0)
|
||||
pry_no_2 Int @default(0)
|
||||
first_category String
|
||||
second_category String
|
||||
unit String?
|
||||
|
||||
@@id([first_category, second_category])
|
||||
@@map("material_category")
|
||||
}
|
||||
|
||||
// 省-市-气候区-温度-湿度
|
||||
model CityInformation {
|
||||
pry_no_1 Int @default(0)
|
||||
pry_no_2 Int @default(0)
|
||||
province String
|
||||
city String
|
||||
climatic_zone String?
|
||||
env_temp Float
|
||||
env_hum Float
|
||||
|
||||
@@id([province, city])
|
||||
@@map("city_information")
|
||||
}
|
||||
|
||||
// 空气污染物浓度限值标准
|
||||
model ApcLimitStandard {
|
||||
id String @id // 标准ID
|
||||
methanal_c_lmt Float // 甲醛浓度限值
|
||||
tvoc_c_lmt Float // TVOC浓度限值
|
||||
benzene_c_lmt Float // 苯浓度限值
|
||||
toluene_c_lmt Float // 甲苯浓度限值
|
||||
p_xylene_c_lmt Float // 二甲苯浓度限值
|
||||
spaces Space[] // 使用该模板的项目空间
|
||||
pub_temp_spaces PublicTemplateSpace[] // 使用该标准的公共模板空间
|
||||
self_temp_spaces SelfTemplateSpace[] // 使用该标准的自建模板空间
|
||||
|
||||
@@map("apc_limit_standard")
|
||||
}
|
||||
|
||||
// ------ 论坛 ------
|
||||
|
||||
model ForumThread {
|
||||
id Int @id @default(autoincrement())
|
||||
board String // 板块(取值属于 FORUM_BOARDS)
|
||||
title String
|
||||
content String @db.Text
|
||||
author_id String // User.id
|
||||
author_name String // 冗余 username
|
||||
like_count Int @default(0)
|
||||
reply_count Int @default(0)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
deleted Int @default(0)
|
||||
replies ForumReply[]
|
||||
likes ForumThreadLike[]
|
||||
|
||||
@@map("forum_thread")
|
||||
}
|
||||
|
||||
model ForumReply {
|
||||
id Int @id @default(autoincrement())
|
||||
thread_id Int
|
||||
thread ForumThread @relation(fields: [thread_id], references: [id], onDelete: Cascade)
|
||||
floor Int // 楼层
|
||||
content String @db.Text
|
||||
author_id String
|
||||
author_name String
|
||||
created_at DateTime @default(now())
|
||||
deleted Int @default(0)
|
||||
|
||||
@@map("forum_reply")
|
||||
}
|
||||
|
||||
model ForumThreadLike {
|
||||
thread_id Int
|
||||
thread ForumThread @relation(fields: [thread_id], references: [id], onDelete: Cascade)
|
||||
user_id String
|
||||
created_at DateTime @default(now())
|
||||
|
||||
@@id([thread_id, user_id])
|
||||
@@map("forum_thread_like")
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
export enum ID_PREFIX {
|
||||
ADMIN = 'A',
|
||||
USER = 'U',
|
||||
PROJECT = 'P',
|
||||
SPACE = 'S',
|
||||
PUB_TEMP = 'PT',
|
||||
PUB_TEMP_SPACE = 'PTS',
|
||||
SELF_TEMP = 'ST',
|
||||
SELF_TEMP_SPACE = 'STS',
|
||||
PUB_MATERIAL = 'PM',
|
||||
SELF_MATERIAL = 'SM'
|
||||
}
|
||||
|
||||
export enum DATA_TYPE {
|
||||
PUBLIC = 'pub',
|
||||
PRIVATE = 'self'
|
||||
}
|
||||
|
||||
export const IAPIPS_STATIC = 'iapips_static'
|
||||
|
||||
export enum ERR_CODE {
|
||||
// 1xxx - 参数校验相关
|
||||
INVALID_REQ_DATA = '1000',
|
||||
ERR_NAME_OR_PSW = '1001',
|
||||
ERR_PSW = '1002',
|
||||
ACCT_NAME_EXIST = '1003',
|
||||
ACCT_NOT_FOUND = '1004',
|
||||
PROJ_NOT_FOUNT = '1005',
|
||||
SPACE_NOT_FOUNT = '1006',
|
||||
MTRL_NOT_FOUNT = '1007',
|
||||
PROJ_PREDICTED = '1008',
|
||||
PREDICTION_ERROR = '1009',
|
||||
INVALID_COLLECT = '1010',
|
||||
CAT_DUPL = '1011',
|
||||
CAT_EXIST = '1012',
|
||||
AUDIT_REQ_EXIST = '1013',
|
||||
AUDIT_REQ_NOT_FOUND = '1014',
|
||||
AUDIT_REQ_INVALID_STATUS = '1015',
|
||||
NO_UPLOAD_FILE = '1016',
|
||||
SMS_CODE_ERR = '1017',
|
||||
SMS_RATE_LIMIT = '1018',
|
||||
// 2xxx - 身份校验相关
|
||||
UNAUTHORIZED = '2000',
|
||||
// 3xxx - 权限校验相关
|
||||
FORBIDDEN = '3000',
|
||||
FORBIDDEN_ADMIN_TYPE = '3001',
|
||||
FORBIDDEN_ACCOUNT = '3002',
|
||||
// 4xxx - 服务端异常相关
|
||||
UNKNOWN_ERR = '4000'
|
||||
}
|
||||
|
||||
// 论坛板块(固定,不建表)
|
||||
export const FORUM_BOARDS = ['甲醛治理', '异味TVOC', '环保材料', '装修避坑', '求助问答']
|
||||
Loading…
Reference in New Issue