package model import "time" // InviteCampaignConfig 保存邀请活动主配置。 type InviteCampaignConfig struct { ID int64 `gorm:"column:id;primaryKey"` // 配置主键 SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_campaign_sys_origin"` // 系统标识 Enabled bool `gorm:"column:enabled"` // 活动开关 DownloadURL string `gorm:"column:download_url;size:512"` // 下载链接 ShareTitle string `gorm:"column:share_title;size:255"` // 分享标题 ShareDesc string `gorm:"column:share_desc;size:255"` // 分享描述 ServiceContact string `gorm:"column:service_contact;size:255"` // 客服联系方式 Timezone string `gorm:"column:timezone;size:64"` // 活动时区 AntiCheatSameIPOnce bool `gorm:"column:anti_cheat_same_ip_once"` // 同 IP 仅允许命中一次 AntiCheatSameDeviceOnce bool `gorm:"column:anti_cheat_same_device_once"` // 同设备仅允许命中一次 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 CreateUser *int64 `gorm:"column:create_user"` // 创建用户 UpdateUser *int64 `gorm:"column:update_user"` // 更新用户 } // TableName 返回邀请活动配置表名。 func (InviteCampaignConfig) TableName() string { return "invite_campaign_config" } // InviteCampaignRewardRule 保存邀请活动奖励规则。 type InviteCampaignRewardRule struct { ID int64 `gorm:"column:id;primaryKey"` // 规则主键 SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_rule_sys_type_sort,priority:1"` // 系统标识 RuleType string `gorm:"column:rule_type;size:32;index:idx_invite_rule_sys_type_sort,priority:2"` // 规则类型 ThresholdValue int64 `gorm:"column:threshold_value"` // 达标阈值 GoldAmount int64 `gorm:"column:gold_amount"` // 金币奖励 RewardGroupID *int64 `gorm:"column:reward_group_id"` // 道具奖励组 ID Enabled bool `gorm:"column:enabled"` // 规则是否启用 Sort int `gorm:"column:sort;index:idx_invite_rule_sys_type_sort,priority:3"` // 展示排序 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 CreateUser *int64 `gorm:"column:create_user"` // 创建用户 UpdateUser *int64 `gorm:"column:update_user"` // 更新用户 } // TableName 返回邀请活动奖励规则表名。 func (InviteCampaignRewardRule) TableName() string { return "invite_campaign_reward_rule" } // InviteCampaignRelation 记录邀请人和被邀请人的绑定关系。 type InviteCampaignRelation struct { ID int64 `gorm:"column:id;primaryKey"` // 关系主键 SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_relation_sys_inviter,priority:1;index:uk_invite_relation_invitee,priority:1,unique"` // 系统标识 InviterUserID int64 `gorm:"column:inviter_user_id;index:idx_invite_relation_sys_inviter,priority:2"` // 邀请人用户 ID InviteeUserID int64 `gorm:"column:invitee_user_id;index:uk_invite_relation_invitee,priority:2,unique"` // 被邀请人用户 ID InviteCode string `gorm:"column:invite_code;size:32"` // 绑定时使用的邀请码 BindIP string `gorm:"column:bind_ip;size:128;index:idx_invite_relation_ip"` // 绑定 IP DeviceFingerprint string `gorm:"column:device_fingerprint;size:255;index:idx_invite_relation_device"` // 设备指纹 EligibleStatus string `gorm:"column:eligible_status;size:32"` // 是否符合奖励资格 BlockReason string `gorm:"column:block_reason;size:255"` // 被风控拦截原因 BindTime time.Time `gorm:"column:bind_time"` // 绑定时间 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回邀请关系表名。 func (InviteCampaignRelation) TableName() string { return "invite_campaign_relation" } // InviteCampaignInviteeProgress 维护被邀请人的充值进度与有效状态。 type InviteCampaignInviteeProgress struct { ID int64 `gorm:"column:id;primaryKey"` // 进度主键 RelationID int64 `gorm:"column:relation_id;uniqueIndex:uk_invitee_progress_relation"` // 关联邀请关系 ID SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识 InviterUserID int64 `gorm:"column:inviter_user_id;index:idx_invitee_progress_inviter"` // 邀请人用户 ID InviteeUserID int64 `gorm:"column:invitee_user_id;uniqueIndex:uk_invitee_progress_invitee"` // 被邀请人用户 ID TotalRecharge int64 `gorm:"column:total_recharge_coins"` // 累计充值金币 ValidUser bool `gorm:"column:valid_user"` // 是否已成为有效用户 ValidTime *time.Time `gorm:"column:valid_time"` // 成为有效用户的时间 RewardedRuleIDs string `gorm:"column:rewarded_rule_ids;size:255"` // 已发放的规则 ID 集合 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回被邀请人进度表名。 func (InviteCampaignInviteeProgress) TableName() string { return "invite_campaign_invitee_progress" } // InviteCampaignMonthlyProgress 汇总邀请人当前任务周期邀请进展。 type InviteCampaignMonthlyProgress struct { ID int64 `gorm:"column:id;primaryKey"` // 统计主键 SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_monthly_progress,priority:1"` // 系统标识 InviterUserID int64 `gorm:"column:inviter_user_id;uniqueIndex:uk_invite_monthly_progress,priority:2"` // 邀请人用户 ID MonthKey string `gorm:"column:month_key;size:16;uniqueIndex:uk_invite_monthly_progress,priority:3"` // 任务周期标识 InviteCount int64 `gorm:"column:invite_count"` // 邀请人数 ValidUserCount int64 `gorm:"column:valid_user_count"` // 有效用户数 TotalRecharge int64 `gorm:"column:total_recharge_coins"` // 累计充值金币 RewardGoldCoins int64 `gorm:"column:reward_gold_coins"` // 累计发放金币 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回邀请任务周期进度表名。 func (InviteCampaignMonthlyProgress) TableName() string { return "invite_campaign_monthly_progress" } // InviteCampaignTaskClaim 记录任务奖励领取行为,防止重复领取。 type InviteCampaignTaskClaim struct { ID int64 `gorm:"column:id;primaryKey"` // 领取记录主键 SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_task_claim,priority:1"` // 系统标识 InviterUserID int64 `gorm:"column:inviter_user_id;uniqueIndex:uk_invite_task_claim,priority:2"` // 邀请人用户 ID MonthKey string `gorm:"column:month_key;size:16;uniqueIndex:uk_invite_task_claim,priority:3"` // 任务周期标识 RuleID int64 `gorm:"column:rule_id;uniqueIndex:uk_invite_task_claim,priority:4"` // 规则 ID ClaimTime time.Time `gorm:"column:claim_time"` // 领取时间 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回邀请任务领取表名。 func (InviteCampaignTaskClaim) TableName() string { return "invite_campaign_task_claim" } // InviteCampaignRewardLog 记录邀请活动金币或道具发奖明细。 type InviteCampaignRewardLog struct { ID int64 `gorm:"column:id;primaryKey"` // 发奖日志主键 SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_reward_target"` // 系统标识 RelationID *int64 `gorm:"column:relation_id"` // 关联邀请关系 ID InviterUserID *int64 `gorm:"column:inviter_user_id"` // 邀请人用户 ID InviteeUserID *int64 `gorm:"column:invitee_user_id"` // 被邀请人用户 ID TargetUserID int64 `gorm:"column:target_user_id;index:idx_invite_reward_target"` // 奖励接收用户 ID RuleID *int64 `gorm:"column:rule_id"` // 命中的规则 ID RewardScene string `gorm:"column:reward_scene;size:32"` // 奖励场景 BusinessKey string `gorm:"column:business_key;size:128;uniqueIndex:uk_invite_reward_business"` // 业务幂等键 GoldAmount int64 `gorm:"column:gold_amount"` // 金币奖励数 RewardGroupID *int64 `gorm:"column:reward_group_id"` // 奖励组 ID Status string `gorm:"column:status;size:32"` // 发奖状态 ErrorMessage string `gorm:"column:error_message;size:255"` // 错误信息 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回邀请发奖日志表名。 func (InviteCampaignRewardLog) TableName() string { return "invite_campaign_reward_log" } // InviteCampaignRechargeEvent 保存被邀请人的充值事件,用于累计进度和奖励判定。 type InviteCampaignRechargeEvent struct { ID int64 `gorm:"column:id;primaryKey"` // 充值事件主键 SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识 OrderID string `gorm:"column:order_id;size:128;uniqueIndex:uk_invite_recharge_order"` // 订单 ID InviterUserID *int64 `gorm:"column:inviter_user_id"` // 邀请人用户 ID InviteeUserID int64 `gorm:"column:invitee_user_id"` // 被邀请人用户 ID RechargeCoins int64 `gorm:"column:recharge_coins"` // 本次充值金币 PayTime time.Time `gorm:"column:pay_time"` // 支付时间 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回邀请充值事件表名。 func (InviteCampaignRechargeEvent) TableName() string { return "invite_campaign_recharge_event" }