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

namespace Baya.Application.Features.Addresses.Commands.UpdateAddress;

/// <summary>Edits an address the signed-in customer owns. <c>Id</c> comes from the route; PII is
/// re-encrypted and coordinates are re-geocoded when the street line/city/district changes.</summary>
public record UpdateAddressCommand(
    long Id,
    string Title,
    long CityId,
    long? DistrictId,
    string AddressLine,
    string PostalCode,
    string RecipientName,
    string RecipientPhone,
    decimal? Latitude = null,
    decimal? Longitude = null) : IRequest<OperationResult<CustomerAddressDto>>;
