loginUser method

Future<Map<String, dynamic>> loginUser(
  1. String phone,
  2. String otp
)

Implementation

Future<Map<String, dynamic>> loginUser(String phone, String otp) async {
 final normalizeNumber = _normalizePhone(phone);

 final res = await _api.post('/auth/api/login', {
   "phone_number": normalizeNumber,
   "otp": otp,
   "product_token": productToken,
 });

 print(" LOGIN RESPONSE STRUCTURE:");
 print("Full Response: $res");
 print("User Object: ${res["user"]}");

 if (res["success"] == true && res["token"] != null) {
   String? userId;
   String? tenantId;  // ← Add this

   if (res["user"] != null) {
     final userObj = res["user"];
     userId = userObj["id"]?.toString();
     tenantId = userObj["tenant_id"]?.toString();

     print("Extracting from user object:");
     print("user.id: ${userObj["id"]}");
     print("user.tenant_id: ${userObj["tenant_id"]}");
   }

   final role = res["active_session"]?["role_name"] ?? "employee";

   print(" EXTRACTED VALUES:");
   print(" UserId: $userId");
   print("TenantId: $tenantId");
   print("Role: $role");

   // Save with tenantId
   await _saveSession(
     res["token"],
     normalizeNumber,
     role: role,
     userId: userId,
     tenantId: tenantId,
   );
 }

 return res;
}