package org.egl_cepgl.pm.model.user;

import lombok.*;
import org.egl_cepgl.pm.model.AbstractEntity;
import org.hibernate.Hibernate;
import org.springframework.data.annotation.CreatedDate;

import javax.persistence.*;
import java.math.BigInteger;
import java.time.Instant;
import java.util.List;
import java.util.Objects;

@Data
@Entity
@ToString
@Table(name="users", schema = "egl_pm_db")
@AllArgsConstructor
@NoArgsConstructor
public class User extends AbstractEntity
{
//    @Id
//    @GeneratedValue(strategy= GenerationType.IDENTITY)
//    @Column(name="id", columnDefinition = "serial", nullable = false, unique = true)
//    private Integer id;

    @Column(name="id_kcloak", length = 100)
    private String id_kcloak;

    @Column(name="first_name", length = 30)
    private String first_name;

    @Column(name="last_name", length = 30)
    private String last_name;

    @Column(name="email", length = 50)
    private String email;

    @Column(name="phone", length = 20)
    private String phone;

    @Column(name="is_admin")
    private Boolean is_admin;

//    @CreatedDate
//    @Column(name= "created_at", updatable = false)
//    private Instant created_at;
//
//    @CreatedDate
//    @Column(name= "updated_at")
//    private Instant updated_at;
//
//    @Override
//    public boolean equals(Object o) {
//        if (this == o) return true;
//        if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
//        AbstractEntity that = (AbstractEntity) o;
//        return id != null && Objects.equals(id, that.getId());
//    }
//
//    @Override
//    public int hashCode() {
//        return getClass().hashCode();
//    }

}
