using Baya.Application.Models.Common;
using Baya.Application.Models.Identity;
using Mediator;

namespace Baya.Application.Features.Identity.Commands.UpsertCustomerProfile;

/// <summary>
/// Creates (first call) or updates the signed-in customer's payer profile and its default emergency
/// contact (encrypted at rest). Optionally updates the customer's display name (persisted on the base
/// <c>users</c> row) and preferred UI language (persisted on the profile). Idempotent on the owning user.
/// </summary>
public record UpsertCustomerProfileCommand(
    string DefaultEmergencyContactName,
    string DefaultEmergencyContactPhone,
    string FirstName = null,
    string LastName = null,
    string PreferredLanguage = null) : IRequest<OperationResult<CustomerProfileDto>>;
