create submission
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/// Project Progress Model
|
||||
///
|
||||
/// Data model for project progress from API responses with Hive caching.
|
||||
/// Based on API response from frappe.client.get_list with doctype "Progress of construction"
|
||||
library;
|
||||
|
||||
import 'package:hive_ce/hive.dart';
|
||||
import 'package:worker/core/constants/storage_constants.dart';
|
||||
import 'package:worker/features/projects/domain/entities/project_progress.dart';
|
||||
|
||||
part 'project_progress_model.g.dart';
|
||||
|
||||
/// Project Progress Model - Type ID: 64
|
||||
@HiveType(typeId: HiveTypeIds.projectProgressModel)
|
||||
class ProjectProgressModel extends HiveObject {
|
||||
/// Unique identifier (API: name)
|
||||
@HiveField(0)
|
||||
final String id;
|
||||
|
||||
/// Progress status label in Vietnamese (API: status)
|
||||
@HiveField(1)
|
||||
final String status;
|
||||
|
||||
ProjectProgressModel({
|
||||
required this.id,
|
||||
required this.status,
|
||||
});
|
||||
|
||||
/// Create from JSON (API response)
|
||||
factory ProjectProgressModel.fromJson(Map<String, dynamic> json) {
|
||||
return ProjectProgressModel(
|
||||
id: json['name'] as String,
|
||||
status: json['status'] as String,
|
||||
);
|
||||
}
|
||||
|
||||
/// Convert to JSON
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'name': id,
|
||||
'status': status,
|
||||
};
|
||||
}
|
||||
|
||||
/// Convert to entity
|
||||
ProjectProgress toEntity() {
|
||||
return ProjectProgress(
|
||||
id: id,
|
||||
status: status,
|
||||
);
|
||||
}
|
||||
|
||||
/// Create from entity
|
||||
factory ProjectProgressModel.fromEntity(ProjectProgress entity) {
|
||||
return ProjectProgressModel(
|
||||
id: entity.id,
|
||||
status: entity.status,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user