using System.ComponentModel.DataAnnotations; namespace Store.Shops.Dtos; public class ShopSearchRequest { public int Page { get; set; } = 1; public int PageSize { get; set; } = 50; public string? SearchId { get; set; } public string? SearchUserName { get; set; } public string? SearchLoginName { get; set; } public string? SearchNotes { get; set; } public string? SearchName { get; set; } public string? OperateSubSaName { get; set; } public string[]? ShopIds { get; set; } public string[]? ShopNames { get; set; } public string[]? ShopNotes { get; set; } } public sealed class ShopClientSearchRequest { public int Page { get; set; } = 1; public int PageSize { get; set; } = 500; public string[]? ShopIds { get; set; } } public class ShopIdRequest { [Required(ErrorMessage = "店铺ID不能为空")] public string ShopId { get; set; } = ""; } public sealed class PddTokenRequest { [Required(ErrorMessage = "拼多多商城ID不能为空")] public string MallId { get; set; } = ""; } /// 更新时 null 保留原值,空串清空;归属账号只从当前身份获取。 public sealed class WeidianSaveRequest { [Required(ErrorMessage = "店铺登录名不能为空")] public string LoginName { get; set; } = ""; public string? ShopId { get; set; } public string? NewShopId { get; set; } public string? LoginPass { get; set; } public string? Cookie { get; set; } public string? Cookie2 { get; set; } public string? WdToken { get; set; } public string? MallId { get; set; } public string? ShopAccount { get; set; } public string? SubUserName { get; set; } public string? GroupName { get; set; } public string? Notes { get; set; } public string? LoginStatus { get; set; } } public sealed class WeidianCookieRequest : ShopIdRequest { public string? Cookie { get; set; } public string? WdToken { get; set; } public string? LoginStatus { get; set; } }