using YD_Event.Core.Enum;
namespace YD_Event.Core.Entities;
///
/// 普通用户表 (实名信息)
///
[SugarTable("AppUser")]
public class AppUser : Entity, ISoftDelete, ICreatedUserId, ICreatedTime, IUpdatedUserId, IUpdatedTime, IAvailability
{
///
/// 关联的 AuthAccount ID (如果是纯线下人员,此字段可能为空)
///
[SugarColumn(IsNullable = true)]
public long? UserId { get; set; }
///
/// 关联商户ID(单位账号)
///
[SugarColumn(IsNullable = true)]
public long? MerchantId { get; set; }
///
/// 人员类型:0-普通用户,1-运动员,2-教练,3-领队
///
public PersonType PersonType { get; set; }
///
/// 技能等级(教练特有)
///
[SugarColumn(Length = 64, IsNullable = true)]
public string? SkillLevel { get; set; }
///
/// 认证状态(教练特有):0-未认证,1-已认证
///
[SugarColumn(IsNullable = true)]
public int? CertificationStatus { get; set; }
///
/// 昵称 (来自微信等第三方)
///
[SugarColumn(Length = 64, IsNullable = true)]
public string? NickName { get; set; }
///
/// 头像 (来自微信等第三方)
///
[SugarColumn(Length = 512, IsNullable = true)]
public string? Avatar { get; set; }
///
/// 姓名
///
[SugarColumn(Length = 64)]
public string Name { get; set; }
///
/// 性别
///
public Gender Gender { get; set; }
///
/// 年龄
///
public int Age { get; set; }
///
/// 出生日期
///
[SugarColumn(IsNullable = true)]
public DateTime? BirthDate { get; set; }
///
/// 联系电话
///
[SugarColumn(Length = 20)]
public string Mobile { get; set; }
///
/// 身份证号码
///
[SugarColumn(Length = 20)]
public string IdCardNumber { get; set; }
///
/// 身份证图片URL
///
[SugarColumn(Length = 512)]
public string? IdCardImageUrl { get; set; }
///
/// 审核状态
///
public AuditStatus AuditStatus { get; set; }
///
/// 审核备注
///
[SugarColumn(Length = 512, IsNullable = true)]
public string? AuditRemark { get; set; }
///
/// 备注
///
[SugarColumn(Length = 512, IsNullable = true)]
public string? Remark { get; set; }
///
/// 可用状态
///
public AvailabilityStatus Status { get; set; }
///
/// 标记删除
///
public bool DeleteMark { get; set; }
///
/// 创建人
///
public long CreatedUserId { get; set; }
///
/// 创建时间
///
public DateTime CreatedTime { get; set; }
///
/// 更新人
///
public long? UpdatedUserId { get; set; }
///
/// 更新时间
///
public DateTime? UpdatedTime { get; set; }
}