package com.eksad.masterdata.common.dto; import com.eksad.ddms.common.dto.CreationalSpecificationDTO; import com.eksad.ddms.common.util.status.DataStatus; import com.eksad.masterdata.common.listEnum.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.sql.Time; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.UUID; /** * @author hello world */ @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class PromoDTO { private Boolean isJoinable; private String promoID; private String promoCode; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Jakarta") private Date promoStartDate; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Jakarta") private Date promoEndDate; private String promoName; private String promoSource; private String categoryID; // private CustomerType customerType; // private PromoBookingType promoBookingType; // private PromoCustomerOccupationType customerOccupation; // private PromoGenderCustomerType customerGender; private PromoAhassType ahassType; private PromoAreaType areaType; private PromoLokasiType lokasiType; private PromoProgramType programType; private String kelipatanKM; private Time jamMulai; private Time jamAkhir; private String hariBerlaku; private DataStatus promoStatus; private CreationalSpecificationDTO promoCreationalDTO; private List<PromoUnitBerlakuDTO> listPromoUnitBerlaku; // private List<WorkshopServicePromoDTO> listPromoJasa; private List<PromoDiscountPartDTO> listDiscountPart; private List<ConfigPackageServicePartPromoDTO> listPackageService; private List<PromoAreaDTO> listPromoArea; private List<PromoPosDTO> listPromoPos; private List<PromoAhassDTO> listPromoAhass; private List<PromoCustomerJobDTO> listPromoCustomerJob; // private PromoJasaBengkelType promoJasaBengkelType; private PromoSparepartType promoSparepartType; private PromoPackageServiceType promoPackageServiceType; private String promoCustomer; private Integer jumlahService; private Integer jumlahBerlaku; private Integer jumlahPengulangan; private PromoBerlakuAhassType promoBerlakuAhassType; private String ketentuanSettings; private PromoKetentuanType promoKetentuanType; private Double totalDiscount; @JsonIgnore public PromoDTO getInstance() { return new PromoDTO( Boolean.FALSE, UUID.randomUUID().toString().substring(0, 8).toUpperCase(), UUID.randomUUID().toString().substring(0, 8).toUpperCase(), new Date(), new Date(), "Promo Name", "Main Dealer", "Category ID", // CustomerType.SPESIFIC_CUSTOMER, // PromoBookingType.BOOKING, // PromoCustomerOccupationType.SPESIFIC_JOB, // PromoGenderCustomerType.ALL_GENDER, PromoAhassType.SPESIFIC_AHASS, PromoAreaType.SPESIFIC_AREA, PromoLokasiType.SPESIFIC_LOKASI, PromoProgramType.DISCOUNT, "4000", new Time(System.currentTimeMillis()), new Time(System.currentTimeMillis()), "Senin,Selasa,Rabu,Kamis,Jumat,Sabtu,Minggu", DataStatus.ACTIVE, new CreationalSpecificationDTO(new Date(), "System", new Date(), "System"), Arrays.asList(new PromoUnitBerlakuDTO().getInstance()), // Arrays.asList(new WorkshopServicePromoDTO().getInstance()), Arrays.asList(new PromoDiscountPartDTO().getInstance()), Arrays.asList(new ConfigPackageServicePartPromoDTO().getInstance()), Arrays.asList(new PromoAreaDTO().getInstance()), Arrays.asList(new PromoPosDTO().getInstance()), Arrays.asList(new PromoAhassDTO().getInstance()), Arrays.asList(new PromoCustomerJobDTO().getInstance()), // PromoJasaBengkelType.ALL_SERVICE, PromoSparepartType.SPAREPARTS_GROUP, PromoPackageServiceType.SPESIFIC, "Driver Gojek", 4, 1, 2, PromoBerlakuAhassType.EACH_AHASS, "Pengguna,Pemilik,Pembeli", PromoKetentuanType.CUSTOMER, 0.0 ); } @Override public String toString() { return "PromoDTO{" + "isJoinable=" + isJoinable + ", promoID='" + promoID + '\'' + ", promoCode='" + promoCode + '\'' + ", promoStartDate=" + promoStartDate + ", promoEndDate=" + promoEndDate + ", promoName='" + promoName + '\'' + ", promoSource='" + promoSource + '\'' + ", categoryID='" + categoryID + '\'' + // ", customerType=" + customerType + // ", promoBookingType=" + promoBookingType + // ", customerOccupation=" + customerOccupation + // ", customerGender=" + customerGender + ", ahassType=" + ahassType + ", areaType=" + areaType + ", lokasiType=" + lokasiType + ", programType=" + programType + ", kelipatanKM='" + kelipatanKM + '\'' + ", jamMulai=" + jamMulai + ", jamAkhir=" + jamAkhir + ", hariBerlaku='" + hariBerlaku + '\'' + ", promoStatus=" + promoStatus + ", promoCreationalDTO=" + promoCreationalDTO + ", listPromoUnitBerlaku=" + listPromoUnitBerlaku + // ", listPromoJasa=" + listPromoJasa + ", listDiscountPart=" + listDiscountPart + ", listPackageService=" + listPackageService + ", listPromoArea=" + listPromoArea + ", listPromoPos=" + listPromoPos + ", listPromoAhass=" + listPromoAhass + ", listPromoCustomerJob=" + listPromoCustomerJob + // ", promoJasaBengkelType=" + promoJasaBengkelType + ", promoSparepartType=" + promoSparepartType + ", promoPackageServiceType=" + promoPackageServiceType + ", promoCustomer='" + promoCustomer + '\'' + ", jumlahService=" + jumlahService + ", jumlahBerlaku=" + jumlahBerlaku + ", jumlahPengulangan=" + jumlahPengulangan + ", promoBerlakuAhassType=" + promoBerlakuAhassType + ", ketentuanSettings='" + ketentuanSettings + '\'' + ", promoKetentuanType=" + promoKetentuanType + ", totalDiscount=" + totalDiscount + '}'; } }