주요 변경사항: - Company-Branch → 계층형 Company 구조 완전 마이그레이션 - Equipment 모델 필드명 표준화 (current_company_id → company_id) - DropdownButton assertion 오류 완전 해결 - 지점 추가 드롭다운 페이지네이션 문제 해결 (20개→55개 전체 표시) - Equipment 백엔드 API 데이터 활용도 40%→100% 달성 - 소프트 딜리트 시스템 안정성 향상 기술적 개선: - Branch 관련 deprecated 메서드 정리 - Equipment Status 유효성 검증 로직 추가 - Company 리스트 페이지네이션 최적화 - DTO 모델 Freezed 코드 생성 완료 - 테스트 파일 API 구조 변경 대응 성과: - Flutter 웹 빌드 성공 (컴파일 에러 0건) - 백엔드 API 호환성 95% 달성 - 시스템 안정성 및 사용자 경험 대폭 개선
36 lines
1.5 KiB
Dart
36 lines
1.5 KiB
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
import 'package:superport/core/utils/equipment_status_converter.dart';
|
|
|
|
part 'equipment_response.freezed.dart';
|
|
part 'equipment_response.g.dart';
|
|
|
|
@freezed
|
|
class EquipmentResponse with _$EquipmentResponse {
|
|
const factory EquipmentResponse({
|
|
required int id,
|
|
@JsonKey(name: 'equipment_number') required String equipmentNumber,
|
|
String? category1,
|
|
String? category2,
|
|
String? category3,
|
|
required String manufacturer,
|
|
@JsonKey(name: 'model_name') String? modelName,
|
|
@JsonKey(name: 'serial_number') String? serialNumber,
|
|
String? barcode,
|
|
@JsonKey(name: 'purchase_date') DateTime? purchaseDate,
|
|
@JsonKey(name: 'purchase_price') String? purchasePrice,
|
|
@EquipmentStatusJsonConverter() required String status,
|
|
@JsonKey(name: 'company_id') int? companyId,
|
|
@JsonKey(name: 'warehouse_location_id') int? warehouseLocationId,
|
|
@JsonKey(name: 'last_inspection_date') DateTime? lastInspectionDate,
|
|
@JsonKey(name: 'next_inspection_date') DateTime? nextInspectionDate,
|
|
String? remark,
|
|
@JsonKey(name: 'created_at') required DateTime createdAt,
|
|
@JsonKey(name: 'updated_at') required DateTime updatedAt,
|
|
// 추가 필드 (조인된 데이터)
|
|
@JsonKey(name: 'company_name') String? companyName,
|
|
@JsonKey(name: 'warehouse_name') String? warehouseName,
|
|
}) = _EquipmentResponse;
|
|
|
|
factory EquipmentResponse.fromJson(Map<String, dynamic> json) =>
|
|
_$EquipmentResponseFromJson(json);
|
|
} |