package com.mall.order.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Schema(name = "OrderReturnApplyDTO对象", title = "订单退货申请", description = "订单退货申请的DTO对象")
public class OrderReturnApplyDto {

    @Schema(name = "id", title = "id")
    private Long id;

    @Schema(name = "orderId", title = "order_id")
    private Long orderId;

    @Schema(name = "skuId", title = "退货商品id")
    private Long skuId;

    @Schema(name = "orderSn", title = "订单编号")
    private String orderSn;

    @Schema(name = "createTime", title = "申请时间")
    private LocalDateTime createTime;

    @Schema(name = "memberUsername", title = "会员用户名")
    private String memberUsername;

    @Schema(name = "returnAmount", title = "退款金额")
    private BigDecimal returnAmount;

    @Schema(name = "returnName", title = "退货人姓名")
    private String returnName;

    @Schema(name = "returnPhone", title = "退货人电话")
    private String returnPhone;

    @Schema(name = "status", title = "申请状态[0->待处理；1->退货中；2->已完成；3->已拒绝]")
    private Boolean status;

    @Schema(name = "handleTime", title = "处理时间")
    private LocalDateTime handleTime;

    @Schema(name = "skuImg", title = "商品图片")
    private String skuImg;

    @Schema(name = "skuName", title = "商品名称")
    private String skuName;

    @Schema(name = "skuBrand", title = "商品品牌")
    private String skuBrand;

    @Schema(name = "skuAttrsVals", title = "商品销售属性(JSON)")
    private String skuAttrsVals;

    @Schema(name = "skuCount", title = "退货数量")
    private Integer skuCount;

    @Schema(name = "skuPrice", title = "商品单价")
    private BigDecimal skuPrice;

    @Schema(name = "skuRealPrice", title = "商品实际支付单价")
    private BigDecimal skuRealPrice;

    @Schema(name = "reason", title = "原因")
    private String reason;

    @Schema(name = "description述", title = "描述")
    private String description述;

    @Schema(name = "descPics", title = "凭证图片，以逗号隔开")
    private String descPics;

    @Schema(name = "handleNote", title = "处理备注")
    private String handleNote;

    @Schema(name = "handleMan", title = "处理人员")
    private String handleMan;

    @Schema(name = "receiveMan", title = "收货人")
    private String receiveMan;

    @Schema(name = "receiveTime", title = "收货时间")
    private LocalDateTime receiveTime;

    @Schema(name = "receiveNote", title = "收货备注")
    private String receiveNote;

    @Schema(name = "receivePhone", title = "收货电话")
    private String receivePhone;

    @Schema(name = "companyAddress", title = "公司收货地址")
    private String companyAddress;

}