namespace Fitness_core_BE.DTOs.Mobile
{
/// Self-service profile update (mobile). Distinct from DTOs/Customer/UpdateCustomerRequest,
/// which is the client-managed shape used by ClientController.
public class UpdateCustomerProfileRequest
{
public string? Fullname { get; set; }
public string? Gender { get; set; }
public DateOnly? Bod { get; set; }
public string? PrimaryPH { get; set; }
public string? SecondaryPH { get; set; }
public string? Nic { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
}
public class UpdateHealthRequest
{
public string? BloodGroup { get; set; }
public string? Disabilities { get; set; }
}
public class CreateProgressRequest
{
public decimal? Height { get; set; }
public decimal? CurrentWeight { get; set; }
public decimal? TargetWeight { get; set; }
public string? Goal { get; set; }
public int? Age { get; set; }
public string? Gender { get; set; }
public string? ActivityLevel { get; set; }
public decimal? TimePeriod { get; set; }
}
/// Updates the customer's latest height and/or weight measurement.
public class UpdateProgressRequest
{
public decimal? Height { get; set; }
public decimal? Weight { get; set; }
public DateTime? ProgressDate { get; set; }
}
/// Member self-serve "add card" for auto-deduct. cardToken is an opaque client-side
/// value (mock today, would be real PayHere/Stripe tokenization once a gateway is wired up).
public class SaveCardRequest
{
public string CardToken { get; set; } = string.Empty;
public string? CardLast4 { get; set; }
public string? CardType { get; set; }
public string? NickName { get; set; }
/// Must be explicitly true — this is the member's auto-deduct consent.
public bool Consent { get; set; }
}
public class SetAutoChargeRequest
{
public bool Enabled { get; set; }
public Guid? CardId { get; set; }
}
public class UpdatePushTokenRequest
{
public string PushTokenId { get; set; } = string.Empty;
}
/// documentId comes from POST /customer/documents' upload response — the client
/// uploads the picked image first, then links it here as the profile picture.
public class UpdateProfileImageRequest
{
public int DocumentId { get; set; }
}
}