class ContactProfileResponse { final bool success; final String message; final ContactData data; final int statusCode; final String timestamp; ContactProfileResponse({ required this.success, required this.message, required this.data, required this.statusCode, required this.timestamp, }); factory ContactProfileResponse.fromJson(Map json) { return ContactProfileResponse( success: json['success'], message: json['message'], data: ContactData.fromJson(json['data']), statusCode: json['statusCode'], timestamp: json['timestamp'], ); } } class ContactData { final String id; final String name; final String? description; final String organization; final String address; final String createdAt; final String updatedAt; final User createdBy; final User updatedBy; final List contactPhones; final List contactEmails; final ContactCategory? contactCategory; final List projects; final List buckets; final List tags; ContactData({ required this.id, required this.name, this.description, required this.organization, required this.address, required this.createdAt, required this.updatedAt, required this.createdBy, required this.updatedBy, required this.contactPhones, required this.contactEmails, this.contactCategory, required this.projects, required this.buckets, required this.tags, }); factory ContactData.fromJson(Map json) { return ContactData( id: json['id'], name: json['name'], description: json['description'], organization: json['organization'], address: json['address'], createdAt: json['createdAt'], updatedAt: json['updatedAt'], createdBy: User.fromJson(json['createdBy']), updatedBy: User.fromJson(json['updatedBy']), contactPhones: (json['contactPhones'] as List) .map((e) => ContactPhone.fromJson(e)) .toList(), contactEmails: (json['contactEmails'] as List) .map((e) => ContactEmail.fromJson(e)) .toList(), contactCategory: json['contactCategory'] != null ? ContactCategory.fromJson(json['contactCategory']) : null, projects: (json['projects'] as List) .map((e) => ProjectInfo.fromJson(e)) .toList(), buckets: (json['buckets'] as List).map((e) => Bucket.fromJson(e)).toList(), tags: (json['tags'] as List).map((e) => Tag.fromJson(e)).toList(), ); } } class User { final String id; final String firstName; final String lastName; final String? photo; final String jobRoleId; final String jobRoleName; User({ required this.id, required this.firstName, required this.lastName, this.photo, required this.jobRoleId, required this.jobRoleName, }); factory User.fromJson(Map json) { return User( id: json['id'], firstName: json['firstName'], lastName: json['lastName'], photo: json['photo'], jobRoleId: json['jobRoleId'], jobRoleName: json['jobRoleName'], ); } } class ContactPhone { final String id; final String label; final String phoneNumber; final String contactId; ContactPhone({ required this.id, required this.label, required this.phoneNumber, required this.contactId, }); factory ContactPhone.fromJson(Map json) { return ContactPhone( id: json['id'], label: json['label'], phoneNumber: json['phoneNumber'], contactId: json['contactId'], ); } } class ContactEmail { final String id; final String label; final String emailAddress; final String contactId; ContactEmail({ required this.id, required this.label, required this.emailAddress, required this.contactId, }); factory ContactEmail.fromJson(Map json) { return ContactEmail( id: json['id'], label: json['label'], emailAddress: json['emailAddress'], contactId: json['contactId'], ); } } class ContactCategory { final String id; final String name; final String? description; ContactCategory({ required this.id, required this.name, this.description, }); factory ContactCategory.fromJson(Map json) { return ContactCategory( id: json['id'], name: json['name'], description: json['description'], ); } } class ProjectInfo { final String id; final String name; ProjectInfo({ required this.id, required this.name, }); factory ProjectInfo.fromJson(Map json) { return ProjectInfo( id: json['id'], name: json['name'], ); } } class Bucket { final String id; final String name; final String description; final User createdBy; Bucket({ required this.id, required this.name, required this.description, required this.createdBy, }); factory Bucket.fromJson(Map json) { return Bucket( id: json['id'], name: json['name'], description: json['description'], createdBy: User.fromJson(json['createdBy']), ); } } class Tag { final String id; final String name; final String? description; Tag({ required this.id, required this.name, this.description, }); factory Tag.fromJson(Map json) { return Tag( id: json['id'], name: json['name'], description: json['description'], ); } }