update database
This commit is contained in:
78
lib/features/projects/data/models/design_request_model.dart
Normal file
78
lib/features/projects/data/models/design_request_model.dart
Normal file
@@ -0,0 +1,78 @@
|
||||
import 'dart:convert';
|
||||
import 'package:hive_ce/hive.dart';
|
||||
import 'package:worker/core/constants/storage_constants.dart';
|
||||
import 'package:worker/core/database/models/enums.dart';
|
||||
|
||||
part 'design_request_model.g.dart';
|
||||
|
||||
@HiveType(typeId: HiveTypeIds.designRequestModel)
|
||||
class DesignRequestModel extends HiveObject {
|
||||
DesignRequestModel({required this.requestId, required this.userId, required this.projectName, required this.projectType, required this.area, required this.style, required this.budget, required this.currentSituation, required this.requirements, this.notes, this.attachments, required this.status, this.assignedDesigner, this.finalDesignLink, this.feedback, this.rating, this.estimatedCompletion, required this.createdAt, this.completedAt, this.updatedAt});
|
||||
|
||||
@HiveField(0) final String requestId;
|
||||
@HiveField(1) final String userId;
|
||||
@HiveField(2) final String projectName;
|
||||
@HiveField(3) final ProjectType projectType;
|
||||
@HiveField(4) final double area;
|
||||
@HiveField(5) final String style;
|
||||
@HiveField(6) final double budget;
|
||||
@HiveField(7) final String currentSituation;
|
||||
@HiveField(8) final String requirements;
|
||||
@HiveField(9) final String? notes;
|
||||
@HiveField(10) final String? attachments;
|
||||
@HiveField(11) final DesignStatus status;
|
||||
@HiveField(12) final String? assignedDesigner;
|
||||
@HiveField(13) final String? finalDesignLink;
|
||||
@HiveField(14) final String? feedback;
|
||||
@HiveField(15) final int? rating;
|
||||
@HiveField(16) final DateTime? estimatedCompletion;
|
||||
@HiveField(17) final DateTime createdAt;
|
||||
@HiveField(18) final DateTime? completedAt;
|
||||
@HiveField(19) final DateTime? updatedAt;
|
||||
|
||||
factory DesignRequestModel.fromJson(Map<String, dynamic> json) => DesignRequestModel(
|
||||
requestId: json['request_id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
projectName: json['project_name'] as String,
|
||||
projectType: ProjectType.values.firstWhere((e) => e.name == json['project_type']),
|
||||
area: (json['area'] as num).toDouble(),
|
||||
style: json['style'] as String,
|
||||
budget: (json['budget'] as num).toDouble(),
|
||||
currentSituation: json['current_situation'] as String,
|
||||
requirements: json['requirements'] as String,
|
||||
notes: json['notes'] as String?,
|
||||
attachments: json['attachments'] != null ? jsonEncode(json['attachments']) : null,
|
||||
status: DesignStatus.values.firstWhere((e) => e.name == json['status']),
|
||||
assignedDesigner: json['assigned_designer'] as String?,
|
||||
finalDesignLink: json['final_design_link'] as String?,
|
||||
feedback: json['feedback'] as String?,
|
||||
rating: json['rating'] as int?,
|
||||
estimatedCompletion: json['estimated_completion'] != null ? DateTime.parse(json['estimated_completion']?.toString() ?? '') : null,
|
||||
createdAt: DateTime.parse(json['created_at']?.toString() ?? ''),
|
||||
completedAt: json['completed_at'] != null ? DateTime.parse(json['completed_at']?.toString() ?? '') : null,
|
||||
updatedAt: json['updated_at'] != null ? DateTime.parse(json['updated_at']?.toString() ?? '') : null,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'request_id': requestId,
|
||||
'user_id': userId,
|
||||
'project_name': projectName,
|
||||
'project_type': projectType.name,
|
||||
'area': area,
|
||||
'style': style,
|
||||
'budget': budget,
|
||||
'current_situation': currentSituation,
|
||||
'requirements': requirements,
|
||||
'notes': notes,
|
||||
'attachments': attachments != null ? jsonDecode(attachments!) : null,
|
||||
'status': status.name,
|
||||
'assigned_designer': assignedDesigner,
|
||||
'final_design_link': finalDesignLink,
|
||||
'feedback': feedback,
|
||||
'rating': rating,
|
||||
'estimated_completion': estimatedCompletion?.toIso8601String(),
|
||||
'created_at': createdAt.toIso8601String(),
|
||||
'completed_at': completedAt?.toIso8601String(),
|
||||
'updated_at': updatedAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'design_request_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// TypeAdapterGenerator
|
||||
// **************************************************************************
|
||||
|
||||
class DesignRequestModelAdapter extends TypeAdapter<DesignRequestModel> {
|
||||
@override
|
||||
final typeId = 15;
|
||||
|
||||
@override
|
||||
DesignRequestModel read(BinaryReader reader) {
|
||||
final numOfFields = reader.readByte();
|
||||
final fields = <int, dynamic>{
|
||||
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
|
||||
};
|
||||
return DesignRequestModel(
|
||||
requestId: fields[0] as String,
|
||||
userId: fields[1] as String,
|
||||
projectName: fields[2] as String,
|
||||
projectType: fields[3] as ProjectType,
|
||||
area: (fields[4] as num).toDouble(),
|
||||
style: fields[5] as String,
|
||||
budget: (fields[6] as num).toDouble(),
|
||||
currentSituation: fields[7] as String,
|
||||
requirements: fields[8] as String,
|
||||
notes: fields[9] as String?,
|
||||
attachments: fields[10] as String?,
|
||||
status: fields[11] as DesignStatus,
|
||||
assignedDesigner: fields[12] as String?,
|
||||
finalDesignLink: fields[13] as String?,
|
||||
feedback: fields[14] as String?,
|
||||
rating: (fields[15] as num?)?.toInt(),
|
||||
estimatedCompletion: fields[16] as DateTime?,
|
||||
createdAt: fields[17] as DateTime,
|
||||
completedAt: fields[18] as DateTime?,
|
||||
updatedAt: fields[19] as DateTime?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, DesignRequestModel obj) {
|
||||
writer
|
||||
..writeByte(20)
|
||||
..writeByte(0)
|
||||
..write(obj.requestId)
|
||||
..writeByte(1)
|
||||
..write(obj.userId)
|
||||
..writeByte(2)
|
||||
..write(obj.projectName)
|
||||
..writeByte(3)
|
||||
..write(obj.projectType)
|
||||
..writeByte(4)
|
||||
..write(obj.area)
|
||||
..writeByte(5)
|
||||
..write(obj.style)
|
||||
..writeByte(6)
|
||||
..write(obj.budget)
|
||||
..writeByte(7)
|
||||
..write(obj.currentSituation)
|
||||
..writeByte(8)
|
||||
..write(obj.requirements)
|
||||
..writeByte(9)
|
||||
..write(obj.notes)
|
||||
..writeByte(10)
|
||||
..write(obj.attachments)
|
||||
..writeByte(11)
|
||||
..write(obj.status)
|
||||
..writeByte(12)
|
||||
..write(obj.assignedDesigner)
|
||||
..writeByte(13)
|
||||
..write(obj.finalDesignLink)
|
||||
..writeByte(14)
|
||||
..write(obj.feedback)
|
||||
..writeByte(15)
|
||||
..write(obj.rating)
|
||||
..writeByte(16)
|
||||
..write(obj.estimatedCompletion)
|
||||
..writeByte(17)
|
||||
..write(obj.createdAt)
|
||||
..writeByte(18)
|
||||
..write(obj.completedAt)
|
||||
..writeByte(19)
|
||||
..write(obj.updatedAt);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => typeId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is DesignRequestModelAdapter &&
|
||||
runtimeType == other.runtimeType &&
|
||||
typeId == other.typeId;
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
import 'dart:convert';
|
||||
import 'package:hive_ce/hive.dart';
|
||||
import 'package:worker/core/constants/storage_constants.dart';
|
||||
import 'package:worker/core/database/models/enums.dart';
|
||||
|
||||
part 'project_submission_model.g.dart';
|
||||
|
||||
@HiveType(typeId: HiveTypeIds.projectSubmissionModel)
|
||||
class ProjectSubmissionModel extends HiveObject {
|
||||
ProjectSubmissionModel({required this.submissionId, required this.userId, required this.projectName, required this.projectAddress, required this.projectValue, required this.projectType, this.beforePhotos, this.afterPhotos, this.invoices, required this.status, this.reviewNotes, this.rejectionReason, this.pointsEarned, required this.submittedAt, this.reviewedAt, this.reviewedBy});
|
||||
|
||||
@HiveField(0) final String submissionId;
|
||||
@HiveField(1) final String userId;
|
||||
@HiveField(2) final String projectName;
|
||||
@HiveField(3) final String projectAddress;
|
||||
@HiveField(4) final double projectValue;
|
||||
@HiveField(5) final ProjectType projectType;
|
||||
@HiveField(6) final String? beforePhotos;
|
||||
@HiveField(7) final String? afterPhotos;
|
||||
@HiveField(8) final String? invoices;
|
||||
@HiveField(9) final SubmissionStatus status;
|
||||
@HiveField(10) final String? reviewNotes;
|
||||
@HiveField(11) final String? rejectionReason;
|
||||
@HiveField(12) final int? pointsEarned;
|
||||
@HiveField(13) final DateTime submittedAt;
|
||||
@HiveField(14) final DateTime? reviewedAt;
|
||||
@HiveField(15) final String? reviewedBy;
|
||||
|
||||
factory ProjectSubmissionModel.fromJson(Map<String, dynamic> json) => ProjectSubmissionModel(
|
||||
submissionId: json['submission_id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
projectName: json['project_name'] as String,
|
||||
projectAddress: json['project_address'] as String,
|
||||
projectValue: (json['project_value'] as num).toDouble(),
|
||||
projectType: ProjectType.values.firstWhere((e) => e.name == json['project_type']),
|
||||
beforePhotos: json['before_photos'] != null ? jsonEncode(json['before_photos']) : null,
|
||||
afterPhotos: json['after_photos'] != null ? jsonEncode(json['after_photos']) : null,
|
||||
invoices: json['invoices'] != null ? jsonEncode(json['invoices']) : null,
|
||||
status: SubmissionStatus.values.firstWhere((e) => e.name == json['status']),
|
||||
reviewNotes: json['review_notes'] as String?,
|
||||
rejectionReason: json['rejection_reason'] as String?,
|
||||
pointsEarned: json['points_earned'] as int?,
|
||||
submittedAt: DateTime.parse(json['submitted_at']?.toString() ?? ''),
|
||||
reviewedAt: json['reviewed_at'] != null ? DateTime.parse(json['reviewed_at']?.toString() ?? '') : null,
|
||||
reviewedBy: json['reviewed_by'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'submission_id': submissionId,
|
||||
'user_id': userId,
|
||||
'project_name': projectName,
|
||||
'project_address': projectAddress,
|
||||
'project_value': projectValue,
|
||||
'project_type': projectType.name,
|
||||
'before_photos': beforePhotos != null ? jsonDecode(beforePhotos!) : null,
|
||||
'after_photos': afterPhotos != null ? jsonDecode(afterPhotos!) : null,
|
||||
'invoices': invoices != null ? jsonDecode(invoices!) : null,
|
||||
'status': status.name,
|
||||
'review_notes': reviewNotes,
|
||||
'rejection_reason': rejectionReason,
|
||||
'points_earned': pointsEarned,
|
||||
'submitted_at': submittedAt.toIso8601String(),
|
||||
'reviewed_at': reviewedAt?.toIso8601String(),
|
||||
'reviewed_by': reviewedBy,
|
||||
};
|
||||
|
||||
List<String>? get beforePhotosList {
|
||||
if (beforePhotos == null) return null;
|
||||
try {
|
||||
final decoded = jsonDecode(beforePhotos!) as List;
|
||||
return decoded.map((e) => e.toString()).toList();
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
List<String>? get afterPhotosList {
|
||||
if (afterPhotos == null) return null;
|
||||
try {
|
||||
final decoded = jsonDecode(afterPhotos!) as List;
|
||||
return decoded.map((e) => e.toString()).toList();
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'project_submission_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// TypeAdapterGenerator
|
||||
// **************************************************************************
|
||||
|
||||
class ProjectSubmissionModelAdapter
|
||||
extends TypeAdapter<ProjectSubmissionModel> {
|
||||
@override
|
||||
final typeId = 14;
|
||||
|
||||
@override
|
||||
ProjectSubmissionModel read(BinaryReader reader) {
|
||||
final numOfFields = reader.readByte();
|
||||
final fields = <int, dynamic>{
|
||||
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
|
||||
};
|
||||
return ProjectSubmissionModel(
|
||||
submissionId: fields[0] as String,
|
||||
userId: fields[1] as String,
|
||||
projectName: fields[2] as String,
|
||||
projectAddress: fields[3] as String,
|
||||
projectValue: (fields[4] as num).toDouble(),
|
||||
projectType: fields[5] as ProjectType,
|
||||
beforePhotos: fields[6] as String?,
|
||||
afterPhotos: fields[7] as String?,
|
||||
invoices: fields[8] as String?,
|
||||
status: fields[9] as SubmissionStatus,
|
||||
reviewNotes: fields[10] as String?,
|
||||
rejectionReason: fields[11] as String?,
|
||||
pointsEarned: (fields[12] as num?)?.toInt(),
|
||||
submittedAt: fields[13] as DateTime,
|
||||
reviewedAt: fields[14] as DateTime?,
|
||||
reviewedBy: fields[15] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, ProjectSubmissionModel obj) {
|
||||
writer
|
||||
..writeByte(16)
|
||||
..writeByte(0)
|
||||
..write(obj.submissionId)
|
||||
..writeByte(1)
|
||||
..write(obj.userId)
|
||||
..writeByte(2)
|
||||
..write(obj.projectName)
|
||||
..writeByte(3)
|
||||
..write(obj.projectAddress)
|
||||
..writeByte(4)
|
||||
..write(obj.projectValue)
|
||||
..writeByte(5)
|
||||
..write(obj.projectType)
|
||||
..writeByte(6)
|
||||
..write(obj.beforePhotos)
|
||||
..writeByte(7)
|
||||
..write(obj.afterPhotos)
|
||||
..writeByte(8)
|
||||
..write(obj.invoices)
|
||||
..writeByte(9)
|
||||
..write(obj.status)
|
||||
..writeByte(10)
|
||||
..write(obj.reviewNotes)
|
||||
..writeByte(11)
|
||||
..write(obj.rejectionReason)
|
||||
..writeByte(12)
|
||||
..write(obj.pointsEarned)
|
||||
..writeByte(13)
|
||||
..write(obj.submittedAt)
|
||||
..writeByte(14)
|
||||
..write(obj.reviewedAt)
|
||||
..writeByte(15)
|
||||
..write(obj.reviewedBy);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => typeId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is ProjectSubmissionModelAdapter &&
|
||||
runtimeType == other.runtimeType &&
|
||||
typeId == other.typeId;
|
||||
}
|
||||
Reference in New Issue
Block a user