AuthAccountUpdate.java
package com.cloudforge.core.manager.auth;
/**
* Partial update for {@link AuthBackend#updateAccount} — every field is {@code null}/unset unless
* the caller means to change it (no "clear this field" sentinel is needed; every field here is
* meaningful when present and skipped when absent, matching the semantics of the {@code
* Map<String,Object> body}-based updates this replaced).
*
* @param email {@code null} to leave unchanged
* @param displayName local-only concept, ignored by {@code CognitoAuthBackend}; {@code null} to
* leave unchanged
* @param role {@code null} to leave unchanged
* @param enabled Cognito-only (account enable/disable); ignored by {@code LocalH2AuthBackend};
* {@code null} to leave unchanged
* @param newPassword local-only password reset; ignored by {@code CognitoAuthBackend}; {@code
* null} to leave unchanged
* @param linkedAccountId {@code null} to leave unchanged; non-null sets/replaces the cross-backend
* link — see {@link AuthAccount#linkedAccountId()}
*/
public record AuthAccountUpdate(
String email,
String displayName,
String role,
Boolean enabled,
String newPassword,
String linkedAccountId
) {
}