package com.hpay.hpay_mobile_api.entities;

import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonBackReference;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import java.util.Date;


@Entity
@Table(name = "carte_client_qr")
@RequiredArgsConstructor
@Getter
@Setter
public class CarteClientQr {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idcarte_client_qr")
    private int idCarteClientQr;

    @Column(name = "idclients", nullable = false)
    private int idClients;

    /*@Column(name = "idcompte", nullable = false)
    private int idCompte;*/


    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "idcompte", nullable = false)
    @JsonBackReference
    private Compte compte;

    @Column(name = "idagence", nullable = false)
    private int idAgence;

    @Column(name = "num_carte", nullable = false, length = 16)
    private String numCarte;

    @Column(name = "frais", nullable = false)
    private float frais;

    @Column(name = "date_creation", nullable = false)
    private Date dateCreation;

    @Column(name = "date_expire")
    private Date dateExpire;

    @Column(name = "pin", nullable = false, length = 5)
    private String pin;

    @Column(name = "actif", nullable = false, columnDefinition = "varchar(1) default '1'")
    private String actif;

    @Column(name = "gain_commercial", nullable = false)
    private float gainCommercial;

    @Column(name = "idgestionnaire", nullable = false, columnDefinition = "int default 0")
    private int idGestionnaire;

    @Column(name = "idcommercial", nullable = false, columnDefinition = "int default 0")
    private int idCommercial;

    @Column(name = "type_carte", length = 45)
    private String typeCarte;

}
