feat: 소프트 딜리트 기능 전면 구현 완료
## 주요 변경사항 - 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:
@@ -13,6 +13,8 @@ class CreateCompanyRequest with _$CreateCompanyRequest {
|
||||
@JsonKey(name: 'contact_phone') required String contactPhone,
|
||||
@JsonKey(name: 'contact_email') required String contactEmail,
|
||||
@JsonKey(name: 'company_types') @Default([]) List<String> companyTypes,
|
||||
@JsonKey(name: 'is_partner') @Default(false) bool isPartner,
|
||||
@JsonKey(name: 'is_customer') @Default(true) bool isCustomer,
|
||||
String? remark,
|
||||
}) = _CreateCompanyRequest;
|
||||
|
||||
|
||||
@@ -32,6 +32,10 @@ mixin _$CreateCompanyRequest {
|
||||
String get contactEmail => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: 'company_types')
|
||||
List<String> get companyTypes => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: 'is_partner')
|
||||
bool get isPartner => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: 'is_customer')
|
||||
bool get isCustomer => throw _privateConstructorUsedError;
|
||||
String? get remark => throw _privateConstructorUsedError;
|
||||
|
||||
/// Serializes this CreateCompanyRequest to a JSON map.
|
||||
@@ -58,6 +62,8 @@ abstract class $CreateCompanyRequestCopyWith<$Res> {
|
||||
@JsonKey(name: 'contact_phone') String contactPhone,
|
||||
@JsonKey(name: 'contact_email') String contactEmail,
|
||||
@JsonKey(name: 'company_types') List<String> companyTypes,
|
||||
@JsonKey(name: 'is_partner') bool isPartner,
|
||||
@JsonKey(name: 'is_customer') bool isCustomer,
|
||||
String? remark});
|
||||
}
|
||||
|
||||
@@ -84,6 +90,8 @@ class _$CreateCompanyRequestCopyWithImpl<$Res,
|
||||
Object? contactPhone = null,
|
||||
Object? contactEmail = null,
|
||||
Object? companyTypes = null,
|
||||
Object? isPartner = null,
|
||||
Object? isCustomer = null,
|
||||
Object? remark = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
@@ -115,6 +123,14 @@ class _$CreateCompanyRequestCopyWithImpl<$Res,
|
||||
? _value.companyTypes
|
||||
: companyTypes // ignore: cast_nullable_to_non_nullable
|
||||
as List<String>,
|
||||
isPartner: null == isPartner
|
||||
? _value.isPartner
|
||||
: isPartner // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
isCustomer: null == isCustomer
|
||||
? _value.isCustomer
|
||||
: isCustomer // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
remark: freezed == remark
|
||||
? _value.remark
|
||||
: remark // ignore: cast_nullable_to_non_nullable
|
||||
@@ -139,6 +155,8 @@ abstract class _$$CreateCompanyRequestImplCopyWith<$Res>
|
||||
@JsonKey(name: 'contact_phone') String contactPhone,
|
||||
@JsonKey(name: 'contact_email') String contactEmail,
|
||||
@JsonKey(name: 'company_types') List<String> companyTypes,
|
||||
@JsonKey(name: 'is_partner') bool isPartner,
|
||||
@JsonKey(name: 'is_customer') bool isCustomer,
|
||||
String? remark});
|
||||
}
|
||||
|
||||
@@ -162,6 +180,8 @@ class __$$CreateCompanyRequestImplCopyWithImpl<$Res>
|
||||
Object? contactPhone = null,
|
||||
Object? contactEmail = null,
|
||||
Object? companyTypes = null,
|
||||
Object? isPartner = null,
|
||||
Object? isCustomer = null,
|
||||
Object? remark = freezed,
|
||||
}) {
|
||||
return _then(_$CreateCompanyRequestImpl(
|
||||
@@ -193,6 +213,14 @@ class __$$CreateCompanyRequestImplCopyWithImpl<$Res>
|
||||
? _value._companyTypes
|
||||
: companyTypes // ignore: cast_nullable_to_non_nullable
|
||||
as List<String>,
|
||||
isPartner: null == isPartner
|
||||
? _value.isPartner
|
||||
: isPartner // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
isCustomer: null == isCustomer
|
||||
? _value.isCustomer
|
||||
: isCustomer // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
remark: freezed == remark
|
||||
? _value.remark
|
||||
: remark // ignore: cast_nullable_to_non_nullable
|
||||
@@ -213,6 +241,8 @@ class _$CreateCompanyRequestImpl implements _CreateCompanyRequest {
|
||||
@JsonKey(name: 'contact_email') required this.contactEmail,
|
||||
@JsonKey(name: 'company_types')
|
||||
final List<String> companyTypes = const [],
|
||||
@JsonKey(name: 'is_partner') this.isPartner = false,
|
||||
@JsonKey(name: 'is_customer') this.isCustomer = true,
|
||||
this.remark})
|
||||
: _companyTypes = companyTypes;
|
||||
|
||||
@@ -244,12 +274,18 @@ class _$CreateCompanyRequestImpl implements _CreateCompanyRequest {
|
||||
return EqualUnmodifiableListView(_companyTypes);
|
||||
}
|
||||
|
||||
@override
|
||||
@JsonKey(name: 'is_partner')
|
||||
final bool isPartner;
|
||||
@override
|
||||
@JsonKey(name: 'is_customer')
|
||||
final bool isCustomer;
|
||||
@override
|
||||
final String? remark;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'CreateCompanyRequest(name: $name, address: $address, contactName: $contactName, contactPosition: $contactPosition, contactPhone: $contactPhone, contactEmail: $contactEmail, companyTypes: $companyTypes, remark: $remark)';
|
||||
return 'CreateCompanyRequest(name: $name, address: $address, contactName: $contactName, contactPosition: $contactPosition, contactPhone: $contactPhone, contactEmail: $contactEmail, companyTypes: $companyTypes, isPartner: $isPartner, isCustomer: $isCustomer, remark: $remark)';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -269,6 +305,10 @@ class _$CreateCompanyRequestImpl implements _CreateCompanyRequest {
|
||||
other.contactEmail == contactEmail) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other._companyTypes, _companyTypes) &&
|
||||
(identical(other.isPartner, isPartner) ||
|
||||
other.isPartner == isPartner) &&
|
||||
(identical(other.isCustomer, isCustomer) ||
|
||||
other.isCustomer == isCustomer) &&
|
||||
(identical(other.remark, remark) || other.remark == remark));
|
||||
}
|
||||
|
||||
@@ -283,6 +323,8 @@ class _$CreateCompanyRequestImpl implements _CreateCompanyRequest {
|
||||
contactPhone,
|
||||
contactEmail,
|
||||
const DeepCollectionEquality().hash(_companyTypes),
|
||||
isPartner,
|
||||
isCustomer,
|
||||
remark);
|
||||
|
||||
/// Create a copy of CreateCompanyRequest
|
||||
@@ -312,6 +354,8 @@ abstract class _CreateCompanyRequest implements CreateCompanyRequest {
|
||||
@JsonKey(name: 'contact_phone') required final String contactPhone,
|
||||
@JsonKey(name: 'contact_email') required final String contactEmail,
|
||||
@JsonKey(name: 'company_types') final List<String> companyTypes,
|
||||
@JsonKey(name: 'is_partner') final bool isPartner,
|
||||
@JsonKey(name: 'is_customer') final bool isCustomer,
|
||||
final String? remark}) = _$CreateCompanyRequestImpl;
|
||||
|
||||
factory _CreateCompanyRequest.fromJson(Map<String, dynamic> json) =
|
||||
@@ -337,6 +381,12 @@ abstract class _CreateCompanyRequest implements CreateCompanyRequest {
|
||||
@JsonKey(name: 'company_types')
|
||||
List<String> get companyTypes;
|
||||
@override
|
||||
@JsonKey(name: 'is_partner')
|
||||
bool get isPartner;
|
||||
@override
|
||||
@JsonKey(name: 'is_customer')
|
||||
bool get isCustomer;
|
||||
@override
|
||||
String? get remark;
|
||||
|
||||
/// Create a copy of CreateCompanyRequest
|
||||
|
||||
@@ -19,6 +19,8 @@ _$CreateCompanyRequestImpl _$$CreateCompanyRequestImplFromJson(
|
||||
?.map((e) => e as String)
|
||||
.toList() ??
|
||||
const [],
|
||||
isPartner: json['is_partner'] as bool? ?? false,
|
||||
isCustomer: json['is_customer'] as bool? ?? true,
|
||||
remark: json['remark'] as String?,
|
||||
);
|
||||
|
||||
@@ -32,6 +34,8 @@ Map<String, dynamic> _$$CreateCompanyRequestImplToJson(
|
||||
'contact_phone': instance.contactPhone,
|
||||
'contact_email': instance.contactEmail,
|
||||
'company_types': instance.companyTypes,
|
||||
'is_partner': instance.isPartner,
|
||||
'is_customer': instance.isCustomer,
|
||||
'remark': instance.remark,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user