在项目宪章中新增第九条原则"数据库设计原则",明确禁止使用数据库外键约束和ORM关联标签。 主要变更: - 新增原则IX:数据库设计原则(Database Design Principles) - 强制要求:数据库表不得使用外键约束 - 强制要求:GORM模型不得使用ORM关联标签(foreignKey、hasMany等) - 强制要求:表关系必须通过ID字段手动维护 - 强制要求:关联数据查询必须显式编写,避免ORM魔法 - 强制要求:时间字段由GORM处理,不使用数据库触发器 设计理念: - 提升业务逻辑灵活性(无数据库约束限制) - 优化高并发性能(无外键检查开销) - 增强代码可读性(显式查询,无隐式预加载) - 简化数据库架构和迁移流程 - 支持分布式和微服务场景 版本升级:2.3.0 → 2.4.0(MINOR)
68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package constants
|
|
|
|
import "time"
|
|
|
|
// Fiber Locals 的上下文键
|
|
const (
|
|
ContextKeyRequestID = "requestid"
|
|
ContextKeyUserID = "user_id"
|
|
ContextKeyStartTime = "start_time"
|
|
)
|
|
|
|
// 配置环境变量
|
|
const (
|
|
EnvConfigPath = "CONFIG_PATH"
|
|
EnvConfigEnv = "CONFIG_ENV" // dev, staging, prod
|
|
)
|
|
|
|
// 默认配置值
|
|
const (
|
|
DefaultConfigPath = "configs/config.yaml"
|
|
DefaultServerAddr = ":3000"
|
|
DefaultRedisAddr = "localhost:6379"
|
|
)
|
|
|
|
// 数据库配置常量
|
|
const (
|
|
DefaultMaxOpenConns = 25
|
|
DefaultMaxIdleConns = 10
|
|
DefaultConnMaxLifetime = 5 * time.Minute
|
|
DefaultPageSize = 20
|
|
MaxPageSize = 100
|
|
SlowQueryThreshold = 100 * time.Millisecond
|
|
)
|
|
|
|
// 任务类型常量
|
|
const (
|
|
TaskTypeEmailSend = "email:send" // 发送邮件
|
|
TaskTypeDataSync = "data:sync" // 数据同步
|
|
TaskTypeSIMStatusSync = "sim:status:sync" // SIM 卡状态同步
|
|
TaskTypeCommission = "commission:calculate" // 分佣计算
|
|
)
|
|
|
|
// 用户状态常量
|
|
const (
|
|
UserStatusActive = "active" // 激活
|
|
UserStatusInactive = "inactive" // 未激活
|
|
UserStatusSuspended = "suspended" // 暂停
|
|
)
|
|
|
|
// 订单状态常量
|
|
const (
|
|
OrderStatusPending = "pending" // 待支付
|
|
OrderStatusPaid = "paid" // 已支付
|
|
OrderStatusProcessing = "processing" // 处理中
|
|
OrderStatusCompleted = "completed" // 已完成
|
|
OrderStatusCancelled = "cancelled" // 已取消
|
|
)
|
|
|
|
// 队列配置常量
|
|
const (
|
|
QueueCritical = "critical" // 关键任务队列
|
|
QueueDefault = "default" // 默认队列
|
|
QueueLow = "low" // 低优先级队列
|
|
DefaultRetryMax = 5
|
|
DefaultTimeout = 10 * time.Minute
|
|
DefaultConcurrency = 10
|
|
)
|