package com.dacrt.SBIABackend.dto;

import java.util.List;
import com.dacrt.SBIABackend.dto.CustomExtensionDto;

import com.fasterxml.jackson.annotation.JsonProperty;

public class ScimUserUpdateDTO {
	// Campos Core SCIM
    private List<String> schemas;
    private String userName;
    private Boolean active;
    private ScimNameDTO name; // Asegúrate que contiene givenName y familyName
    private List<ScimEmailDTO> emails; // Asegúrate que contiene value, type, primary
    private String externalId;
    
    // 1. Campo para Roles Personalizados (para retrocompatibilidad)
    // Asegúrate de que esta estructura coincide con el JSON que te causaba problemas:
    // "urn:ietf:params:scim:schemas:extension:custom:2.0:Group": { "roles": "..." }
    @JsonProperty("urn:ietf:params:scim:schemas:extension:custom:2.0:Users")
    private CustomExtensionDto customExtension; // Debe tener el método getRoles()

    // 2. Campo para Grupos SCIM Estándar (La forma correcta de Okta)
    // ESTE ES EL CAMPO CRÍTICO PARA EL FUTURO:
    private List<ScimGroupMemberDTO> groups;

	public List<String> getSchemas() {
		return schemas;
	}

	public void setSchemas(List<String> schemas) {
		this.schemas = schemas;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public Boolean getActive() {
		return active;
	}

	public void setActive(Boolean active) {
		this.active = active;
	}

	public ScimNameDTO getName() {
		return name;
	}

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

	public List<ScimEmailDTO> getEmails() {
		return emails;
	}

	public void setEmails(List<ScimEmailDTO> emails) {
		this.emails = emails;
	}

	public String getExternalId() {
		return externalId;
	}

	public void setExternalId(String externalId) {
		this.externalId = externalId;
	}

	public CustomExtensionDto getCustomExtension() {
		return customExtension;
	}

	public void setCustomExtension(CustomExtensionDto customExtension) {
		this.customExtension = customExtension;
	}

	public List<ScimGroupMemberDTO> getGroups() {
		return groups;
	}

	public void setGroups(List<ScimGroupMemberDTO> groups) {
		this.groups = groups;
	} 

    
}
