/// 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 json) { return ProjectProgressModel( id: json['name'] as String, status: json['status'] as String, ); } /// Convert to JSON Map 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, ); } }