using SqlSugar; using Volo.Abp.Domain.Entities.Auditing; namespace Yi.Framework.AiHub.Domain.Entities; /// /// 用户邀请码 /// [SugarTable("Ai_InviteCode")] [SugarIndex($"index_{nameof(UserId)}", nameof(UserId), OrderByType.Asc, true)] [SugarIndex($"index_{nameof(Code)}", nameof(Code), OrderByType.Asc, true)] public class InviteCodeAggregateRoot : FullAuditedAggregateRoot { public InviteCodeAggregateRoot() { } public InviteCodeAggregateRoot(Guid userId, string code) { UserId = userId; Code = code; IsUserInvited = false; UsedCount = 0; } /// /// 用户ID(邀请码拥有者) /// public Guid UserId { get; set; } /// /// 邀请码(唯一) /// [SugarColumn(Length = 50)] public string Code { get; set; } = string.Empty; /// /// 邀请码拥有者是否已被他人邀请(被邀请后不可再提供邀请码) /// public bool IsUserInvited { get; set; } /// /// 被使用次数(统计用,一个邀请码可以被多人使用) /// public int UsedCount { get; set; } /// /// 备注信息 /// [SugarColumn(Length = 500, IsNullable = true)] public string? Remark { get; set; } /// /// 标记用户已被邀请 /// public void MarkUserAsInvited() { IsUserInvited = true; } }