package cn.meowrain.aioj.backend.auth.oauth2.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;

/**
 * OIDC UserInfo 响应 DTO 对应 /oauth2/userinfo 端点的响应
 *
 * @author meowrain
 * @since 2025-12-14
 */
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserInfoResponse {

	/**
	 * Subject - 用户唯一标识符
	 */
	private String sub;

	/**
	 * 用户全名
	 */
	private String name;

	/**
	 * 首选用户名
	 */
	@JsonProperty("preferred_username")
	private String preferredUsername;

	/**
	 * 电子邮件
	 */
	private String email;

	/**
	 * 电子邮件是否已验证
	 */
	@JsonProperty("email_verified")
	private Boolean emailVerified;

	/**
	 * 头像图片 URL
	 */
	private String picture;

	/**
	 * 用户角色
	 */
	private String role;

}
