using System.ComponentModel.DataAnnotations; namespace Store.Shops.Dtos; /// 分页与统计选项。 public class PageRequest { /// 页码,从1开始。 public int Page { get; set; } = 1; /// 每页数量,上限500。 public int PageSize { get; set; } = 50; /// 是否跳过总数统计,跳过时总数为-1。 public bool NotCount { get; set; } } /// 微信店铺查询。 public class ShopQueryRequest : ShopSearchRequest { /// 是否补充ERP店铺和商户编号。 public bool IsGetErpShopId { get; set; } /// 兼容旧调用的标志,到期信息始终返回。 public bool IsShowExpire { get; set; } } /// 按登录名定位店铺。 public class LoginRequest { /// 店铺登录名。 [Required(ErrorMessage = "店铺登录名不能为空")] public string LoginName { get; set; } = ""; /// 可选原店铺ID。 public string? ShopId { get; set; } /// 管理员操作的目标账号,普通调用忽略。 public string? ShopUserName { get; set; } } /// 微信店铺新增或部分更新;null保留,空串清空。 public class ShopSaveRequest : LoginRequest { /// 登录密码。 public string? LoginPass { get; set; } /// 登录Cookie。 public string? Cookie { get; set; } /// 第二组Cookie。 public string? Cookie2 { get; set; } /// 风控参数。 public string? AntiContents { get; set; } /// 更新后的店铺ID。 public string? NewShopId { 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 class CookieRequest { /// 店铺登录名。 [Required(ErrorMessage = "店铺登录名不能为空")] public string LoginName { get; set; } = ""; /// 登录Cookie。 public string? Cookie { get; set; } /// 第二组Cookie。 public string? Cookie2 { get; set; } /// 登录状态。 public string? LoginStatus { get; set; } /// 第二组登录状态。 public string? LoginStatus2 { get; set; } /// 微信OpenId。 public string? Openid { get; set; } /// 拼多多用户ID。 public string? PddId { get; set; } } /// 店铺ID批量请求。 public class ShopIdsRequest { /// 店铺ID数组。 [Required(ErrorMessage = "店铺ID数组不能为空")] public string[] ShopIds { get; set; } = []; } /// 设置共享上传额度。 public class QuotaRequest : ShopIdsRequest { /// 剩余额度,不得小于0。 public int RemainCount { get; set; } } /// 批量分配选品操作员。 public class AssignRequest { /// 记录ID数组,优先于登录名。 public int[]? DbIds { get; set; } /// 店铺登录名数组。 public string[]? ShopLoginNames { get; set; } /// 操作员账号,空串表示解除分配。 [Required(AllowEmptyStrings = true, ErrorMessage = "操作员账号不能为null,解除分配请传空串")] public string OperateSubSaName { get; set; } = ""; } /// 查询授权店铺相关ERP商户。 public class ErpRequest : PageRequest { /// 可选店铺ID。 public string? ShopId { get; set; } /// 公司账号ID。 public long? CorporateAccountUserId { get; set; } /// 管理账号ID。 public long? ManageUserId { get; set; } } /// 维护当前用户的店铺默认地址。 public class AddressRequest : ShopIdRequest { /// 省份。 [Required(ErrorMessage = "省份不能为空")] public string ProvinceName { get; set; } = ""; /// 城市。 [Required(ErrorMessage = "城市不能为空")] public string CityName { get; set; } = ""; /// 区县。 [Required(ErrorMessage = "区县不能为空")] public string CountyName { get; set; } = ""; /// 详细地址。 [Required(ErrorMessage = "详细地址不能为空")] public string DetailInfo { get; set; } = ""; /// 收件人电话。 [Required(ErrorMessage = "收件人电话不能为空")] public string TelNumber { get; set; } = ""; /// 收件人姓名。 [Required(ErrorMessage = "收件人姓名不能为空")] public string Receiver { get; set; } = ""; } /// 查询本人默认地址。 public class AddressSearchRequest : PageRequest { /// 可选店铺ID数组。 public string[]? ShopIds { get; set; } } /// 保存订单解密地址。 public class OrderAddressRequest : ShopIdRequest { /// 订单ID。 [Required(ErrorMessage = "订单ID不能为空")] public string OrderId { get; set; } = ""; /// 解密地址内容。 [Required(ErrorMessage = "解密地址内容不能为空")] public string OrderAddress { get; set; } = ""; } /// 按订单查询授权店铺的数据。 public class OrderSearchRequest : PageRequest { /// 订单ID数组,地址查询必填。 public string[]? OrderIds { get; set; } } /// 维护主账号共享采购备注。 public class NoteRequest { /// 商品编码。 [Required(ErrorMessage = "商品编码不能为空")] public string SpuCode { get; set; } = ""; /// 采购备注。 [Required(ErrorMessage = "采购备注不能为空")] public string BuyUrlNotes { get; set; } = ""; /// 可选目标主账号,必须匹配当前主账号。 public string? MainUserName { get; set; } } /// 查询主账号采购备注。 public class NoteSearchRequest : PageRequest { /// 商品编码数组。 [Required(ErrorMessage = "商品编码数组不能为空")] public string[] SpuCodes { get; set; } = []; /// 可选目标主账号。 public string? MainUserName { get; set; } } /// 微信侧拼多多店铺资料。 public class PddSaveRequest : ShopSaveRequest { /// 拼多多商城ID。 public string? MallId { get; set; } } /// 查询运单库存。 public class WaybillSearchRequest : OrderSearchRequest { /// 状态数组:0未使用、1预占、2已使用。 public int[]? Status { get; set; } } /// 新增本人运单库存。 public class WaybillAddRequest { /// 物流公司编码。 [Required(ErrorMessage = "物流公司编码不能为空")] public string DeliveryId { get; set; } = ""; /// 物流公司名称。 [Required(ErrorMessage = "物流公司名称不能为空")] public string DeliveryName { get; set; } = ""; /// 运单号。 [Required(ErrorMessage = "运单号不能为空")] public string WaybillId { get; set; } = ""; /// 预绑定订单ID。 public string? BindOrderId { get; set; } /// 揽收时间,与绑定订单至少填写一个。 public DateTime? WaybillPickupTime { get; set; } } /// 删除未使用运单。 public class WaybillDeleteRequest { /// 运单号数组。 [Required(ErrorMessage = "运单号数组不能为空")] public string[] WaybillIds { get; set; } = []; } /// 为授权店铺订单分配运单。 public class WaybillSelectRequest : ShopIdRequest { /// 订单ID。 [Required(ErrorMessage = "订单ID不能为空")] public string OrderId { get; set; } = ""; /// 订单时间,按次日揽收范围选择。 public DateTime? OrderTime { get; set; } } /// 确认使用或释放预占运单。 public class WaybillUseRequest : WaybillSelectRequest { /// 运单号。 [Required(ErrorMessage = "运单号不能为空")] public string WaybillId { get; set; } = ""; /// 为true时释放,仅允许预占状态释放。 public bool IsRollback { get; set; } } /// 保存授权订单的物流优化结果。 public class OptimizeResultRequest : ShopIdRequest { /// 订单ID。 [Required(ErrorMessage = "订单ID不能为空")] public string OrderId { get; set; } = ""; /// 补发结果。 [Required(ErrorMessage = "补发结果不能为空")] public string OptimizeRst { get; set; } = ""; /// 运单号,null保留。 public string? WaybillId { get; set; } /// 物流公司名称,null保留。 public string? DeliveryName { get; set; } } /// 保存订单物流备注。 public class OptimizeRemarkRequest : ShopIdRequest { /// 订单ID。 [Required(ErrorMessage = "订单ID不能为空")] public string OrderId { get; set; } = ""; /// 备注内容,空串可清空,null不允许。 [Required(AllowEmptyStrings = true, ErrorMessage = "备注不能为null,清空请传空串")] public string Remark { get; set; } = null!; } /// 读取共享微信令牌缓存,仅管理员可调用。 public class TokenRequest { /// 缓存分组ID,默认1。 public int DbId { get; set; } = 1; }