package com.coder.purchase.order.dto;

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

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PurchaseOrderDTO {

    private String purchaseOrderId;

    /* BASIC DETAILS */
    private String purchaseOrderNumber;
    private String purchaseOrderDate;
    private String expectedDeliveryDate;

    private String vendorId;
    private String vendorName;
    private String vendorContact;
    private String vendorGSTNo;
    private String shippingAddress;

    /* ASSET DETAILS */
    private String assetType;
    private String assetMake;
    private String assetModel;

    /* PRICING */
    private Integer quantity;
    private BigDecimal unitPrice;
    private BigDecimal discount;
    private BigDecimal gst;

    /* CALCULATED */
    private BigDecimal subTotal;
    private BigDecimal totalTax;
    private BigDecimal totalDiscount;
    private BigDecimal grandTotal;
    private BigDecimal advancePaid;
    private BigDecimal balanceAmount;

    /* PAYMENT */
    private String paymentStatus;
    private String paymentMode;
    private String transactionReference;
    private LocalDate paymentDueDate;

    /* APPROVAL */
    private String approvedBy;
    private LocalDate approvedDate;
    private String remarks;
    private String poStatus;

    /* AUDIT */
    private String createdBy;
    private LocalDateTime createdDate;
    private LocalDateTime updatedDate;
    private String status;
}