73 lines
2.0 KiB
Dart
73 lines
2.0 KiB
Dart
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
|
|
class TaskLogModel {
|
|
final String id;
|
|
final String userId;
|
|
final String userName;
|
|
final String projectId;
|
|
final String projectName;
|
|
final String branchId;
|
|
final String branchName;
|
|
final String? flavor;
|
|
final String moduleName;
|
|
final String status; // in_progress | done | blocked
|
|
final String remarks;
|
|
final DateTime date;
|
|
final DateTime createdAt;
|
|
|
|
TaskLogModel({
|
|
required this.id,
|
|
required this.userId,
|
|
required this.userName,
|
|
required this.projectId,
|
|
required this.projectName,
|
|
required this.branchId,
|
|
required this.branchName,
|
|
this.flavor,
|
|
required this.moduleName,
|
|
required this.status,
|
|
required this.remarks,
|
|
required this.date,
|
|
required this.createdAt,
|
|
});
|
|
|
|
factory TaskLogModel.fromMap(String id, Map<String, dynamic> data) {
|
|
return TaskLogModel(
|
|
id: id,
|
|
userId: data['userId'] ?? '',
|
|
userName: data['userName'] ?? '',
|
|
projectId: data['projectId'] ?? '',
|
|
projectName: data['projectName'] ?? '',
|
|
branchId: data['branchId'] ?? '',
|
|
branchName: data['branchName'] ?? '',
|
|
flavor: data['flavor'],
|
|
moduleName: data['moduleName'] ?? '',
|
|
status: data['status'] ?? 'in_progress',
|
|
remarks: data['remarks'] ?? '',
|
|
date: (data['date'] is Timestamp)
|
|
? (data['date'] as Timestamp).toDate()
|
|
: DateTime.now(),
|
|
createdAt: (data['createdAt'] is Timestamp)
|
|
? (data['createdAt'] as Timestamp).toDate()
|
|
: DateTime.now(),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'userId': userId,
|
|
'userName': userName,
|
|
'projectId': projectId,
|
|
'projectName': projectName,
|
|
'branchId': branchId,
|
|
'branchName': branchName,
|
|
'flavor': flavor,
|
|
'moduleName': moduleName,
|
|
'status': status,
|
|
'remarks': remarks,
|
|
'date': Timestamp.fromDate(date),
|
|
'createdAt': Timestamp.fromDate(createdAt),
|
|
};
|
|
}
|
|
}
|