package cn.iocoder.yudao.module.crm.controller.admin.refund.vo; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import static cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_REFUND_TYPE; @Schema(description = "管理后台 - CRM 退费单新增/修改 Request VO") @Data public class CrmRefundSaveReqVO { @Schema(description = "编号", example = "1024") private Long id; @Schema(description = "退费单号(不传则自动生成)") private String refundNo; @Schema(description = "客户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "客户ID不能为空") private Long customerId; @Schema(description = "客户名称") private String customerName; @Schema(description = "合同ID", example = "2048") private Long contractId; @Schema(description = "合同编号") private String contractNo; @Schema(description = "退费类型(电费退费/服务退订/容量退费)", example = "ELECTRICITY") @DictFormat(CRM_REFUND_TYPE) private String refundType; @Schema(description = "退费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "500.00") @NotNull(message = "退费金额不能为空") private BigDecimal refundAmount; @Schema(description = "退费原因") private String refundReason; @Schema(description = "申请用户ID", example = "1") private Long applyUserId; @Schema(description = "申请用户姓名", example = "李工") private String applyUserName; @Schema(description = "申请时间") private LocalDateTime applyTime; @Schema(description = "审批状态(0草稿/10待审批/20通过/30驳回)", example = "0") private Integer auditStatus; @Schema(description = "流程实例ID") private String processInstanceId; @Schema(description = "备注") private String remark; }