package com.example.demo.entity;

import java.time.LocalDateTime;
import java.util.UUID;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "app_publisher")
public class Publisher {

	@Id
	@GeneratedValue(generator = "uuid2")
	@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
	@Column(name = "publisher_id", columnDefinition = "BINARY(16)")
	private UUID id;

	@NotEmpty(message = "{firstname.notempty}")
	@Column(name = "name", columnDefinition = "VARCHAR(125)")
	private String name;

	@Column(name = "email", nullable = false, length = 50, unique = true, columnDefinition = "VARCHAR(225)")
	private String email;

	@Column(name = "website", columnDefinition = "VARCHAR(125)")
	private String website;

	@Column(name = "publisher_share")
	private int publisher_share;

	@Column(name = "adblocker", columnDefinition = "TINYINT(1)")
	private int adblocker;

	private LocalDateTime created_at;

	@Column(nullable = false, columnDefinition = "TINYINT(1)")
	private int status;

	@Column(columnDefinition = "BINARY(16)")
	private UUID created_by;

	private LocalDateTime updated_at;

	@Column(columnDefinition = "BINARY(16)")
	private UUID updated_by;

	@Column(nullable = false, columnDefinition = "TINYINT(1)")
	private int is_deleted;

	private LocalDateTime deleted_at;

	@Column(columnDefinition = "BINARY(16)")
	private UUID deleted_by;

	public UUID getId() {
		return id;
	}

	public void setId(UUID id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getWebsite() {
		return website;
	}

	public void setWebsite(String website) {
		this.website = website;
	}

	public LocalDateTime getCreated_at() {
		return created_at;
	}

	public void setCreated_at(LocalDateTime created_at) {
		this.created_at = created_at;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public UUID getCreated_by() {
		return created_by;
	}

	public void setCreated_by(UUID created_by) {
		this.created_by = created_by;
	}

	public LocalDateTime getUpdated_at() {
		return updated_at;
	}

	public void setUpdated_at(LocalDateTime updated_at) {
		this.updated_at = updated_at;
	}

	public UUID getUpdated_by() {
		return updated_by;
	}

	public void setUpdated_by(UUID updated_by) {
		this.updated_by = updated_by;
	}

	public int getIs_deleted() {
		return is_deleted;
	}

	public void setIs_deleted(int is_deleted) {
		this.is_deleted = is_deleted;
	}

	public LocalDateTime getDeleted_at() {
		return deleted_at;
	}

	public void setDeleted_at(LocalDateTime deleted_at) {
		this.deleted_at = deleted_at;
	}

	public UUID getDeleted_by() {
		return deleted_by;
	}

	public void setDeleted_by(UUID deleted_by) {
		this.deleted_by = deleted_by;
	}

	public int getPublisher_share() {
		return publisher_share;
	}

	public void setPublisher_share(int publisher_share) {
		this.publisher_share = publisher_share;
	}

	public int getAdblocker() {
		return adblocker;
	}

	public void setAdblocker(int adblocker) {
		this.adblocker = adblocker;
	}

}
