51 lines
2.2 KiB
Java
51 lines
2.2 KiB
Java
package com.baiyue.firstleg.dto;
|
|
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import jakarta.validation.constraints.Pattern;
|
|
import jakarta.validation.constraints.Size;
|
|
|
|
/** 费用项目请求模型。 */
|
|
public final class FeeItemDtos {
|
|
private FeeItemDtos() {
|
|
}
|
|
|
|
public record SaveRequest(
|
|
@NotBlank @Size(max = 64) String category,
|
|
@NotBlank @Pattern(regexp = "DOMESTIC|INTERNATIONAL") String tradeScope,
|
|
@Size(max = 50) @Pattern(regexp = "[A-Za-z0-9_-]{1,50}") String feeCode,
|
|
@Pattern(regexp = "BOOKING|CUSTOMS|TRUCKING|CERTIFICATE") String supplierCategory,
|
|
@NotBlank @Size(max = 128) String feeTypeName,
|
|
@NotNull Boolean pickupPayable,
|
|
@NotNull Boolean pickupReceivable,
|
|
@NotNull Boolean warehousePayable,
|
|
@NotNull Boolean warehouseReceivable,
|
|
@NotNull Boolean allocationFee,
|
|
@Size(max = 500) String description
|
|
) {
|
|
public SaveRequest(String category, String tradeScope, String feeCode,
|
|
String feeTypeName, Boolean pickupPayable,
|
|
Boolean pickupReceivable, Boolean warehousePayable,
|
|
Boolean warehouseReceivable, Boolean allocationFee,
|
|
String description) {
|
|
this(category, tradeScope, feeCode, null, feeTypeName, pickupPayable,
|
|
pickupReceivable, warehousePayable, warehouseReceivable,
|
|
allocationFee, description);
|
|
}
|
|
|
|
/** Backward-compatible constructor for callers predating the stable fee code. */
|
|
public SaveRequest(String category, String tradeScope, String feeTypeName,
|
|
Boolean pickupPayable, Boolean pickupReceivable,
|
|
Boolean warehousePayable, Boolean warehouseReceivable,
|
|
Boolean allocationFee, String description) {
|
|
this(category, tradeScope, null, null, feeTypeName, pickupPayable, pickupReceivable,
|
|
warehousePayable, warehouseReceivable, allocationFee, description);
|
|
}
|
|
}
|
|
|
|
public record StatusRequest(
|
|
@NotBlank @Pattern(regexp = "ACTIVE|DISABLED") String status
|
|
) {
|
|
}
|
|
}
|