PromoDTO.java 7 KB
Newer Older
akbar fauzi's avatar
akbar fauzi committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
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 +
                '}';
    }
}