package com.ruoyi.app.flashdelivery.dto; import java.util.List; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.Data; import java.util.Date; /** 闪送报价请求;帮送/帮取与普通/加急为两个独立维度。 */ @Data public class FlashDeliveryQuoteRequest { /** * 业务场景,必填。 * HELP_SEND 表示帮送,HELP_PICKUP 表示帮取;该字段不表示是否加急。 */ private String serviceType; /** * 配送等级,必填。 * NORMAL 表示普通配送,URGENT 表示一对一加急配送。 */ private String deliveryType; /** 配送车型,必填:1=机车,2=轿车。 */ private Integer vehicleType; /** * 旧单点输入的物品类别;使用pickups数组时不得提交。 * 可选值:DOCUMENT、GIFT、CLOTHING、BEAUTY、DAILY_NECESSITIES、 * FOOD_INGREDIENTS、ELECTRONICS、SMALL_APPLIANCE、OTHER。 */ private String packageType; /** 旧单点输入的物品数量,必须为大于0的整数;使用pickups时不得提交。 */ @JsonDeserialize(using = FlashDeliveryQuantityDeserializer.class) private Integer quantity; /** * 旧单点输入的物品重量范围;使用pickups时不得提交。 * 可选值:UP_TO_5_KG、OVER_5_TO_10_KG、OVER_10_TO_15_KG、OVER_15_TO_20_KG。 */ private String weightRange; /** 物品体积、尺寸或其他规格说明,选填,去除首尾空格后最长 255 个字符。 */ private String specification; /** 骑手小费,必填,单位为整数新台币;没有小费时传 0,不参与加急费计算。 */ private Long tipAmount; /** * 取件方式,选填,默认 NOW。 * NOW 表示立即取件,SCHEDULED 表示预约取件。 */ private String deliveryMode; /** * 预约取件开始时间。 * deliveryMode=SCHEDULED 时必填,必须为当前时间之后且不超过未来三天;NOW 时不得传。 */ private Date scheduledPickupStartAt; /** * 预约取件结束时间。 * deliveryMode=SCHEDULED 时必填,必须比开始时间晚 30 分钟;NOW 时不得传。 */ private Date scheduledPickupEndAt; /** 支付方式选填,缺省现金;服务端按闪送支付闸门校验。 */ private String payType; /** 旧单点取件地址,与pickups数组二选一。 */ private FlashDeliveryAddressRequest pickup; /** 收件联系人、电话、地址、交接方式和经纬度,必填。 */ private FlashDeliveryAddressRequest delivery; /** 按用户顺序提交完整取货点及物品,不能与旧pickup字段同时出现。 */ private List pickups; }