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;index:idx_task_center_archive_claim_create,priority:3;index:idx_task_center_archive_claim_stale,priority:3"` 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;index:idx_task_center_archive_claim_create,priority:1;index:idx_task_center_archive_claim_stale,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;index:idx_task_center_archive_claim_create,priority:2"` UpdateTime time.Time `gorm:"column:update_time;index:idx_task_center_archive_claim_stale,priority:2"` 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" }