242 lines
6.5 KiB
Dart
242 lines
6.5 KiB
Dart
class ServiceProjectDetailModel {
|
|
final bool success;
|
|
final String message;
|
|
final ProjectDetail? data;
|
|
final dynamic errors;
|
|
final int statusCode;
|
|
final DateTime timestamp;
|
|
|
|
ServiceProjectDetailModel({
|
|
required this.success,
|
|
required this.message,
|
|
this.data,
|
|
this.errors,
|
|
required this.statusCode,
|
|
required this.timestamp,
|
|
});
|
|
|
|
factory ServiceProjectDetailModel.fromJson(Map<String, dynamic> json) {
|
|
return ServiceProjectDetailModel(
|
|
success: json['success'] ?? false,
|
|
message: json['message'] ?? '',
|
|
data: json['data'] != null ? ProjectDetail.fromJson(json['data']) : null,
|
|
errors: json['errors'],
|
|
statusCode: json['statusCode'] ?? 0,
|
|
timestamp: DateTime.parse(json['timestamp'] ?? DateTime.now().toIso8601String()),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'success': success,
|
|
'message': message,
|
|
'data': data?.toJson(),
|
|
'errors': errors,
|
|
'statusCode': statusCode,
|
|
'timestamp': timestamp.toIso8601String(),
|
|
};
|
|
}
|
|
|
|
class ProjectDetail {
|
|
final String id;
|
|
final String name;
|
|
final String shortName;
|
|
final String address;
|
|
final DateTime assignedDate;
|
|
final Status? status;
|
|
final Client? client;
|
|
final List<Service>? services;
|
|
final int numberOfJobs;
|
|
final String contactName;
|
|
final String contactPhone;
|
|
final String contactEmail;
|
|
final DateTime createdAt;
|
|
final User? createdBy;
|
|
final DateTime updatedAt;
|
|
final User? updatedBy;
|
|
|
|
ProjectDetail({
|
|
required this.id,
|
|
required this.name,
|
|
required this.shortName,
|
|
required this.address,
|
|
required this.assignedDate,
|
|
this.status,
|
|
this.client,
|
|
this.services,
|
|
required this.numberOfJobs,
|
|
required this.contactName,
|
|
required this.contactPhone,
|
|
required this.contactEmail,
|
|
required this.createdAt,
|
|
this.createdBy,
|
|
required this.updatedAt,
|
|
this.updatedBy,
|
|
});
|
|
|
|
factory ProjectDetail.fromJson(Map<String, dynamic> json) {
|
|
return ProjectDetail(
|
|
id: json['id'] ?? '',
|
|
name: json['name'] ?? '',
|
|
shortName: json['shortName'] ?? '',
|
|
address: json['address'] ?? '',
|
|
assignedDate: DateTime.parse(json['assignedDate'] ?? DateTime.now().toIso8601String()),
|
|
status: json['status'] != null ? Status.fromJson(json['status']) : null,
|
|
client: json['client'] != null ? Client.fromJson(json['client']) : null,
|
|
services: json['services'] != null
|
|
? List<Service>.from(json['services'].map((x) => Service.fromJson(x)))
|
|
: [],
|
|
numberOfJobs: json['numberOfJobs'] ?? 0,
|
|
contactName: json['contactName'] ?? '',
|
|
contactPhone: json['contactPhone'] ?? '',
|
|
contactEmail: json['contactEmail'] ?? '',
|
|
createdAt: DateTime.parse(json['createdAt'] ?? DateTime.now().toIso8601String()),
|
|
createdBy: json['createdBy'] != null ? User.fromJson(json['createdBy']) : null,
|
|
updatedAt: DateTime.parse(json['updatedAt'] ?? DateTime.now().toIso8601String()),
|
|
updatedBy: json['updatedBy'] != null ? User.fromJson(json['updatedBy']) : null,
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'name': name,
|
|
'shortName': shortName,
|
|
'address': address,
|
|
'assignedDate': assignedDate.toIso8601String(),
|
|
'status': status?.toJson(),
|
|
'client': client?.toJson(),
|
|
'services': services?.map((x) => x.toJson()).toList(),
|
|
'numberOfJobs': numberOfJobs,
|
|
'contactName': contactName,
|
|
'contactPhone': contactPhone,
|
|
'contactEmail': contactEmail,
|
|
'createdAt': createdAt.toIso8601String(),
|
|
'createdBy': createdBy?.toJson(),
|
|
'updatedAt': updatedAt.toIso8601String(),
|
|
'updatedBy': updatedBy?.toJson(),
|
|
};
|
|
}
|
|
|
|
class Status {
|
|
final String id;
|
|
final String status;
|
|
|
|
Status({required this.id, required this.status});
|
|
|
|
factory Status.fromJson(Map<String, dynamic> json) =>
|
|
Status(id: json['id'] ?? '', status: json['status'] ?? '');
|
|
|
|
Map<String, dynamic> toJson() => {'id': id, 'status': status};
|
|
}
|
|
|
|
class Client {
|
|
final String id;
|
|
final String name;
|
|
final String? email;
|
|
final String? contactPerson;
|
|
final String? address;
|
|
final String? contactNumber;
|
|
final int? sprid;
|
|
|
|
Client({
|
|
required this.id,
|
|
required this.name,
|
|
this.email,
|
|
this.contactPerson,
|
|
this.address,
|
|
this.contactNumber,
|
|
this.sprid,
|
|
});
|
|
|
|
factory Client.fromJson(Map<String, dynamic> json) => Client(
|
|
id: json['id'] ?? '',
|
|
name: json['name'] ?? '',
|
|
email: json['email'],
|
|
contactPerson: json['contactPerson'],
|
|
address: json['address'],
|
|
contactNumber: json['contactNumber'],
|
|
sprid: json['sprid'],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'name': name,
|
|
'email': email,
|
|
'contactPerson': contactPerson,
|
|
'address': address,
|
|
'contactNumber': contactNumber,
|
|
'sprid': sprid,
|
|
};
|
|
}
|
|
|
|
class Service {
|
|
final String id;
|
|
final String name;
|
|
final String? description;
|
|
final bool isSystem;
|
|
final bool isActive;
|
|
|
|
Service({
|
|
required this.id,
|
|
required this.name,
|
|
this.description,
|
|
required this.isSystem,
|
|
required this.isActive,
|
|
});
|
|
|
|
factory Service.fromJson(Map<String, dynamic> json) => Service(
|
|
id: json['id'] ?? '',
|
|
name: json['name'] ?? '',
|
|
description: json['description'],
|
|
isSystem: json['isSystem'] ?? false,
|
|
isActive: json['isActive'] ?? false,
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'name': name,
|
|
'description': description,
|
|
'isSystem': isSystem,
|
|
'isActive': isActive,
|
|
};
|
|
}
|
|
|
|
class User {
|
|
final String id;
|
|
final String firstName;
|
|
final String lastName;
|
|
final String email;
|
|
final String? photo;
|
|
final String? jobRoleId;
|
|
final String? jobRoleName;
|
|
|
|
User({
|
|
required this.id,
|
|
required this.firstName,
|
|
required this.lastName,
|
|
required this.email,
|
|
this.photo,
|
|
this.jobRoleId,
|
|
this.jobRoleName,
|
|
});
|
|
|
|
factory User.fromJson(Map<String, dynamic> json) => User(
|
|
id: json['id'] ?? '',
|
|
firstName: json['firstName'] ?? '',
|
|
lastName: json['lastName'] ?? '',
|
|
email: json['email'] ?? '',
|
|
photo: json['photo'],
|
|
jobRoleId: json['jobRoleId'],
|
|
jobRoleName: json['jobRoleName'],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'firstName': firstName,
|
|
'lastName': lastName,
|
|
'email': email,
|
|
'photo': photo,
|
|
'jobRoleId': jobRoleId,
|
|
'jobRoleName': jobRoleName,
|
|
};
|
|
}
|