using System.ComponentModel.DataAnnotations; namespace SimpleAdmin.Api.WeChat.Dtos; public class WxLoginQrcodeOutput { /// PC 端轮询用的扫码 key(与二维码 scene 一致)。 public string LoginKey { get; set; } = string.Empty; public string QrCodeUrl { get; set; } = string.Empty; public int ExpiresIn { get; set; } = 600; } public class WxLoginStatusOutput { public bool Ready { get; set; } public string? Account { get; set; } } public class WeChatOAuthCodeInput { [Required] public string Code { get; set; } = string.Empty; } public class WeChatOAuthUserInfoOutput { public string Openid { get; set; } = string.Empty; public string? Nickname { get; set; } public int Sex { get; set; } public string? Province { get; set; } public string? City { get; set; } public string? Country { get; set; } public string? Headimgurl { get; set; } public string? Unionid { get; set; } public bool AlreadyBound { get; set; } } public class WeChatProfileInput { [Required] public string Openid { get; set; } = string.Empty; public string? Nickname { get; set; } public string? Avatar { get; set; } public string? Unionid { get; set; } } public class WeChatCustomerRegisterInput { public string? CustomerCode { get; set; } [Required] public string CustomerName { get; set; } = string.Empty; /// 可选;下单前再补全。 [StringLength(16)] public string? Phone { get; set; } /// 可选;下单前再补全。 [EmailAddress] [StringLength(64)] public string? Email { get; set; } [Required] [MinLength(6)] public string Password { get; set; } = string.Empty; /// /// 邀请码(可选)。来自邀请链接 / 二维码 ?ref=,注册时一次性绑定引荐人。 /// public string? InviteCode { get; set; } [Required] public WeChatProfileInput Wechat { get; set; } = new(); } public class WeChatCustomerRegisterOutput { public string CustomerCode { get; set; } = string.Empty; } public class WeChatCustomerBindInput { [Required] public string Account { get; set; } = string.Empty; [Required] public string Password { get; set; } = string.Empty; [Required] public WeChatProfileInput Wechat { get; set; } = new(); }