24 lines
1.3 KiB
Go
24 lines
1.3 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// ActivityIdempotency stores client-side idempotency keys for paid activity draw
|
|
// requests. The same activity/sysOrigin/user/key may only map to one request hash.
|
|
type ActivityIdempotency struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
Activity string `gorm:"column:activity;size:64;uniqueIndex:uk_activity_idempotency_key,priority:1"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_activity_idempotency_key,priority:2"`
|
|
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_activity_idempotency_key,priority:3"`
|
|
IdempotencyKey string `gorm:"column:idempotency_key;size:128;uniqueIndex:uk_activity_idempotency_key,priority:4"`
|
|
RequestHash string `gorm:"column:request_hash;size:64"`
|
|
BusinessNo string `gorm:"column:business_no;size:64;index:idx_activity_idempotency_business"`
|
|
Status string `gorm:"column:status;size:32;index:idx_activity_idempotency_status"`
|
|
ResponseJSON string `gorm:"column:response_json;type:longtext"`
|
|
ErrorMessage string `gorm:"column:error_message;size:1024"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
// TableName returns the activity idempotency table name.
|
|
func (ActivityIdempotency) TableName() string { return "activity_idempotency" }
|