package no.valg.valgnatt.database.hibernate;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Entity
@Table(name = "stemmeoppgjor")
@NoArgsConstructor //Hibernate-krav
@AllArgsConstructor //Builder-krav
@Builder(toBuilder = true)
public class Stemmeoppgjor implements Serializable {

	@Getter
	@Setter
	@EmbeddedId
	private StemmeoppgjorId id;

	@Setter
	@Column(name = "stg_f_godkjente", nullable = false)
	private Integer stgForhandGodkjente; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "stg_godkjente", nullable = false)
	private Integer stgGodkjente; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "stg_f_forkastede", nullable = false)
	private Integer stgForhandForkastede; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "stg_forkastede", nullable = false)
	private Integer stgForkastede; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_f_godkjente", nullable = false)
	private Integer stsForhandGodkjente; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_godkjente", nullable = false)
	private Integer stsGodkjente; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_f_forkastede", nullable = false)
	private Integer stsForhandForkastede; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_forkastede", nullable = false)
	private Integer stsForkastede; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_f_blanke", nullable = false)
	private Integer stsForhandBlanke; // skrives i dette objektet - leses ut via SQL

	@Setter
	@Column(name = "sts_blanke", nullable = false)
	private Integer stsBlanke; // skrives i dette objektet - leses ut via SQL

	@CreationTimestamp
	@Column(name = "opprettet_tid", updatable = false)
	private Date opprettetTid; // skrives i dette objektet - leses ut via SQL
}
