ManagerAssignmentModel.fromJson constructor

ManagerAssignmentModel.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory ManagerAssignmentModel.fromJson(Map<String, dynamic> json) {
  // PostgREST disambiguates profiles via FK constraint name.
  // The select string uses:
  //   profiles!manager_assignments_manager_profiles_fk(display_name)
  //   profiles!manager_assignments_managed_profiles_fk(display_name)
  // PostgREST nests these under the FK-hint alias.
  final managerProfile =
      json['manager_profile'] as Map<String, dynamic>? ??
      json['profiles!manager_assignments_manager_profiles_fk']
          as Map<String, dynamic>?;
  final managedProfile =
      json['managed_profile'] as Map<String, dynamic>? ??
      json['profiles!manager_assignments_managed_profiles_fk']
          as Map<String, dynamic>?;

  return ManagerAssignmentModel(
    id: json['id'] as String,
    orgId: json['org_id'] as String,
    managerUserId: json['manager_user_id'] as String,
    managedUserId: json['managed_user_id'] as String,
    assignedAt: DateTime.parse(json['assigned_at'] as String),
    assignedBy: json['assigned_by'] as String,
    managerDisplayName: managerProfile?['display_name'] as String?,
    managedDisplayName: managedProfile?['display_name'] as String?,
    managerEmail: managerProfile?['email'] as String?,
    managedEmail: managedProfile?['email'] as String?,
  );
}