package com.jasamedika.medifirst2000.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Email;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * DTO for {@link com.jasamedika.medifirst2000.entities.VoucherPaket}
 */
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class VoucherPaketVO extends BaseTransactionVO {
	@NotNull(message = "Pasien tidak boleh kosong")
	private PasienVO pasien;

	private Integer pasienId;

	@NotNull(message = "Paket tidak boleh kosong")
	private ProdukVO paket;

	private Integer paketId;

	@NotNull(message = "Kelas tidak boleh kosong")
	private KelasVO kelas;

	private Integer kelasId;

	@NotNull(message = "Kode tidak boleh kosong")
	@Size(message = "Maksimal kode harus 7 karakter", max = 7)
	private String kode;

	@NotNull(message = "TMT tidak boleh kosong")
	private Date tmt;

	@NotNull(message = "Tanggal kedaluwarsa tidak boleh kosong")
	private Date tglKedaluwarsa;

	private Boolean isBatal;

	private Boolean isSelesai;

	private Date tanggalInput;

	private Double deposit;

	@Email(message = "Email tidak sesuai format")
	@Size(max = 150, message = "Maksimal email harus 150 karakter")
	private String email;

	@Caption(value = "Pegawai")
	private Pegawai pegawai;

	private Integer pegawaiId;

	private Date modifiedDate;
}