// To parse this JSON data, do // // final permissionAssignment = permissionAssignmentFromJson(jsonString); import 'package:meta/meta.dart'; import 'package:unit2/model/rbac/permission.dart'; import 'dart:convert'; import 'package:unit2/model/rbac/rbac.dart'; import 'package:unit2/model/rbac/user.dart'; PermissionAssignment permissionAssignmentFromJson(String str) => PermissionAssignment.fromJson(json.decode(str)); String permissionAssignmentToJson(PermissionAssignment data) => json.encode(data.toJson()); class PermissionAssignment { final int? id; final RBAC? role; final RBACPermission? permission; final DateTime? createdAt; final DateTime? updatedAt; final User? createdBy; final User? updatedBy; PermissionAssignment({ required this.id, required this.role, required this.permission, required this.createdAt, required this.updatedAt, required this.createdBy, required this.updatedBy, }); factory PermissionAssignment.fromJson(Map json) => PermissionAssignment( id: json["id"], role: json["role"] == null? null: RBAC.fromJson(json["role"]), permission:json["permission"] == null?null: RBACPermission.fromJson(json["permission"]), createdAt: json['created_at'] == null?null: DateTime.parse(json["created_at"]), updatedAt:json['updated_at'] == null?null: DateTime.parse(json["updated_at"]), createdBy:json["created_by"] == null?null: User.fromJson(json["created_by"]), updatedBy: json["updated_by"] == null? null:User.fromJson(json["created_by"]), ); Map toJson() => { "id": id, "role": role?.toJson(), "permission": permission?.toJson(), "created_at": createdAt?.toIso8601String(), "updated_at": updatedAt, "created_by": createdBy?.toJson(), "updated_by": updatedBy, }; } class CreatedBy { final int id; final String username; final String firstName; final String lastName; final String email; final bool isActive; CreatedBy({ required this.id, required this.username, required this.firstName, required this.lastName, required this.email, required this.isActive, }); factory CreatedBy.fromJson(Map json) => CreatedBy( id: json["id"], username: json["username"], firstName: json["first_name"], lastName: json["last_name"], email: json["email"], isActive: json["is_active"], ); Map toJson() => { "id": id, "username": username, "first_name": firstName, "last_name": lastName, "email": email, "is_active": isActive, }; } class Permission { final int id; final Role object; final Role operation; final DateTime createdAt; final dynamic updatedAt; final CreatedBy createdBy; final dynamic updatedBy; Permission({ required this.id, required this.object, required this.operation, required this.createdAt, required this.updatedAt, required this.createdBy, required this.updatedBy, }); factory Permission.fromJson(Map json) => Permission( id: json["id"], object: Role.fromJson(json["object"]), operation: Role.fromJson(json["operation"]), createdAt: DateTime.parse(json["created_at"]), updatedAt: json["updated_at"], createdBy: CreatedBy.fromJson(json["created_by"]), updatedBy: json["updated_by"], ); Map toJson() => { "id": id, "object": object.toJson(), "operation": operation.toJson(), "created_at": createdAt.toIso8601String(), "updated_at": updatedAt, "created_by": createdBy.toJson(), "updated_by": updatedBy, }; } class Role { final int id; final String name; final String slug; final String shorthand; final DateTime createdAt; final dynamic updatedAt; final CreatedBy createdBy; final dynamic updatedBy; Role({ required this.id, required this.name, required this.slug, required this.shorthand, required this.createdAt, required this.updatedAt, required this.createdBy, required this.updatedBy, }); factory Role.fromJson(Map json) => Role( id: json["id"], name: json["name"], slug: json["slug"], shorthand: json["shorthand"], createdAt: DateTime.parse(json["created_at"]), updatedAt: json["updated_at"], createdBy: CreatedBy.fromJson(json["created_by"]), updatedBy: json["updated_by"], ); Map toJson() => { "id": id, "name": name, "slug": slug, "shorthand": shorthand, "created_at": createdAt.toIso8601String(), "updated_at": updatedAt, "created_by": createdBy.toJson(), "updated_by": updatedBy, }; }