using System.ComponentModel.DataAnnotations;
using YD_Event.Core.Enum;
using SqlSugar;
namespace YD_Event.Application.Client.Dtos;
///
/// 通用分页输入
///
public class MyPageInput : Pagination
{
}
///
/// 个人中心-首页信息
///
public class MyProfileDto
{
///
/// 昵称
///
public string NickName { get; set; }
///
/// 头像
///
public string Avatar { get; set; }
///
/// 手机号
///
public string Mobile { get; set; }
///
/// 积分
///
public int Points { get; set; }
///
/// 证书数量
///
public int CertificateCount { get; set; }
///
/// 实名认证状态:0-未认证,1-已认证,2-审核中
///
public int AuthStatus { get; set; }
///
/// 所在单位
///
public string? MerchantName { get; set; }
///
/// 性别:0-未知,1-男,2-女
///
public int? Gender { get; set; }
///
/// 出生日期
///
public DateTime? BirthDate { get; set; }
}
///
/// 个人中心-实名认证信息
///
public class MyAuthInfoDto
{
///
/// 认证类型:1-身份证,2-护照
///
public int AuthType { get; set; }
///
/// 姓名
///
public string Name { get; set; }
///
/// 手机号
///
public string Mobile { get; set; }
///
/// 性别
///
public int? Gender { get; set; }
///
/// 出生日期
///
public DateTime? BirthDate { get; set; }
///
/// 身份证号(认证类型1时使用)
///
public string? IdCardNumber { get; set; }
///
/// 身份证正面图片(认证类型1时使用)
///
public string? IdCardImageUrl { get; set; }
///
/// 身份证背面图片(认证类型1时使用)
///
public string? IdCardBackImageUrl { get; set; }
///
/// 护照图片(认证类型2时使用)
///
public string? PassportPhotoUrl { get; set; }
///
/// 审核状态
///
public AuditStatus AuditStatus { get; set; }
///
/// 审核备注
///
public string? AuditRemark { get; set; }
}
///
/// 提交实名认证
///
public class SubmitAuthInput
{
///
/// 认证类型:1-身份证,2-护照
///
[Required(ErrorMessage = "认证类型不能为空")]
public int AuthType { get; set; }
///
/// 姓名
///
[Required(ErrorMessage = "姓名不能为空")]
[MaxLength(50, ErrorMessage = "姓名不能超过50个字符")]
public string Name { get; set; }
///
/// 手机号
///
[Required(ErrorMessage = "手机号不能为空")]
[RegularExpression(@"^1[3-9]\d{9}$", ErrorMessage = "请输入正确的手机号格式")]
public string Mobile { get; set; }
///
/// 手机号验证码
///
[Required(ErrorMessage = "手机号验证码不能为空")]
public string SmsCode { get; set; }
///
/// 性别(认证类型2时需要)
///
public int? Gender { get; set; }
///
/// 出生日期(认证类型2时需要)
///
public DateTime? BirthDate { get; set; }
///
/// 身份证号(认证类型1时必填)
///
[MaxLength(20, ErrorMessage = "身份证号不能超过20个字符")]
public string? IdCardNumber { get; set; }
///
/// 身份证正面图片(认证类型1时必填)
///
[MaxLength(500, ErrorMessage = "图片URL不能超过500个字符")]
public string? IdCardImageUrl { get; set; }
///
/// 身份证背面图片(认证类型1时必填)
///
[MaxLength(500, ErrorMessage = "图片URL不能超过500个字符")]
public string? IdCardBackImageUrl { get; set; }
///
/// 护照图片(认证类型2时必填)
///
[MaxLength(500, ErrorMessage = "图片URL不能超过500个字符")]
public string? PassportPhotoUrl { get; set; }
}
///
/// 个人中心-我的团队
///
public class MyTeamDto
{
///
/// 团队ID
///
public long Id { get; set; }
///
/// 团队名称
///
public string Name { get; set; }
///
/// 队员数量
///
public int MemberCount { get; set; }
///
/// 是否队长
///
public bool IsLeader { get; set; }
}
///
/// 团队成员
///
public class MyTeamMemberDto
{
///
/// 姓名
///
public string Name { get; set; }
///
/// 性别:0-未知,1-男,2-女
///
public int Gender { get; set; }
///
/// 年龄
///
public int? Age { get; set; }
///
/// 角色:1-运动员,2-教练,3-领队
///
public int PersonType { get; set; }
///
/// 手机号(脱敏)
///
public string? Mobile { get; set; }
}
///
/// 个人中心-团队详情
///
public class MyTeamDetailDto
{
///
/// 团队ID
///
public long Id { get; set; }
///
/// 团队名称
///
public string Name { get; set; }
///
/// 领队信息
///
public MyTeamMemberDto? Leader { get; set; }
///
/// 教练信息
///
public MyTeamMemberDto? Coach { get; set; }
///
/// 创建时间
///
public DateTime CreatedTime { get; set; }
///
/// 队员数量
///
public int MemberCount { get; set; }
///
/// 成员列表
///
public List Members { get; set; } = new List();
}
///
/// 个人中心-我的证书
///
public class MyCertificateDto
{
///
/// 证书ID
///
public long Id { get; set; }
///
/// 赛事名称
///
public string EventName { get; set; }
///
/// 项目名称
///
public string ProjectName { get; set; }
///
/// 组别名称
///
public string GroupName { get; set; }
///
/// 项目-组别(合并显示)
///
public string ProjectGroupDisplay => !string.IsNullOrEmpty(ProjectName) && !string.IsNullOrEmpty(GroupName)
? $"{ProjectName}-{GroupName}"
: ProjectName ?? GroupName ?? "";
///
/// 证书名称
///
public string CertificateName { get; set; }
///
/// 证书URL
///
public string CertificateUrl { get; set; }
///
/// 颁发时间
///
public DateTime? IssuedTime { get; set; }
}
///
/// 我的证书分页输入
///
public class MyCertificatePageInput : MyPageInput
{
///
/// 证书类型筛选:1-个人证书,2-团队证书,不传则查全部
///
public int? Type { get; set; }
}
///
/// 我的证书总览
///
public class MyCertificateOverviewDto
{
///
/// 证书总数
///
public int TotalCount { get; set; }
}
///
/// 个人中心-积分记录
///
public class MyPointsRecordDto
{
///
/// 记录ID
///
public long Id { get; set; }
///
/// 标题
///
public string Title { get; set; }
///
/// 赛事名称
///
public string? EventName { get; set; }
///
/// 项目名称
///
public string? ProjectName { get; set; }
///
/// 组别名称
///
public string? GroupName { get; set; }
///
/// 项目-组别(合并显示)
///
public string ProjectGroupDisplay => !string.IsNullOrEmpty(ProjectName) && !string.IsNullOrEmpty(GroupName)
? $"{ProjectName}-{GroupName}"
: ProjectName ?? GroupName ?? "";
///
/// 名次
///
public int? Rank { get; set; }
///
/// 积分变动值
///
public decimal Points { get; set; }
///
/// 创建时间
///
public DateTime CreatedTime { get; set; }
///
/// 类型 (1-获取,2-消耗)
///
public int Type { get; set; }
}
///
/// 积分记录分页输入
///
public class MyPointsPageInput : MyPageInput
{
///
/// 类型筛选:1-获取,2-消耗,不传则查全部
///
public int? Type { get; set; }
///
/// 单位认证ID筛选,不传则查全部
///
public long? MerchantCertificationId { get; set; }
}
///
/// 我的积分总览
///
public class MyPointsOverviewDto
{
///
/// 总积分
///
public int TotalPoints { get; set; }
}
///
/// 个人中心-我的订单
///
public class MyOrderDto
{
///
/// 订单ID
///
public long Id { get; set; }
///
/// 订单号
///
public string OrderNo { get; set; }
///
/// 赛事名称
///
public string EventName { get; set; }
///
/// 实付金额
///
public decimal ActualAmount { get; set; }
///
/// 退款金额
///
public decimal? RefundAmount { get; set; }
///
/// 订单状态
///
public OrderStatus OrderStatus { get; set; }
///
/// 支付/退款时间
///
public DateTime? PaymentTime { get; set; }
///
/// 创建时间
///
public DateTime CreatedTime { get; set; }
}
///
/// 订单详情-项目项
///
public class MyOrderItemDto
{
///
/// 项目名称
///
public string ProjectName { get; set; }
///
/// 组别名称
///
public string GroupName { get; set; }
///
/// 费用
///
public decimal Fee { get; set; }
}
///
/// 个人中心-订单详情
///
public class MyOrderDetailDto
{
///
/// 订单ID
///
public long Id { get; set; }
///
/// 订单号
///
public string OrderNo { get; set; }
///
/// 赛事名称
///
public string EventName { get; set; }
///
/// 实付金额
///
public decimal ActualAmount { get; set; }
///
/// 退款金额
///
public decimal? RefundAmount { get; set; }
///
/// 退款时间
///
public DateTime? RefundTime { get; set; }
///
/// 订单状态
///
public OrderStatus OrderStatus { get; set; }
///
/// 支付时间
///
public DateTime? PaymentTime { get; set; }
///
/// 支付方式:1-线上,2-线下
///
public int PaymentMethod { get; set; }
///
/// 项目列表
///
public List Items { get; set; } = new List();
}
///
/// 个人中心-参赛记录
///
public class MyRegistrationDto
{
///
/// 报名ID
///
public long Id { get; set; }
///
/// 赛事名称
///
public string EventName { get; set; }
///
/// 团队名称 (个人赛则为个人)
///
public string TeamName { get; set; }
///
/// 报名状态
///
public int Status { get; set; }
///
/// 报名时间
///
public DateTime RegistrationTime { get; set; }
///
/// 报名项目集合
///
public string ProjectNames { get; set; }
}