package com.jasamedika.medifirst2000.entities;

import java.io.Serializable;
import org.hibernate.envers.Audited;
import javax.persistence.*;

import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * class ShiftKerjaFormulasi
 * 
 * @author Generator
 */
@Entity // @Audited
@Table(name = "ShiftKerjaFormulasi_M")
public class ShiftKerjaFormulasi extends BaseMaster {
	@ManyToOne
	@JoinColumn(name = "ObjectDepartemenFk")
	@NotNull(message = "Kd Departemen tidak boleh kosong")

	@Caption(value = "Object Departemen")
	private Departemen departemen;

	public void setDepartemen(Departemen departemen) {
		this.departemen = departemen;
	}

	public Departemen getDepartemen() {
		return this.departemen;
	}

	@Column(name = "ObjectDepartemenFk", insertable = false, updatable = false)
	private Integer departemenId;

	@ManyToOne
	@JoinColumn(name = "ObjectShiftNextNotAllowedFk")

	@Caption(value = "Object Shift Next Not Allowed")
	private ShiftKerja shiftNextNotAllowed;

	public void setShiftNextNotAllowed(ShiftKerja shiftNextNotAllowed) {
		this.shiftNextNotAllowed = shiftNextNotAllowed;
	}

	public ShiftKerja getShiftNextNotAllowed() {
		return this.shiftNextNotAllowed;
	}

	@Column(name = "ObjectShiftNextNotAllowedFk", insertable = false, updatable = false, nullable = false)
	private Integer shiftNextNotAllowedId;

	@ManyToOne
	@JoinColumn(name = "ObjectShiftStartFk")
	@NotNull(message = "Kd Shift Start tidak boleh kosong")

	@Caption(value = "Object Shift Start")
	private ShiftKerja shiftStart;

	public void setShiftStart(ShiftKerja shiftStart) {
		this.shiftStart = shiftStart;
	}

	public ShiftKerja getShiftStart() {
		return this.shiftStart;
	}

	@Column(name = "ObjectShiftStartFk", insertable = false, updatable = false)
	private Integer shiftStartId;

	@NotNull(message = "Qty Hari Kerja Per Bulan tidak boleh kosong")
	@Column(name = "QtyHariKerjaPerBulan", nullable = false)
	@Caption(value = "Qty Hari Kerja Per Bulan")
	private Byte qtyHariKerjaPerBulan;

	public void setqtyHariKerjaPerBulan(Byte qtyHariKerjaPerBulan) {
		this.qtyHariKerjaPerBulan = qtyHariKerjaPerBulan;
	}

	public Byte getqtyHariKerjaPerBulan() {
		return this.qtyHariKerjaPerBulan;
	}

	@NotNull(message = "Qty Hari Kerja To Libur tidak boleh kosong")
	@Column(name = "QtyHariKerjaToLibur", nullable = false)
	@Caption(value = "Qty Hari Kerja To Libur")
	private Byte qtyHariKerjaToLibur;

	public void setqtyHariKerjaToLibur(Byte qtyHariKerjaToLibur) {
		this.qtyHariKerjaToLibur = qtyHariKerjaToLibur;
	}

	public Byte getqtyHariKerjaToLibur() {
		return this.qtyHariKerjaToLibur;
	}

	@NotNull(message = "Qty Hari Kerja To New Shift tidak boleh kosong")
	@Column(name = "QtyHariKerjaToNewShift", nullable = false)
	@Caption(value = "Qty Hari Kerja To New Shift")
	private Byte qtyHariKerjaToNewShift;

	public void setqtyHariKerjaToNewShift(Byte qtyHariKerjaToNewShift) {
		this.qtyHariKerjaToNewShift = qtyHariKerjaToNewShift;
	}

	public Byte getqtyHariKerjaToNewShift() {
		return this.qtyHariKerjaToNewShift;
	}

	@NotNull(message = "Qty Hari Libur Per Bulan tidak boleh kosong")
	@Column(name = "QtyHariLiburPerBulan", nullable = false)
	@Caption(value = "Qty Hari Libur Per Bulan")
	private Byte qtyHariLiburPerBulan;

	public void setqtyHariLiburPerBulan(Byte qtyHariLiburPerBulan) {
		this.qtyHariLiburPerBulan = qtyHariLiburPerBulan;
	}

	public Byte getqtyHariLiburPerBulan() {
		return this.qtyHariLiburPerBulan;
	}

	@NotNull(message = "Qty Hari Libur Per Siklus tidak boleh kosong")
	@Column(name = "QtyHariLiburPerSiklus", nullable = false)
	@Caption(value = "Qty Hari Libur Per Siklus")
	private Byte qtyHariLiburPerSiklus;

	public void setqtyHariLiburPerSiklus(Byte qtyHariLiburPerSiklus) {
		this.qtyHariLiburPerSiklus = qtyHariLiburPerSiklus;
	}

	public Byte getqtyHariLiburPerSiklus() {
		return this.qtyHariLiburPerSiklus;
	}

	@NotNull(message = "Qty Pegawai Per Shift tidak boleh kosong")
	@Column(name = "QtyPegawaiPerShift", nullable = false)
	@Caption(value = "Qty Pegawai Per Shift")
	private Byte qtyPegawaiPerShift;

	public void setqtyPegawaiPerShift(Byte qtyPegawaiPerShift) {
		this.qtyPegawaiPerShift = qtyPegawaiPerShift;
	}

	public Byte getqtyPegawaiPerShift() {
		return this.qtyPegawaiPerShift;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.shiftkerjaformulasi_m_id_seq")
	@javax.persistence.SequenceGenerator(name = "public.shiftkerjaformulasi_m_id_seq", sequenceName = "public.shiftkerjaformulasi_m_id_seq", allocationSize = 1)
	@Column(name = "id")
	protected Integer id;

	public Integer getId() {

		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
}