package com.jasamedika.medifirst2000.vo;

import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * @author salmanoe
 * @version 1.0.0
 * @since 02/01/2024
 */
@Getter
@Setter
public class PelayananPasienReturVO extends MedicalRecordTransactionVO {
	@Caption(value = "Generik")
	private GenerikVO generik;

	@Caption(value = "statusOrder")
	private Byte statusOrder;

	@Caption(value = "Jasa Farmasi")
	private Double jasa;

	@Caption(value = "Produk")
	private KelasVO kelas;

	@Caption(value = "Is Pasien")
	private Boolean isPasien;

	@Caption(value = "Is Pasien")
	private Boolean isObat;

	@Caption(value = "Is Pasien")
	private Boolean isDosis;

	@Caption(value = "Is Pasien")
	private Boolean isRoute;

	@Caption(value = "Is Pasien")
	private Boolean isDokumentasi;

	@Caption(value = "Is Pasien")
	private Boolean isWaktu;

	@Caption(value = "Is Pasien")
	private Boolean isInformasi;

	@Caption(value = "Is Benar")
	private Boolean isBenar;

	private StrukPelayananVO strukPelayanan;

	@Caption(value = "Status")
	private String status;

	@Caption(value = "Tanggal Pelayanan")
	private Date tglPelayanan;

	@Caption(value = "Harga Satuan")
	private Double hargaSatuan;

	@Caption(value = "Harga Jual")
	private Double hargaJual;

	@Caption(value = "Nilai Normal")
	private Byte nilaiNormal;

	@Caption(value = "Piutang Penjamin")
	private Double piutangPenjamin;

	@Caption(value = "Piutang Rumah Sakit")
	private Double piutangRumahSakit;

	@Caption(value = "Struk Order")
	private StrukPelayananDNoBatchVO noBatch;

	@Caption(value = "Struk Order")
	private StrukOrderVO strukOrder;

	@Caption(value = "Jenis Obat")
	private JenisObatVO jenisObat;

	@NotNull(message = "Produk Harus Diisi")
	@Caption(value = "Produk")
	private ProdukVO produk;

	@Caption(value = "Stock")
	private Double stock;

	@Caption(value = "Jumlah")
	private Double jumlah;

	@Caption(value = "AturanPakai")
	private String aturanPakai;

	@Caption(value = "Route")
	private RouteFarmasiVO route;

	@Caption(value = "Keterangan Pakai")
	private StigmaVO keteranganPakai;

	@Caption(value = "KeteranganPakai2")
	private String keteranganPakai2;

	@Caption(value = "Kelompok Transaksi")
	private KelompokTransaksiVO kelompokTransaksi;

	@Caption(value = "KeteranganLain")
	private String keteranganLain;

	@Caption(value = "Harga Discount")
	private Double hargaDiscount;

	@Caption(value = "hargaNetto")
	private Double hargaNetto;

	@Caption(value = "NoRecTriger")
	private String noRecTriger;

	@Caption(value = "qty")
	private Double qty;

	@Caption(value = "totalHarga")
	private Double totalHarga;

	@Caption(value = "resepKe")
	private Integer resepKe;

	private Set<PelayananPasienPetugasVO> pelayananPasienPetugasSet = new HashSet<>();

	private Set<RacikanDetailVO> racikan = new HashSet<>();

	private Set<PelayananPasienDetailVO> pelayananPasienDetailSet = new HashSet<>();

	@Caption(value = "petugas")
	private Set<PelayananPasienPetugasVO> petugas = new HashSet<>();

	private SatuanStandarVO satuanView;

	private Integer satuanViewId;

	@Caption(value = "Struk Retur")
	private StrukReturVO strukRetur;

	private String strukReturId;

	@Caption(value = "Aturan Pakai")
	private AturanPakaiVO aturanPakaiReguler;

	private String aturanPakaiRegulerId;

	@Caption(value = "Aturan Pakai Signa")
	private AturanPakaiSignaVO aturanPakaiSigna;

	private String aturanPakaiSignaId;
}
