package com.dacrt.SBIABackend.entity;

import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.springframework.lang.NonNull;

import com.fasterxml.jackson.annotation.JsonManagedReference;
@Entity
@Table(name = "unidad_adscripcion",schema = "original_data")
public class UnidadAdscripcion {
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idUnidadAdscripcion", length = 10)
    private int idUnidadAdscripcion;
	
	@Column(name = "cdUnidad", length = 6,nullable = false,unique=true)
    private String cdUnidad;
	
	@NonNull
	@Column(name = "nombre", length = 200,nullable = false,unique=true)
    private String nombre;
	
	@NonNull
	@Column(name = "descripcion", length = 400,nullable = false)
    private String descripcion;
	
	@NonNull
	@Column(name = "activo", length = 1,nullable = false)
    private int activo;
	
	@NonNull
	@Column(name = "tipoClasificacion", length = 6,nullable = false)
    private int tipoClasificacion;
	
	@NonNull
	@Column(name = "usuario", length = 100,nullable = false)
    private String usuario;
	
	@NonNull
	@Column(name = "fechaRegistro",nullable = false)
    private Date fechaRegistro;
	
	@Column(name = "fechaModificacion")
    private Date fechaModificacion;

	@JsonManagedReference
    @OneToMany(mappedBy = "unidadAdscripcion")
    private Set<Unidad> unidades;
    
	public UnidadAdscripcion() {

	}

	public UnidadAdscripcion(String cdUnidad, String nombre, String descripcion, int activo, int tipoClasificacion,
			String usuario, Date fechaRegistro, Date fechaModificacion) {
		super();
		this.cdUnidad = cdUnidad;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.activo = activo;
		this.tipoClasificacion = tipoClasificacion;
		this.usuario = usuario;
		this.fechaRegistro = fechaRegistro;
		this.fechaModificacion = fechaModificacion;
	}

	public int getIdUnidadAdscripcion() {
		return idUnidadAdscripcion;
	}

	public void setIdUnidadAdscripcion(int idUnidadAdscripcion) {
		this.idUnidadAdscripcion = idUnidadAdscripcion;
	}

	public String getCdUnidad() {
		return cdUnidad;
	}

	public void setCdUnidad(String cdUnidad) {
		this.cdUnidad = cdUnidad;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public int getActivo() {
		return activo;
	}

	public void setActivo(int activo) {
		this.activo = activo;
	}

	public int getTipoClasificacion() {
		return tipoClasificacion;
	}

	public void setTipoClasificacion(int tipoClasificacion) {
		this.tipoClasificacion = tipoClasificacion;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public Date getFechaRegistro() {
		return fechaRegistro;
	}

	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public Date getFechaModificacion() {
		return fechaModificacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public Set<Unidad> getUnidades() {
		return unidades;
	}

	public void setUnidades(Set<Unidad> unidades) {
		this.unidades = unidades;
	}

	
}
