package com.hpay.hpay_mobile_api.entities;
import java.util.List;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

@Entity
@Table(name = "pays")
@RequiredArgsConstructor
@Getter
@Setter
public class Pays {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idpays")
    private Integer id;

    @Column(name = "pays", nullable = false, length = 45)
    private String pays;

    @Column(name = "indicatif", nullable = false, length = 5)
    private String indicatif;

    @Column(name = "pays_iso", nullable = false, length = 3)
    private String paysIso;

    @Column(name = "pays_code", nullable = false, length = 10)
    private String paysCode;

    @Column(name = "emoji", nullable = false, length = 10)
    private String emoji;

    @OneToMany(mappedBy = "pays", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JsonManagedReference
    private List<Ville> villes;

    @ManyToOne
    @JoinColumn(name = "iddevise")
   // @JsonManagedReference
    private Devise devise;

}