feat: establish Orbit models, migrations and development baseline
This commit is contained in:
32
platform/model/idempotency_key.go
Normal file
32
platform/model/idempotency_key.go
Normal 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" }
|
||||
Reference in New Issue
Block a user