package app.model;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GenerationType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;

import lombok.*;
        
import org.springframework.data.relational.core.mapping.Table;

//@NoArgsConstructor
//@AllArgsConstructor
@Entity 
@Table(name="users_details")
public class UsersDetail {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NonNull
    @Column(unique = true)
    private Long uid;
    
    @NonNull
    private String prefer;
    
    @NonNull
    private String prefix;
    
    @NonNull
    private String first;
    
    @NonNull
    private String middles;
    
    private String last = "";
                     
    @NonNull
    private String postfix = "";

    @NonNull
    private String birthdate = "";

    public UsersDetail() {}
     
    public UsersDetail(Long id,
                       Long uid,
                       String username,
                       String prefer, 
                       String prefix,
                       String first,
                       String middles,
                       String last,
                       String postfix,
                       String birthdate) {
        this.id = id;
        this.uid = uid;
        this.prefer = prefer;
        this.prefix = prefix;
        this.first = first;
        this.middles = middles;
        this.last = last;
        this.postfix = postfix;
        this.birthdate = birthdate;
    } 
     
    public Long getId() { return id; }
    public Long getID() { return id; }
    public String getIdString() { return Long.toString(id); }
    public String getIDString() { return getIdString(); }

    public Long getUID() { return uid; }
    
    public String getPreferred() { return prefer; }
    public String getFirst() { return first; }
    public String getMiddleNames() { return middles; }
    public String getLast() { return last; }
    public String getPostfix() { return postfix; }
    public String getBirthdate() { return birthdate; }
     
    
}
