159 lines
9.4 KiB
Go
159 lines
9.4 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// TaskCenterConfig 保存任务中心的系统级开关和时区配置。
|
|
type TaskCenterConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_config_sys_origin"`
|
|
Enabled bool `gorm:"column:enabled;index:idx_task_center_config_enabled"`
|
|
Timezone string `gorm:"column:timezone;size:64"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterConfig) TableName() string { return "task_center_config" }
|
|
|
|
// TaskCenterTaskConfig 保存单个任务定义。
|
|
type TaskCenterTaskConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
ConfigID int64 `gorm:"column:config_id;index:idx_task_center_task_config_id"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_task_code,priority:1;index:idx_task_center_task_sys_category"`
|
|
TaskCode string `gorm:"column:task_code;size:64;uniqueIndex:uk_task_center_task_code,priority:2"`
|
|
TaskCategory string `gorm:"column:task_category;size:32;index:idx_task_center_task_sys_category"`
|
|
Enabled bool `gorm:"column:enabled;index:idx_task_center_task_enabled"`
|
|
TaskName string `gorm:"column:task_name;size:255"`
|
|
TaskDesc string `gorm:"column:task_desc;size:255"`
|
|
ConditionType string `gorm:"column:condition_type;size:64;index:idx_task_center_task_condition"`
|
|
TargetValue int64 `gorm:"column:target_value"`
|
|
TargetUnit string `gorm:"column:target_unit;size:32"`
|
|
RewardGold int64 `gorm:"column:reward_gold"`
|
|
JumpType string `gorm:"column:jump_type;size:64"`
|
|
JumpPage string `gorm:"column:jump_page;size:512"`
|
|
TaskIcon string `gorm:"column:task_icon;size:512"`
|
|
Cover string `gorm:"column:cover;size:512"`
|
|
SortOrder int `gorm:"column:sort_order;index:idx_task_center_task_sort"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterTaskConfig) TableName() string { return "task_center_task_config" }
|
|
|
|
// TaskCenterConditionJumpConfig 保存任务条件对应的跳转配置。
|
|
type TaskCenterConditionJumpConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
ConfigID int64 `gorm:"column:config_id;index:idx_task_center_condition_jump_config_id"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_condition_jump,priority:1;index:idx_task_center_condition_jump_sys_category"`
|
|
TaskCategory string `gorm:"column:task_category;size:32;uniqueIndex:uk_task_center_condition_jump,priority:2;index:idx_task_center_condition_jump_sys_category"`
|
|
ConditionType string `gorm:"column:condition_type;size:64;uniqueIndex:uk_task_center_condition_jump,priority:3;index:idx_task_center_condition_jump_condition"`
|
|
JumpType string `gorm:"column:jump_type;size:64"`
|
|
JumpPage string `gorm:"column:jump_page;size:512"`
|
|
SortOrder int `gorm:"column:sort_order;index:idx_task_center_condition_jump_sort"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterConditionJumpConfig) TableName() string {
|
|
return "task_center_condition_jump_config"
|
|
}
|
|
|
|
// TaskCenterUserProgress 保存用户在某个任务周期内的进度。
|
|
type TaskCenterUserProgress struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_user_progress,priority:1;index:idx_task_center_progress_user"`
|
|
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_task_center_user_progress,priority:2;index:idx_task_center_progress_user"`
|
|
TaskID int64 `gorm:"column:task_id;uniqueIndex:uk_task_center_user_progress,priority:3;index:idx_task_center_progress_task"`
|
|
TaskCode string `gorm:"column:task_code;size:64;index:idx_task_center_progress_task_code"`
|
|
TaskCategory string `gorm:"column:task_category;size:32"`
|
|
CycleKey string `gorm:"column:cycle_key;size:32;uniqueIndex:uk_task_center_user_progress,priority:4;index:idx_task_center_progress_cycle"`
|
|
ConditionType string `gorm:"column:condition_type;size:64"`
|
|
CompletedValue int64 `gorm:"column:completed_value"`
|
|
TargetValue int64 `gorm:"column:target_value"`
|
|
Status string `gorm:"column:status;size:32;index:idx_task_center_progress_status"`
|
|
RewardCollected bool `gorm:"column:reward_collected"`
|
|
ClaimedAt *time.Time `gorm:"column:claimed_at"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterUserProgress) TableName() string { return "task_center_user_progress" }
|
|
|
|
// TaskCenterEvent 保存内部业务事件和命中的任务流水。
|
|
type TaskCenterEvent struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_task_center_event_sys"`
|
|
EventID string `gorm:"column:event_id;size:128;uniqueIndex:uk_task_center_event_task,priority:1;index:idx_task_center_event_id"`
|
|
EventType string `gorm:"column:event_type;size:64;index:idx_task_center_event_type"`
|
|
UserID int64 `gorm:"column:user_id;index:idx_task_center_event_user"`
|
|
TaskID int64 `gorm:"column:task_id;uniqueIndex:uk_task_center_event_task,priority:2"`
|
|
TaskCode string `gorm:"column:task_code;size:64;index:idx_task_center_event_task_code"`
|
|
TaskCategory string `gorm:"column:task_category;size:32"`
|
|
CycleKey string `gorm:"column:cycle_key;size:32"`
|
|
DeltaValue int64 `gorm:"column:delta_value"`
|
|
CompletedValue int64 `gorm:"column:completed_value"`
|
|
RawJSON string `gorm:"column:raw_json;type:text"`
|
|
OccurredAt time.Time `gorm:"column:occurred_at;index:idx_task_center_event_occurred"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterEvent) TableName() string { return "task_center_event" }
|
|
|
|
// TaskCenterEventDedup 保存业务事件幂等记录。
|
|
type TaskCenterEventDedup struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_event_dedup,priority:1"`
|
|
EventID string `gorm:"column:event_id;size:128;uniqueIndex:uk_task_center_event_dedup,priority:2"`
|
|
EventType string `gorm:"column:event_type;size:64"`
|
|
UserID int64 `gorm:"column:user_id"`
|
|
Status string `gorm:"column:status;size:32;index:idx_task_center_event_dedup_status"`
|
|
FailureReason string `gorm:"column:failure_reason;size:512"`
|
|
CreateTime time.Time `gorm:"column:create_time;index:idx_task_center_event_dedup_create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterEventDedup) TableName() string { return "task_center_event_dedup" }
|
|
|
|
// TaskCenterEventArchiveOutbox 保存待归档到 COS 的原始事件。
|
|
type TaskCenterEventArchiveOutbox struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_task_center_archive_event,priority:1"`
|
|
EventID string `gorm:"column:event_id;size:128;uniqueIndex:uk_task_center_archive_event,priority:2"`
|
|
EventType string `gorm:"column:event_type;size:64"`
|
|
UserID int64 `gorm:"column:user_id"`
|
|
OccurredAt time.Time `gorm:"column:occurred_at"`
|
|
RawJSON string `gorm:"column:raw_json;type:text"`
|
|
Status string `gorm:"column:status;size:32;index:idx_task_center_archive_status_time,priority:1"`
|
|
RetryCount int `gorm:"column:retry_count"`
|
|
COSKey string `gorm:"column:cos_key;size:512"`
|
|
FailureReason string `gorm:"column:failure_reason;size:512"`
|
|
CreateTime time.Time `gorm:"column:create_time;index:idx_task_center_archive_status_time,priority:2"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
ArchivedAt *time.Time `gorm:"column:archived_at"`
|
|
}
|
|
|
|
func (TaskCenterEventArchiveOutbox) TableName() string {
|
|
return "task_center_event_archive_outbox"
|
|
}
|
|
|
|
// TaskCenterClaimRecord 保存任务奖励领取记录。
|
|
type TaskCenterClaimRecord struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_task_center_claim_sys"`
|
|
UserID int64 `gorm:"column:user_id;index:idx_task_center_claim_user"`
|
|
TaskID int64 `gorm:"column:task_id;index:idx_task_center_claim_task"`
|
|
TaskCode string `gorm:"column:task_code;size:64;index:idx_task_center_claim_task_code"`
|
|
TaskName string `gorm:"column:task_name;size:255"`
|
|
TaskCategory string `gorm:"column:task_category;size:32"`
|
|
CycleKey string `gorm:"column:cycle_key;size:32;index:idx_task_center_claim_cycle"`
|
|
RewardGold int64 `gorm:"column:reward_gold"`
|
|
WalletEventID string `gorm:"column:wallet_event_id;size:160;uniqueIndex:uk_task_center_claim_wallet_event"`
|
|
Status string `gorm:"column:status;size:32;index:idx_task_center_claim_status"`
|
|
FailureReason string `gorm:"column:failure_reason;size:512"`
|
|
ClaimedAt *time.Time `gorm:"column:claimed_at"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
func (TaskCenterClaimRecord) TableName() string { return "task_center_claim_record" }
|