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; } } }