mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 00:48:49 +00:00
238 lines
6.1 KiB
Java
238 lines
6.1 KiB
Java
package com.imprimelibros.erp.direcciones;
|
|
|
|
import jakarta.persistence.*;
|
|
import java.io.Serializable;
|
|
|
|
import org.hibernate.annotations.SQLDelete;
|
|
import org.hibernate.annotations.SQLRestriction;
|
|
|
|
import com.imprimelibros.erp.common.jpa.AbstractAuditedEntity;
|
|
import com.imprimelibros.erp.paises.Paises;
|
|
import com.imprimelibros.erp.users.User;
|
|
|
|
import jakarta.validation.constraints.NotNull;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
|
|
@Entity
|
|
@Table(name = "direcciones", indexes = {
|
|
@Index(name = "idx_direcciones_user", columnList = "user_id"),
|
|
@Index(name = "idx_direcciones_pais_code3", columnList = "pais_code3")
|
|
})
|
|
@SQLDelete(sql = "UPDATE direcciones SET deleted = 1, deleted_at = NOW(3) WHERE id = ?")
|
|
@SQLRestriction("deleted = 0")
|
|
public class Direccion extends AbstractAuditedEntity implements Serializable {
|
|
|
|
public enum TipoIdentificacionFiscal {
|
|
DNI("direcciones.dni"),
|
|
NIE("direcciones.nie"),
|
|
CIF("direcciones.cif"),
|
|
Pasaporte("direcciones.pasaporte"),
|
|
VAT_ID("direcciones.vat_id");
|
|
|
|
private String key;
|
|
|
|
TipoIdentificacionFiscal(String key) {
|
|
this.key = key;
|
|
}
|
|
|
|
public String getKey() {
|
|
return key;
|
|
}
|
|
}
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
// --- FK a users(id)
|
|
@NotNull(message = "{direcciones.form.error.required}")
|
|
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
|
@JoinColumn(name = "user_id", nullable = false)
|
|
private User user;
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "alias", length = 100, nullable = false)
|
|
private String alias;
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "att", length = 150, nullable = false)
|
|
private String att;
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "direccion", length = 255, nullable = false)
|
|
private String direccion;
|
|
|
|
@NotNull(message = "{direcciones.form.error.required}")
|
|
@Column(name = "cp", length = 20, nullable = false)
|
|
private Integer cp;
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "ciudad", length = 100, nullable = false)
|
|
private String ciudad;
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "provincia", length = 100, nullable = false)
|
|
private String provincia;
|
|
|
|
// Usamos el code3 del país como FK lógica (String)
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "pais_code3", length = 3, nullable = false)
|
|
private String paisCode3 = "esp";
|
|
|
|
@NotBlank(message = "{direcciones.form.error.required}")
|
|
@Column(name = "telefono", length = 30, nullable = false)
|
|
private String telefono;
|
|
|
|
@Column(name = "instrucciones", length = 255)
|
|
private String instrucciones;
|
|
|
|
@Column(name = "is_facturacion", nullable = false)
|
|
private boolean direccionFacturacion = false;
|
|
|
|
@Column(name = "razon_social", length = 150)
|
|
private String razonSocial;
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@Column(name = "tipo_identificacion_fiscal", length = 20, nullable = false)
|
|
private TipoIdentificacionFiscal tipoIdentificacionFiscal = TipoIdentificacionFiscal.DNI;
|
|
|
|
@Column(name = "identificacion_fiscal", length = 50)
|
|
private String identificacionFiscal;
|
|
|
|
// --- Asociación opcional (read-only) a Pais por code3, si tienes la entidad
|
|
// Pais
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "pais_code3", referencedColumnName = "code3", insertable = false, updatable = false)
|
|
private Paises pais;
|
|
|
|
// --- Getters & Setters ---
|
|
|
|
public Long getId() {
|
|
return id;
|
|
}
|
|
|
|
public void setId(Long id) {
|
|
this.id = id;
|
|
}
|
|
|
|
public User getUser() {
|
|
return user;
|
|
}
|
|
|
|
public void setUser(User user) {
|
|
this.user = user;
|
|
}
|
|
|
|
public String getAlias() {
|
|
return alias;
|
|
}
|
|
|
|
public void setAlias(String alias) {
|
|
this.alias = alias;
|
|
}
|
|
|
|
public String getAtt() {
|
|
return att;
|
|
}
|
|
|
|
public void setAtt(String att) {
|
|
this.att = att;
|
|
}
|
|
|
|
public String getDireccion() {
|
|
return direccion;
|
|
}
|
|
|
|
public void setDireccion(String direccion) {
|
|
this.direccion = direccion;
|
|
}
|
|
|
|
public Integer getCp() {
|
|
return cp;
|
|
}
|
|
|
|
public void setCp(Integer cp) {
|
|
this.cp = cp;
|
|
}
|
|
|
|
public String getCiudad() {
|
|
return ciudad;
|
|
}
|
|
|
|
public void setCiudad(String ciudad) {
|
|
this.ciudad = ciudad;
|
|
}
|
|
|
|
public String getProvincia() {
|
|
return provincia;
|
|
}
|
|
|
|
public void setProvincia(String provincia) {
|
|
this.provincia = provincia;
|
|
}
|
|
|
|
public String getPaisCode3() {
|
|
return paisCode3;
|
|
}
|
|
|
|
public void setPaisCode3(String paisCode3) {
|
|
this.paisCode3 = paisCode3;
|
|
}
|
|
|
|
public String getTelefono() {
|
|
return telefono;
|
|
}
|
|
|
|
public void setTelefono(String telefono) {
|
|
this.telefono = telefono;
|
|
}
|
|
|
|
public String getInstrucciones() {
|
|
return instrucciones;
|
|
}
|
|
|
|
public void setInstrucciones(String instrucciones) {
|
|
this.instrucciones = instrucciones;
|
|
}
|
|
|
|
public boolean isDireccionFacturacion() {
|
|
return direccionFacturacion;
|
|
}
|
|
|
|
public void setDireccionFacturacion(boolean direccionFacturacion) {
|
|
this.direccionFacturacion = direccionFacturacion;
|
|
}
|
|
|
|
public String getRazonSocial() {
|
|
return razonSocial;
|
|
}
|
|
|
|
public void setRazonSocial(String razonSocial) {
|
|
this.razonSocial = razonSocial;
|
|
}
|
|
|
|
public TipoIdentificacionFiscal getTipoIdentificacionFiscal() {
|
|
return tipoIdentificacionFiscal;
|
|
}
|
|
|
|
public void setTipoIdentificacionFiscal(TipoIdentificacionFiscal tipo) {
|
|
this.tipoIdentificacionFiscal = tipo;
|
|
}
|
|
|
|
public String getIdentificacionFiscal() {
|
|
return identificacionFiscal;
|
|
}
|
|
|
|
public void setIdentificacionFiscal(String identificacionFiscal) {
|
|
this.identificacionFiscal = identificacionFiscal;
|
|
}
|
|
|
|
public Paises getPais() {
|
|
return pais;
|
|
}
|
|
|
|
public void setPais(Paises pais) {
|
|
this.pais = pais;
|
|
}
|
|
}
|