package com.hpay.hpay_mobile_api.entities;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.hpay.hpay_mobile_api.Enum.KycStatus;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;


@Entity
@Table(name = "login_client")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class LoginClient {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idlogin_client")
    private Long idLoginClient; // Corresponds to `idlogin_client`

    @OneToOne(fetch = FetchType.LAZY) // One-to-one relationship to Client
    @JoinColumn(name = "idclients", referencedColumnName = "idclients", nullable = false)
    @JsonManagedReference
    private Client client; // Reference to Client

    @Column(name = "username", nullable = false, length = 45)
    private String username;

    @Column(name = "login", nullable = false, length = 45)
    private String login;

    @Column(name = "password", nullable = false, length = 128)
    private String password;

    @Column(name = "salt", nullable = false, length = 128)
    private String salt;

    @Column(name = "actif", nullable = false, length = 1)
    private String actif; // Can be '0' or '1'

    @Column(name = "activation_code", nullable = false, length = 10)
    private String activationCode;

    @Column(name = "emailvalidate", length = 1, nullable = false, columnDefinition = "VARCHAR(1) DEFAULT '0'")
    private String emailvalidate;

    @Column(name = "kyc_status", nullable = false)
    private String kycStatus = String.valueOf(KycStatus.NON_SOUMIS);  // Default value set to '0'

}

