feat: V/R 유지보수 시스템 전환 및 대시보드 테이블 형태 완성
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

- V/R 시스템 완전 전환: WARRANTY/CONTRACT/INSPECTION → V(방문)/R(원격)
- 유지보수 대시보드 카드 → StandardDataTable 테이블 형태 전환
- "조회중..." 문제 해결: 백엔드 직접 필드 사용 (equipment_model, company_name)
- MaintenanceDto 신규 필드 추가: company_id, company_name, equipment_serial, equipment_model
- preloadEquipmentData 비활성화로 불필요한 equipment-history API 호출 제거
- CO-STAR 프레임워크 적용 및 CLAUDE.md v3.0 업데이트
- Flutter Analyze ERROR: 0 유지, 100% shadcn_ui 컴플라이언스

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-09-05 14:33:20 +09:00
parent 2c20999025
commit 519e1883a3
46 changed files with 7804 additions and 1034 deletions

View File

@@ -33,7 +33,7 @@ mixin _$MaintenanceDto {
int get periodMonth => throw _privateConstructorUsedError;
@JsonKey(name: 'maintenance_type')
String get maintenanceType =>
throw _privateConstructorUsedError; // WARRANTY|CONTRACT|INSPECTION
throw _privateConstructorUsedError; // V: 방문, R: 원격
@JsonKey(name: 'is_deleted')
bool get isDeleted => throw _privateConstructorUsedError;
@JsonKey(name: 'registered_at')
@@ -45,6 +45,10 @@ mixin _$MaintenanceDto {
String? get equipmentSerial => throw _privateConstructorUsedError;
@JsonKey(name: 'equipment_model')
String? get equipmentModel => throw _privateConstructorUsedError;
@JsonKey(name: 'company_id')
int? get companyId => throw _privateConstructorUsedError;
@JsonKey(name: 'company_name')
String? get companyName => throw _privateConstructorUsedError;
@JsonKey(name: 'days_remaining')
int? get daysRemaining => throw _privateConstructorUsedError;
@JsonKey(name: 'is_expired')
@@ -81,6 +85,8 @@ abstract class $MaintenanceDtoCopyWith<$Res> {
@JsonKey(name: 'updated_at') DateTime? updatedAt,
@JsonKey(name: 'equipment_serial') String? equipmentSerial,
@JsonKey(name: 'equipment_model') String? equipmentModel,
@JsonKey(name: 'company_id') int? companyId,
@JsonKey(name: 'company_name') String? companyName,
@JsonKey(name: 'days_remaining') int? daysRemaining,
@JsonKey(name: 'is_expired') bool isExpired,
EquipmentHistoryDto? equipmentHistory});
@@ -114,6 +120,8 @@ class _$MaintenanceDtoCopyWithImpl<$Res, $Val extends MaintenanceDto>
Object? updatedAt = freezed,
Object? equipmentSerial = freezed,
Object? equipmentModel = freezed,
Object? companyId = freezed,
Object? companyName = freezed,
Object? daysRemaining = freezed,
Object? isExpired = null,
Object? equipmentHistory = freezed,
@@ -163,6 +171,14 @@ class _$MaintenanceDtoCopyWithImpl<$Res, $Val extends MaintenanceDto>
? _value.equipmentModel
: equipmentModel // ignore: cast_nullable_to_non_nullable
as String?,
companyId: freezed == companyId
? _value.companyId
: companyId // ignore: cast_nullable_to_non_nullable
as int?,
companyName: freezed == companyName
? _value.companyName
: companyName // ignore: cast_nullable_to_non_nullable
as String?,
daysRemaining: freezed == daysRemaining
? _value.daysRemaining
: daysRemaining // ignore: cast_nullable_to_non_nullable
@@ -214,6 +230,8 @@ abstract class _$$MaintenanceDtoImplCopyWith<$Res>
@JsonKey(name: 'updated_at') DateTime? updatedAt,
@JsonKey(name: 'equipment_serial') String? equipmentSerial,
@JsonKey(name: 'equipment_model') String? equipmentModel,
@JsonKey(name: 'company_id') int? companyId,
@JsonKey(name: 'company_name') String? companyName,
@JsonKey(name: 'days_remaining') int? daysRemaining,
@JsonKey(name: 'is_expired') bool isExpired,
EquipmentHistoryDto? equipmentHistory});
@@ -246,6 +264,8 @@ class __$$MaintenanceDtoImplCopyWithImpl<$Res>
Object? updatedAt = freezed,
Object? equipmentSerial = freezed,
Object? equipmentModel = freezed,
Object? companyId = freezed,
Object? companyName = freezed,
Object? daysRemaining = freezed,
Object? isExpired = null,
Object? equipmentHistory = freezed,
@@ -295,6 +315,14 @@ class __$$MaintenanceDtoImplCopyWithImpl<$Res>
? _value.equipmentModel
: equipmentModel // ignore: cast_nullable_to_non_nullable
as String?,
companyId: freezed == companyId
? _value.companyId
: companyId // ignore: cast_nullable_to_non_nullable
as int?,
companyName: freezed == companyName
? _value.companyName
: companyName // ignore: cast_nullable_to_non_nullable
as String?,
daysRemaining: freezed == daysRemaining
? _value.daysRemaining
: daysRemaining // ignore: cast_nullable_to_non_nullable
@@ -320,12 +348,14 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
@JsonKey(name: 'started_at') required this.startedAt,
@JsonKey(name: 'ended_at') required this.endedAt,
@JsonKey(name: 'period_month') this.periodMonth = 1,
@JsonKey(name: 'maintenance_type') this.maintenanceType = 'WARRANTY',
@JsonKey(name: 'maintenance_type') this.maintenanceType = 'V',
@JsonKey(name: 'is_deleted') this.isDeleted = false,
@JsonKey(name: 'registered_at') required this.registeredAt,
@JsonKey(name: 'updated_at') this.updatedAt,
@JsonKey(name: 'equipment_serial') this.equipmentSerial,
@JsonKey(name: 'equipment_model') this.equipmentModel,
@JsonKey(name: 'company_id') this.companyId,
@JsonKey(name: 'company_name') this.companyName,
@JsonKey(name: 'days_remaining') this.daysRemaining,
@JsonKey(name: 'is_expired') this.isExpired = false,
this.equipmentHistory})
@@ -353,7 +383,7 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
@override
@JsonKey(name: 'maintenance_type')
final String maintenanceType;
// WARRANTY|CONTRACT|INSPECTION
// V: 방문, R: 원격
@override
@JsonKey(name: 'is_deleted')
final bool isDeleted;
@@ -371,6 +401,12 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
@JsonKey(name: 'equipment_model')
final String? equipmentModel;
@override
@JsonKey(name: 'company_id')
final int? companyId;
@override
@JsonKey(name: 'company_name')
final String? companyName;
@override
@JsonKey(name: 'days_remaining')
final int? daysRemaining;
@override
@@ -382,7 +418,7 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
@override
String toString() {
return 'MaintenanceDto(id: $id, equipmentHistoryId: $equipmentHistoryId, startedAt: $startedAt, endedAt: $endedAt, periodMonth: $periodMonth, maintenanceType: $maintenanceType, isDeleted: $isDeleted, registeredAt: $registeredAt, updatedAt: $updatedAt, equipmentSerial: $equipmentSerial, equipmentModel: $equipmentModel, daysRemaining: $daysRemaining, isExpired: $isExpired, equipmentHistory: $equipmentHistory)';
return 'MaintenanceDto(id: $id, equipmentHistoryId: $equipmentHistoryId, startedAt: $startedAt, endedAt: $endedAt, periodMonth: $periodMonth, maintenanceType: $maintenanceType, isDeleted: $isDeleted, registeredAt: $registeredAt, updatedAt: $updatedAt, equipmentSerial: $equipmentSerial, equipmentModel: $equipmentModel, companyId: $companyId, companyName: $companyName, daysRemaining: $daysRemaining, isExpired: $isExpired, equipmentHistory: $equipmentHistory)';
}
@override
@@ -410,6 +446,10 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
other.equipmentSerial == equipmentSerial) &&
(identical(other.equipmentModel, equipmentModel) ||
other.equipmentModel == equipmentModel) &&
(identical(other.companyId, companyId) ||
other.companyId == companyId) &&
(identical(other.companyName, companyName) ||
other.companyName == companyName) &&
(identical(other.daysRemaining, daysRemaining) ||
other.daysRemaining == daysRemaining) &&
(identical(other.isExpired, isExpired) ||
@@ -433,6 +473,8 @@ class _$MaintenanceDtoImpl extends _MaintenanceDto {
updatedAt,
equipmentSerial,
equipmentModel,
companyId,
companyName,
daysRemaining,
isExpired,
equipmentHistory);
@@ -467,6 +509,8 @@ abstract class _MaintenanceDto extends MaintenanceDto {
@JsonKey(name: 'updated_at') final DateTime? updatedAt,
@JsonKey(name: 'equipment_serial') final String? equipmentSerial,
@JsonKey(name: 'equipment_model') final String? equipmentModel,
@JsonKey(name: 'company_id') final int? companyId,
@JsonKey(name: 'company_name') final String? companyName,
@JsonKey(name: 'days_remaining') final int? daysRemaining,
@JsonKey(name: 'is_expired') final bool isExpired,
final EquipmentHistoryDto? equipmentHistory}) = _$MaintenanceDtoImpl;
@@ -492,7 +536,7 @@ abstract class _MaintenanceDto extends MaintenanceDto {
int get periodMonth;
@override
@JsonKey(name: 'maintenance_type')
String get maintenanceType; // WARRANTY|CONTRACT|INSPECTION
String get maintenanceType; // V: 방문, R: 원격
@override
@JsonKey(name: 'is_deleted')
bool get isDeleted;
@@ -509,6 +553,12 @@ abstract class _MaintenanceDto extends MaintenanceDto {
@JsonKey(name: 'equipment_model')
String? get equipmentModel;
@override
@JsonKey(name: 'company_id')
int? get companyId;
@override
@JsonKey(name: 'company_name')
String? get companyName;
@override
@JsonKey(name: 'days_remaining')
int? get daysRemaining;
@override
@@ -685,7 +735,7 @@ class _$MaintenanceRequestDtoImpl implements _MaintenanceRequestDto {
@JsonKey(name: 'started_at') required this.startedAt,
@JsonKey(name: 'ended_at') required this.endedAt,
@JsonKey(name: 'period_month') this.periodMonth = 1,
@JsonKey(name: 'maintenance_type') this.maintenanceType = 'WARRANTY'});
@JsonKey(name: 'maintenance_type') this.maintenanceType = 'V'});
factory _$MaintenanceRequestDtoImpl.fromJson(Map<String, dynamic> json) =>
_$$MaintenanceRequestDtoImplFromJson(json);