export interface LoginResponse { message: string; phone: string; code: string; } export interface VerifyOtpResponse { message: string; isNewUser: boolean; accessToken: string; refreshToken: string; user: User; } export interface User { id: string; roleId: string; roleEnum: RoleEnum; name: string | null; email: string | null; phone: string; profileImage: string | null; status: UserStatus; mfaEnabled: boolean; createdAt: string; updatedAt: string; deletedAt: string | null; isDeleted: boolean; lastLogoutAt: string | null; loginAt: string; refreshTokenId: string; refreshTokenHash: string; refreshTokenExpiresAt: string; categoryPreferences: CategoryPreference[]; gender: Gender | null; dateOfBirth: string | null; role: Role; // merchants: Merchant[]; } export interface Role { id: string; code: string; scope: string; isSystem: boolean; } export interface CategoryPreference { // Extend when backend starts returning data } export interface Merchant { name: string; imageUrl: string | null; } export type RoleEnum = 'CUSTOMER'; export type UserStatus = 'ONBOARDING' | 'ACTIVE' | 'INACTIVE' | 'BLOCKED'; export type Gender = 'MALE' | 'FEMALE' | 'OTHER';