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;
}