feat: 소프트 딜리트 기능 전면 구현 완료
Some checks failed
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
Flutter Test & Quality Check / Build APK (push) Has been cancelled

## 주요 변경사항
- Company, Equipment, License, Warehouse Location 모든 화면에 소프트 딜리트 구현
- 관리자 권한으로 삭제된 데이터 조회 가능 (includeInactive 파라미터)
- 데이터 무결성 보장을 위한 논리 삭제 시스템 완성

## 기능 개선
- 각 리스트 컨트롤러에 toggleIncludeInactive() 메서드 추가
- UI에 "비활성 포함" 체크박스 추가 (관리자 전용)
- API 데이터소스에 includeInactive 파라미터 지원

## 문서 정리
- 불필요한 문서 파일 제거 및 재구성
- CLAUDE.md 프로젝트 상태 업데이트 (진행률 80%)
- 테스트 결과 문서화 (test20250812v01.md)

## UI 컴포넌트
- Equipment 화면 위젯 모듈화 (custom_dropdown_field, equipment_basic_info_section)
- 폼 유효성 검증 강화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-08-12 20:02:54 +09:00
parent 1645182b38
commit e7860ae028
48 changed files with 2096 additions and 1242 deletions

View File

@@ -9,32 +9,32 @@ part of 'equipment_request.dart';
_$CreateEquipmentRequestImpl _$$CreateEquipmentRequestImplFromJson(
Map<String, dynamic> json) =>
_$CreateEquipmentRequestImpl(
equipmentNumber: json['equipmentNumber'] as String,
equipmentNumber: json['equipment_number'] as String,
category1: json['category1'] as String?,
category2: json['category2'] as String?,
category3: json['category3'] as String?,
manufacturer: json['manufacturer'] as String,
modelName: json['modelName'] as String?,
serialNumber: json['serialNumber'] as String?,
purchaseDate: json['purchaseDate'] == null
modelName: json['model_name'] as String?,
serialNumber: json['serial_number'] as String?,
purchaseDate: json['purchase_date'] == null
? null
: DateTime.parse(json['purchaseDate'] as String),
purchasePrice: (json['purchasePrice'] as num?)?.toDouble(),
: DateTime.parse(json['purchase_date'] as String),
purchasePrice: (json['purchase_price'] as num?)?.toDouble(),
remark: json['remark'] as String?,
);
Map<String, dynamic> _$$CreateEquipmentRequestImplToJson(
_$CreateEquipmentRequestImpl instance) =>
<String, dynamic>{
'equipmentNumber': instance.equipmentNumber,
'equipment_number': instance.equipmentNumber,
'category1': instance.category1,
'category2': instance.category2,
'category3': instance.category3,
'manufacturer': instance.manufacturer,
'modelName': instance.modelName,
'serialNumber': instance.serialNumber,
'purchaseDate': instance.purchaseDate?.toIso8601String(),
'purchasePrice': instance.purchasePrice,
'model_name': instance.modelName,
'serial_number': instance.serialNumber,
'purchase_date': instance.purchaseDate?.toIso8601String(),
'purchase_price': instance.purchasePrice,
'remark': instance.remark,
};
@@ -45,24 +45,24 @@ _$UpdateEquipmentRequestImpl _$$UpdateEquipmentRequestImplFromJson(
category2: json['category2'] as String?,
category3: json['category3'] as String?,
manufacturer: json['manufacturer'] as String?,
modelName: json['modelName'] as String?,
serialNumber: json['serialNumber'] as String?,
modelName: json['model_name'] as String?,
serialNumber: json['serial_number'] as String?,
barcode: json['barcode'] as String?,
purchaseDate: json['purchaseDate'] == null
purchaseDate: json['purchase_date'] == null
? null
: DateTime.parse(json['purchaseDate'] as String),
purchasePrice: (json['purchasePrice'] as num?)?.toDouble(),
: DateTime.parse(json['purchase_date'] as String),
purchasePrice: (json['purchase_price'] as num?)?.toDouble(),
status: _$JsonConverterFromJson<String, String>(
json['status'], const EquipmentStatusJsonConverter().fromJson),
currentCompanyId: (json['currentCompanyId'] as num?)?.toInt(),
currentBranchId: (json['currentBranchId'] as num?)?.toInt(),
warehouseLocationId: (json['warehouseLocationId'] as num?)?.toInt(),
lastInspectionDate: json['lastInspectionDate'] == null
currentCompanyId: (json['current_company_id'] as num?)?.toInt(),
currentBranchId: (json['current_branch_id'] as num?)?.toInt(),
warehouseLocationId: (json['warehouse_location_id'] as num?)?.toInt(),
lastInspectionDate: json['last_inspection_date'] == null
? null
: DateTime.parse(json['lastInspectionDate'] as String),
nextInspectionDate: json['nextInspectionDate'] == null
: DateTime.parse(json['last_inspection_date'] as String),
nextInspectionDate: json['next_inspection_date'] == null
? null
: DateTime.parse(json['nextInspectionDate'] as String),
: DateTime.parse(json['next_inspection_date'] as String),
remark: json['remark'] as String?,
);
@@ -73,18 +73,18 @@ Map<String, dynamic> _$$UpdateEquipmentRequestImplToJson(
'category2': instance.category2,
'category3': instance.category3,
'manufacturer': instance.manufacturer,
'modelName': instance.modelName,
'serialNumber': instance.serialNumber,
'model_name': instance.modelName,
'serial_number': instance.serialNumber,
'barcode': instance.barcode,
'purchaseDate': instance.purchaseDate?.toIso8601String(),
'purchasePrice': instance.purchasePrice,
'purchase_date': instance.purchaseDate?.toIso8601String(),
'purchase_price': instance.purchasePrice,
'status': _$JsonConverterToJson<String, String>(
instance.status, const EquipmentStatusJsonConverter().toJson),
'currentCompanyId': instance.currentCompanyId,
'currentBranchId': instance.currentBranchId,
'warehouseLocationId': instance.warehouseLocationId,
'lastInspectionDate': instance.lastInspectionDate?.toIso8601String(),
'nextInspectionDate': instance.nextInspectionDate?.toIso8601String(),
'current_company_id': instance.currentCompanyId,
'current_branch_id': instance.currentBranchId,
'warehouse_location_id': instance.warehouseLocationId,
'last_inspection_date': instance.lastInspectionDate?.toIso8601String(),
'next_inspection_date': instance.nextInspectionDate?.toIso8601String(),
'remark': instance.remark,
};