marco.pms.mobileapp/lib/model/directory/directory_comment_model.dart
Vaibhav Surve a0f1602f4e feat(directory): add contact profile and directory management features
- Implemented ContactProfileResponse and related models for handling contact details.
- Created ContactTagResponse and ContactTag models for managing contact tags.
- Added DirectoryCommentResponse and DirectoryComment models for comment management.
- Developed DirectoryFilterBottomSheet for filtering contacts.
- Introduced OrganizationListModel for organization data handling.
- Updated routes to include DirectoryMainScreen.
- Enhanced DashboardScreen to navigate to the new directory page.
- Created ContactDetailScreen for displaying detailed contact information.
- Developed DirectoryMainScreen for managing and displaying contacts.
- Added dependencies for font_awesome_flutter and flutter_html in pubspec.yaml.
2025-07-02 15:57:39 +05:30

102 lines
2.6 KiB
Dart

class DirectoryCommentResponse {
final bool success;
final String message;
final List<DirectoryComment> data;
final int statusCode;
final String? timestamp;
DirectoryCommentResponse({
required this.success,
required this.message,
required this.data,
required this.statusCode,
this.timestamp,
});
factory DirectoryCommentResponse.fromJson(Map<String, dynamic> json) {
return DirectoryCommentResponse(
success: json['success'] ?? false,
message: json['message'] ?? '',
data: (json['data'] as List<dynamic>?)
?.map((e) => DirectoryComment.fromJson(e))
.toList() ??
[],
statusCode: json['statusCode'] ?? 0,
timestamp: json['timestamp'],
);
}
}
class DirectoryComment {
final String id;
final String note;
final String contactName;
final String organizationName;
final DateTime createdAt;
final CommentUser createdBy;
final DateTime? updatedAt;
final CommentUser? updatedBy;
final String contactId;
final bool isActive;
DirectoryComment({
required this.id,
required this.note,
required this.contactName,
required this.organizationName,
required this.createdAt,
required this.createdBy,
this.updatedAt,
this.updatedBy,
required this.contactId,
required this.isActive,
});
factory DirectoryComment.fromJson(Map<String, dynamic> json) {
return DirectoryComment(
id: json['id'] ?? '',
note: json['note'] ?? '',
contactName: json['contactName'] ?? '',
organizationName: json['organizationName'] ?? '',
createdAt: DateTime.parse(json['createdAt']),
createdBy: CommentUser.fromJson(json['createdBy']),
updatedAt:
json['updatedAt'] != null ? DateTime.parse(json['updatedAt']) : null,
updatedBy: json['updatedBy'] != null
? CommentUser.fromJson(json['updatedBy'])
: null,
contactId: json['contactId'] ?? '',
isActive: json['isActive'] ?? true,
);
}
}
class CommentUser {
final String id;
final String firstName;
final String lastName;
final String? photo;
final String jobRoleId;
final String jobRoleName;
CommentUser({
required this.id,
required this.firstName,
required this.lastName,
this.photo,
required this.jobRoleId,
required this.jobRoleName,
});
factory CommentUser.fromJson(Map<String, dynamic> json) {
return CommentUser(
id: json['id'] ?? '',
firstName: json['firstName'] ?? '',
lastName: json['lastName'] ?? '',
photo: json['photo'],
jobRoleId: json['jobRoleId'] ?? '',
jobRoleName: json['jobRoleName'] ?? '',
);
}
}