namespace Meezi.API.Models.Auth; public record SendOtpRequest(string Phone); public record VerifyOtpRequest(string Phone, string Code, string? CafeId = null); public record RefreshTokenRequest(string RefreshToken); public record SwitchCafeRequest(string CafeId); /// Step 1 of self-registration: send OTP to a new phone number. public record RegisterRequest(string Phone, string CafeName); /// Step 2 of self-registration: verify OTP and create the cafe account. public record VerifyRegisterRequest(string Phone, string Code); /// One café membership entry returned when user belongs to multiple cafés. public record CafeMembershipDto(string CafeId, string CafeName, string Role, string PlanTier); public record AuthTokenResponse( string AccessToken, string RefreshToken, DateTime ExpiresAt, string UserId, string CafeId, string Role, string PlanTier, string Language, string Actor = Meezi.Core.Constants.MeeziActorKinds.Merchant, string? BranchId = null, List? Memberships = null); public record SendOtpResponse(bool Sent, int ExpiresInSeconds); /// Returned when a phone number belongs to multiple cafés and no CafeId was specified. public record CafeChoicesResponse(List Cafes);