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" }