package com.haha.entity.dto;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
public class ShopArchiveCreateDTO {

    @NotNull(message = "门店ID不能为空")
    private Long shopId;

    @NotBlank(message = "门店名称不能为空")
    private String shopName;

    private String shopAddress;

    private String venueType;

    private String cooperationMode;

    private String partyBSalesman;

    private String partyBSalesmanPhone;

    private String partyACompany;

    private String partyAManager;

    private String partyAManagerPhone;

    private String businessStatus;

    private String remark;

    private String contractNo;

    private LocalDate contractSignDate;

    private LocalDate contractStartDate;

    private LocalDate contractEndDate;

    private String contractStatus;

    private LocalDate rentStartDate;

    private BigDecimal monthlyRent;

    private Integer rentFreeDays;

    private Integer rentPayDeadlineDay;

    private BigDecimal depositAmount;

    private String depositStatus;

    private BigDecimal depositPaidAmount;

    private String depositRefundCondition;

    private String billingMode;

    private BigDecimal electricityPrice;

    private String electricityShareRule;

    private String commissionBaseType;

    private BigDecimal commissionBase;

    private BigDecimal commissionRate;

    private BigDecimal commissionMinGuarantee;

    private Integer commissionPeriodMonths;

    private String paymentCycle;

    private LocalDate terminationDate;

    private String terminationRemark;

    private String paymentMethod;

    private String payeeAccountName;

    private String payeeBankName;

    private String payeeBankAccount;

    private String taxpayerId;

    private String invoiceType;

    private BigDecimal invoiceTaxRate;

    @Valid
    private List<FixedAssetDTO> fixedAssets;

    @Valid
    private List<AttachmentDTO> attachments;
}
