package com.ffii.lioner.modules.user.req;

import java.time.LocalDate;
import java.util.List;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/** @author Jason */
public class    NewLionerUserReq {

	private Long id;

	@NotNull
	private Boolean locked;

    @NotNull
	private Boolean twoFactorEnabled;

    private List<Long> consultantIds;

    @Size(max = 30)
	@NotBlank
	@Pattern(regexp = "^[A-Za-z0-9]+$")
	private String username;

	private String password;

    private String name;

	@NotBlank
    private String fullname;
	private String firstname;
	private String lastname;
    private String title;
	private String department;
    private String phone1;
    private String phone2;
    private String post;
	@NotBlank
    private Long userGroupId;
	private LocalDate expiryDate;
	private String locale;
	private String remarks;

	@NotBlank
	@Email
	private String email;

	// @NotNull
	private List<Long> addGroupIds;
	// @NotNull
	private List<Long> removeGroupIds;

	// @NotNull
	private List<Long> addAuthIds;
	// @NotNull
	private List<Long> removeAuthIds;
    
    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

	public Boolean getLocked() {
		return locked;
	}

	public void setLocked(Boolean locked) {
		this.locked = locked;
	}

	public Boolean getTwoFactorEnabled() {
        return twoFactorEnabled;
    }

    public void setTwoFactorEnabled(Boolean twoFactorEnabled) {
        this.twoFactorEnabled = twoFactorEnabled;
    }

    public LocalDate getExpiryDate() {
		return expiryDate;
	}

	public void setExpiryDate(LocalDate expiryDate) {
		this.expiryDate = expiryDate;
	}

	public String getFirstname() {
		return firstname;
	}

	public void setFirstName(String firstname) {
		this.firstname = firstname;
	}

	public String getLastname() {
		return lastname;
	}

	public void setLastname(String lastname) {
		this.lastname = lastname;
	}

	public String getLocale() {
		return locale;
	}

	public void setLocale(String locale) {
		this.locale = locale;
	}

	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}


    public List<Long> getAddGroupIds() {
        return this.addGroupIds;
    }

    public void setAddGroupIds(List<Long> addGroupIds) {
        this.addGroupIds = addGroupIds;
    }

    public List<Long> getRemoveGroupIds() {
        return this.removeGroupIds;
    }

    public void setRemoveGroupIds(List<Long> removeGroupIds) {
        this.removeGroupIds = removeGroupIds;
    }

    public List<Long> getAddAuthIds() {
        return this.addAuthIds;
    }

    public void setAddAuthIds(List<Long> addAuthIds) {
        this.addAuthIds = addAuthIds;
    }

    public List<Long> getRemoveAuthIds() {
        return this.removeAuthIds;
    }

    public void setRemoveAuthIds(List<Long> removeAuthIds) {
        this.removeAuthIds = removeAuthIds;
    }

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getDepartment() {
		return department;
	}

	public void setDepartment(String department) {
		this.department = department;
	}

    public Boolean isLocked() {
        return this.locked;
    }

    public String getFullname() {
        return this.fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getPhone1() {
        return this.phone1;
    }

    public void setPhone1(String phone1) {
        this.phone1 = phone1;
    }

    public String getPhone2() {
        return this.phone2;
    }

    public void setPhone2(String phone2) {
        this.phone2 = phone2;
    }

    public String getPost() {
        return this.post;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public Long getUserGroupId() {
        return this.userGroupId;
    }

    public void setUserGroupId(Long userGroupId) {
        this.userGroupId = userGroupId;
    }

    public String getUsername() {
        return this.username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Long> getConsultantIds() {
        return consultantIds;
    }

    public void setConsultantIds(List<Long> consultantIds) {
        this.consultantIds = consultantIds;
    }
}

