package com.emonster.taroaichat.service.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import java.io.Serializable;

/**
 * DTO for verifying phone number with code
 */
public class PhoneVerificationCheckDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotBlank(message = "Phone number is required")
    @Pattern(regexp = "^\\+?[1-9]\\d{1,14}$", message = "Invalid phone number format")
    private String phoneNumber;

    @NotBlank(message = "Verification code is required")
    @Size(min = 4, max = 10, message = "Verification code must be between 4 and 10 characters")
    private String code;

    private boolean rememberMe = false;

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public boolean isRememberMe() {
        return rememberMe;
    }

    public void setRememberMe(boolean rememberMe) {
        this.rememberMe = rememberMe;
    }

    @Override
    public String toString() {
        return "PhoneVerificationCheckDTO{" +
            "phoneNumber='" + phoneNumber + '\'' +
            ", code='[PROTECTED]'" +
            ", rememberMe=" + rememberMe +
            '}';
    }
}