package com.erp.purchase.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;

import java.util.List;

/**
 * 供应商DTO
 */
public class SupplierDTO {

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class CreateRequest {
        private String supplierCode;
        private String name;
        private String contact;
        private String phone;
        private String email;
        private String address;
        private String status;
        private java.math.BigDecimal taxRate;
        private String paymentMethod;
        private Integer paymentPeriod;
        private String bankName;
        private String bankAccount;
        private String bankBranch;
        private String creditCode;
        private String remark;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class UpdateRequest {
        private Long id;
        private String name;
        private String contact;
        private String phone;
        private String email;
        private String address;
        private String status;
        private java.math.BigDecimal taxRate;
        private String paymentMethod;
        private Integer paymentPeriod;
        private String bankName;
        private String bankAccount;
        private String bankBranch;
        private String creditCode;
        private String remark;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class QueryRequest {
        private String keyword;
        private String status;
        private int page = 1;
        private int limit = 20;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class VO {
        private Long id;
        private String supplierCode;
        private String name;
        private String contact;
        private String phone;
        private String email;
        private String address;
        private String status;
        private String statusDesc;
        private java.math.BigDecimal taxRate;
        private String paymentMethod;
        private Integer paymentPeriod;
        private String bankName;
        private String bankAccount;
        private String bankBranch;
        private String creditCode;
        private String remark;
        private java.time.LocalDateTime createTime;
    }
}
