feat: establish Orbit models, migrations and development baseline

This commit is contained in:
2026-09-17 07:04:21 +08:00
commit 4f2935e36f
84 changed files with 4915 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
package model
import (
"time"
core "git.yuntuo.hk/k2safe/orbit/model"
)
// IdempotencyKey 表示请求幂等记录,关联语义摘要与首次受理响应。
// 对应表 orbit_idempotency_keys;这是服务端持久化模型,不直接作为 API 响应。
type IdempotencyKey struct {
// Record 包含命名空间、记录标识、并发版本和 UTC 时间。
core.Record
// Operation 稳定操作类型,用于区分不同接口的幂等作用域。
Operation string `db:"operation"`
// ScopeKey 资源作用域标识;空字符串表示当前操作的默认作用域。
ScopeKey string `db:"scope_key"`
// KeyDigest 稳定幂等键或资源键的 SHA-256 摘要。
KeyDigest core.Digest `db:"key_digest"`
// RequestDigest 规范化请求语义的 SHA-256 摘要,用于识别同键不同内容。
RequestDigest core.Digest `db:"request_digest"`
// ResourceKind 关联资源类型;多态关联需要服务层额外校验。
ResourceKind string `db:"resource_kind"`
// ResourceID 关联资源标识,不能单独作为访问授权依据。
ResourceID core.ID `db:"resource_id"`
// Response 首次可靠提交后的响应 JSON,供重复请求补取确认。
Response core.JSON `db:"response"`
// ExpiresAt 幂等保留截止时间,不应短于约定的重发与恢复窗口。
ExpiresAt time.Time `db:"expires_at"`
}
func (IdempotencyKey) TableName() string { return "orbit_idempotency_keys" }