create submission

This commit is contained in:
Phuoc Nguyen
2025-11-27 16:56:01 +07:00
parent ba04576750
commit b6cb9e865a
18 changed files with 1445 additions and 138 deletions

View File

@@ -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,
);
}
}