using System.ComponentModel.DataAnnotations; using YD_Event.Core.Enum; namespace YD_Event.Application.AppUser.Dtos; /// /// 普通用户分页查询输入 /// public class AppUserPageInput : Pagination { /// /// 姓名 /// public string? Name { get; set; } /// /// 性别 /// public Gender? Gender { get; set; } /// /// 联系电话 /// public string? Mobile { get; set; } /// /// 审核状态 /// public AuditStatus? AuditStatus { get; set; } /// /// 开始时间 /// public DateTime? StartTime { get; set; } /// /// 结束时间 /// public DateTime? EndTime { get; set; } } /// /// 成员统一查询输入(合并领队、教练、运动员) /// public class MemberQueryInput : Pagination { /// /// 人员类型:1-运动员,2-教练,3-领队 /// [Required(ErrorMessage = "人员类型不能为空")] [EnumDataType(typeof(PersonType), ErrorMessage = "不支持的人员类型")] public PersonType PersonType { get; set; } /// /// 姓名 /// public string? Name { get; set; } /// /// 性别 /// public Gender? Gender { get; set; } /// /// 联系电话 /// public string? Mobile { get; set; } /// /// 身份证号 (运动员常用) /// public string? IdCardNumber { get; set; } /// /// 技能等级(仅教练) /// public string? SkillLevel { get; set; } /// /// 认证状态(仅教练) /// public int? CertificationStatus { get; set; } /// /// 开始注册时间 /// public DateTime? StartTime { get; set; } /// /// 结束注册时间 /// public DateTime? EndTime { get; set; } } /// /// 统一成员输出 /// public class MemberOutput : AppUserOutput { /// /// 人员类型:1-运动员,2-教练,3-领队 /// public PersonType PersonType { get; set; } /// /// 出生日期 /// public DateTime? BirthDate { get; set; } /// /// 年龄 /// 优先使用数据库存储的Age字段,如果不存在则根据BirthDate动态计算 /// public int? Age { get; set; } /// /// 根据出生日期计算年龄的辅助方法 /// public static int? CalculateAgeFromBirthDate(DateTime? birthDate) { if (!birthDate.HasValue) return null; var today = DateTime.Today; var age = today.Year - birthDate.Value.Year; if (birthDate.Value.Date > today.AddYears(-age)) age--; return age; } /// /// 技能等级(教练) /// public string? SkillLevel { get; set; } /// /// 认证状态(教练) /// public int? CertificationStatus { get; set; } } /// /// 创建/更新成员输入 /// public class CreateOrUpdateMemberInput { /// /// 人员类型:1-运动员,2-教练,3-领队 /// [Required(ErrorMessage = "人员类型不能为空")] [EnumDataType(typeof(PersonType), ErrorMessage = "不支持的人员类型")] public PersonType PersonType { get; set; } /// /// ID (更新时必填) /// public long? Id { get; set; } /// /// 姓名 /// [Required(ErrorMessage = "姓名不能为空")] public string Name { get; set; } /// /// 性别 /// [Required(ErrorMessage = "性别不能为空")] public Gender Gender { get; set; } /// /// 身份证号 /// //[Required(ErrorMessage = "身份证号不能为空")] //[RegularExpression(@"(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)", ErrorMessage = "身份证号格式不正确")] public string IdCardNumber { get; set; } /// /// 护照号码(护照认证时使用) /// public string? PassportNumber { get; set; } /// /// 身份证图片URL /// public string? IdCardImageUrl { get; set; } /// /// 身份证背面图片URL /// public string? IdCardBackImageUrl { get; set; } /// /// 护照图片URL /// public string? PassportPhotoUrl { get; set; } /// /// 户口本图片URL /// public string? HouseholdPhotoUrl { get; set; } /// /// 认证类型:1-身份证,2-护照,3-户口本 /// public int AuthType { get; set; } = 1; /// /// 出生日期 (运动员等) /// public DateTime? BirthDate { get; set; } /// /// 年龄 /// public int? Age { get; set; } /// /// 联系电话(非必填,有值时校验手机号格式) /// [RegularExpression(@"^1[3456789]\d{9}$", ErrorMessage = "手机号格式不正确")] public string? Mobile { get; set; } /// /// 技能等级(教练特有) /// public string? SkillLevel { get; set; } /// /// 认证状态(教练特有):0-未认证,1-已认证 /// public int? CertificationStatus { get; set; } /// /// 备注 /// public string? Remark { get; set; } /// /// 验证码(仅新增领队/教练时需要) /// public string? VerificationCode { get; set; } } /// /// 成员状态变更输入 /// public class ChangeMemberStatusInput { /// /// ID /// [Required] public long Id { get; set; } /// /// 状态:1-启用,2-禁用 /// [Required] public AvailabilityStatus Status { get; set; } } /// /// 普通用户输出 /// public class AppUserOutput { /// /// 主键ID /// public long Id { get; set; } /// /// 姓名 /// public string Name { get; set; } /// /// 性别 /// public Gender Gender { get; set; } /// /// 手机号 /// public string Mobile { get; set; } /// /// 身份证号 /// public string IdCardNumber { get; set; } /// /// 护照号码 /// public string? PassportNumber { get; set; } /// /// 身份证图片URL /// public string? IdCardImageUrl { get; set; } /// /// 身份证背面图片URL /// public string? IdCardBackImageUrl { get; set; } /// /// 护照图片URL /// public string? PassportPhotoUrl { get; set; } /// /// 户口本图片URL /// public string? HouseholdPhotoUrl { get; set; } /// /// 认证类型:0-未认证,1-身份证,2-护照,3-户口本 /// public int AuthType { get; set; } /// /// 认证证件图片URL(根据AuthType返回对应证件的图片URL) /// AuthType=1 → IdCardImageUrl /// AuthType=2 → PassportPhotoUrl /// AuthType=3 → HouseholdPhotoUrl /// public string? CertImageUrl { get; set; } /// /// 证件号码(根据AuthType返回:身份证号或护照号) /// public string? CertNumber { get; set; } /// /// 审核状态 /// public AuditStatus AuditStatus { get; set; } /// /// 审核备注 /// public string? AuditRemark { get; set; } /// /// 审核人(后台系统用户ID) /// public long? AuditUserId { get; set; } /// /// 审核时间 /// public DateTime? AuditTime { get; set; } /// /// 创建时间 /// public DateTime CreatedTime { get; set; } } /// /// 审核输入 /// public class AuditInput { /// /// 审核对象ID列表 /// public List Ids { get; set; } /// /// 审核状态 /// public AuditStatus Status { get; set; } /// /// 审核备注 /// public string? Remark { get; set; } }