package com.cristobalbernal.foro.Entidades;

import jakarta.persistence.*;

import java.sql.Timestamp;
import java.util.Objects;

@Entity
public class Foro {
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
    @Column(name = "id", nullable = false)
    private int id;
    @Basic
    @Column(name = "titulo", nullable = true, length = 150)
    private String titulo;
    @Basic
    @Column(name = "descripcion", nullable = true, length = 500)
    private String descripcion;
    @Version
    @Basic
    @Column(name = "fechaYHora", nullable = true)
    private Timestamp fechaYHora;
    @Basic
    @Column(name = "imagen", nullable = false)
    private int imagen;
    @Basic
    @Column(name = "categoria_foro_id", nullable = true)
    private int categoriaForoId;

    public Foro() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getDescripcion() {
        return descripcion;
    }

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

    public Timestamp getFechaYHora() {
        return fechaYHora;
    }

    public void setFechaYHora(Timestamp fechaYHora) {
        this.fechaYHora = fechaYHora;
    }

    public int getImagen() {
        return imagen;
    }

    public void setImagen(int imagen) {
        this.imagen = imagen;
    }

    public int getCategoriaForoId() {
        return categoriaForoId;
    }

    public void setCategoriaForoId(int categoriaForoId) {
        this.categoriaForoId = categoriaForoId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Foro foro = (Foro) o;
        return id == foro.id && imagen == foro.imagen && Objects.equals(titulo, foro.titulo) && Objects.equals(descripcion, foro.descripcion) && Objects.equals(fechaYHora, foro.fechaYHora) && Objects.equals(categoriaForoId, foro.categoriaForoId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, titulo, descripcion, fechaYHora, imagen, categoriaForoId);
    }
}
