package #[pacoteEntity];

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import org.hibernate.envers.Audited;
import org.hibernate.annotations.Filter;

import com.arch.constant.Constant;
import com.arch.crud.entity.CrudMultiTenantEntity;

#[importDetalheEntity]

#[anotacaoSigilo]
#[anotacaoClasseExclusaoLogica]
@Audited 
@Table(name = "#[nomeTabelaDetalhe]")
@Entity(name = "#[nomeDetalheSemCaracterEspecialMinusculo]")
@SequenceGenerator(name = "#[nomeDetalheSemCaracterEspecial]IdSequence", sequenceName = "#[nomeSequenceDetalhe]", allocationSize = 1)
public class #[nomeDetalheSemCaracterEspecial]Entity extends CrudMultiTenantEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "#[nomeDetalheSemCaracterEspecial]IdSequence")
    @Column(name = "#[nomeIdDetalhe]")
    private Long id;

    @ManyToOne
    @JoinColumn(name="id_#[nomeSemCaracterEspecialMinusculo]")
    @Filter(name = Constant.TENANT)
    private #[nomeSemCaracterEspecial]Entity #[nomeSemCaracterEspecialMinusculo];
    
    #[declaracaoAtributoEntidadeDetalhe]

    @Override    
    public Long getId() {
        return id;
    }

    @Override    
    public void setId(Long id) {
        this.id = id;
    }

    public #[nomeSemCaracterEspecial]Entity get#[nomeSemCaracterEspecial]() {
        return #[nomeSemCaracterEspecialMinusculo];
    }

    public void set#[nomeSemCaracterEspecial](#[nomeSemCaracterEspecial]Entity #[nomeSemCaracterEspecialMinusculo]) {
        this.#[nomeSemCaracterEspecialMinusculo] = #[nomeSemCaracterEspecialMinusculo];
    }

    #[declaracaoGetSetEntidadeDetalhe]

    #[declaracaoGetsEnums]
}