package sn.ladoum.bergerie.entity;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import sn.ladoum.bergerie.entity.enums.Role;

@Entity
@Table(name = "utilisateur", uniqueConstraints = {
        @UniqueConstraint(columnNames = "email"),
        @UniqueConstraint(columnNames = "telephone")
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Utilisateur {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, length = 150)
    private String nom;

    @Column(nullable = false, length = 150)
    private String email;

    @Column(nullable = false)
    private String motDePasse;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false, length = 20)
    private Role role;

    /** Compte actif : si false, l'utilisateur ne peut plus se connecter. */
    @Column(nullable = false)
    @Builder.Default
    private Boolean actif = true;

    @Column(name = "nom_bergerie", length = 150)
    private String nomBergerie;

    @Column(length = 500)
    private String logo;

    @Column(length = 255)
    private String adresse;

    @Column(nullable = false, length = 30)
    private String telephone;
}
