package com.sc.sicanet.migracion_sicanet.entity;

import jakarta.persistence.*;

import java.sql.Date;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Entity
@Table(name = "cat_socios")
public class Socio {

    @Column(name = "fecha_registro")
    private LocalDateTime fechaRegistro;

    @Column(name = "fecha_modificacion")
    private LocalDateTime fechaModificacion;

    @Id
    @Column (name = "pk_cat_socio")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int pkCatSocio;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "fk_persona", referencedColumnName = "pk_persona")
    private Persona persona;

    @Column(name = "fecha_alta")
    private LocalDate fechaAlta;

    @Column(name = "referencia_socio")
    private String refenciaSocio;

    @Column(name = "tipo_socio")
    private String tipoSocio;

    @Column(name = "fecha_baja")
    private Date fechaBaja;

    @Column(name="numero_identificacion_fiscal")
    private String numeroIdentificacionFiscal;

    @Column(name="numero_serie_fiel")
    private String numeroSerieFiel;

    @Column(name = "observacion_ejecutivo")
    private String observacionEjecutivo;

    @Column(name = "fk_cat_usuario")
    private int fkCatUsuario;

    private String dispositivo;
    private String estatus;
    private int sucursal;

    @OneToMany(mappedBy = "socio")
    private List<PrestamosSolicitudes> prestamosSolicitudes;

    public Socio() {}

    public List<PrestamosSolicitudes> getPrestamosSolicitudes() {
        return prestamosSolicitudes;
    }

    public void setPrestamosSolicitudes(List<PrestamosSolicitudes> prestamosSolicitudes) {
        this.prestamosSolicitudes = prestamosSolicitudes;
    }

    public LocalDateTime getFechaRegistro(){
        return fechaRegistro;
    }
    public void setFechaRegistro(LocalDateTime fechaRegistro){
        this.fechaRegistro = fechaRegistro;
    }
    public LocalDateTime getFechaModificacion(){
        return fechaModificacion;
    }

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

    public int getPkCatSocio() {
        return pkCatSocio;
    }

    public void setPkCatSocio(int pkCatSocio) {
        this.pkCatSocio = pkCatSocio;
    }

    public Persona getFkPersona(){
        return persona;
    }

    public void setFkPersona(Persona persona){
        this.persona = persona;
    }

    public LocalDate getFechaAlta(){
        return fechaAlta;
    }

    public void setFechaAlta(LocalDate fechaAlta){
        this.fechaAlta = fechaAlta;
    }

    public String getReferenciaSocio(){
        return refenciaSocio;
    }

    public void setRefenciaSocio(String refenciaSocio){
        this.refenciaSocio = refenciaSocio;
    }

    public String getTipoSocio() {
        return tipoSocio;
    }

    public void setTipoSocio(String tipoSocio) {
        this.tipoSocio = tipoSocio;
    }

    public Date getFechaBaja() {
        return fechaBaja;
    }

    public void setFechaBaja(Date fechaBaja) {
        this.fechaBaja = fechaBaja;
    }

    public String getNumeroIdentificacionFiscal() {
        return numeroIdentificacionFiscal;
    }

    public void setNumeroIdentificacionFiscal(String numeroIdentificacionFiscal) {
        this.numeroIdentificacionFiscal = numeroIdentificacionFiscal;
    }

    public String getNumeroSerieFiel() {
        return numeroSerieFiel;
    }

    public void setNumeroSerieFiel(String numeroSerieFiel) {
        this.numeroSerieFiel = numeroSerieFiel;
    }

    public String getObservacionEjecutivo() {
        return observacionEjecutivo;
    }

    public void setObservacionEjecutivo(String observacionEjecutivo) {
        this.observacionEjecutivo = observacionEjecutivo;
    }

    public int getFkCatUsuario() {
        return fkCatUsuario;
    }

    public void setFkCatUsuario(int fkCatUsuario) {
        this.fkCatUsuario = fkCatUsuario;
    }

    public String getDispositivo() {
        return dispositivo;
    }

    public void setDispositivo(String dispositivo) {
        this.dispositivo = dispositivo;
    }

    public String getEstatus() {
        return estatus;
    }

    public void setEstatus(String estatus) {
        this.estatus = estatus;
    }

    public int getSucursal() {
        return sucursal;
    }

    public void setSucursal(int sucursal) {
        this.sucursal = sucursal;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }
}
