using System.ComponentModel.DataAnnotations; namespace YD_Event.Application.Client.Dtos; public class WeChatLoginInput { /// /// 微信临时授权码 /// [Required(ErrorMessage = "code不能为空")] public string Code { get; set; } /// /// 加密数据 /// [Required(ErrorMessage = "encryptedData不能为空")] public string EncryptedData { get; set; } /// /// 初始向量 /// [Required(ErrorMessage = "iv不能为空")] public string Iv { get; set; } /// /// 原始数据 /// [Required(ErrorMessage = "rawData不能为空")] public string RawData { get; set; } /// /// 签名 /// [Required(ErrorMessage = "signature不能为空")] public string Signature { get; set; } } public class WeChatLoginOutput { public string Openid { get; set; } public string SessionKey { get; set; } public string AccessToken { get; set; } public string RefreshToken { get; set; } public int ExpiresIn { get; set; } public object UserInfo { get; set; } // 简化的用户信息对象 } public class WeChatRegisterInput { /// /// OpenId /// [Required(ErrorMessage = "openid不能为空")] public string Openid { get; set; } /// /// 加密数据 /// [Required(ErrorMessage = "encryptedData不能为空")] public string EncryptedData { get; set; } /// /// 初始向量 /// [Required(ErrorMessage = "iv不能为空")] public string Iv { get; set; } /// /// 原始数据 /// [Required(ErrorMessage = "rawData不能为空")] public string RawData { get; set; } /// /// 签名 /// [Required(ErrorMessage = "signature不能为空")] public string Signature { get; set; } /// /// 邀请码 (可选) /// public string? InviteCode { get; set; } } public class WeChatRegisterOutput { public long UserId { get; set; } public string Nickname { get; set; } public string AvatarUrl { get; set; } public DateTime RegisterTime { get; set; } } public class WeChatResetPasswordInput { [Required(ErrorMessage = "openid不能为空")] public string Openid { get; set; } [Required(ErrorMessage = "encryptedData不能为空")] public string EncryptedData { get; set; } [Required(ErrorMessage = "iv不能为空")] public string Iv { get; set; } public string? Email { get; set; } public string? SmsCode { get; set; } } public class WeChatResetPasswordOutput { public string ResetToken { get; set; } public DateTime ExpireTime { get; set; } public string SendChannel { get; set; } // "email" or "sms" } public class WeChatUserInfo { public string OpenId { get; set; } public string NickName { get; set; } public int Gender { get; set; } public string City { get; set; } public string Province { get; set; } public string Country { get; set; } public string AvatarUrl { get; set; } public string UnionId { get; set; } public Watermark Watermark { get; set; } } public class Watermark { public long Timestamp { get; set; } public string Appid { get; set; } }