feat: 라이선스 및 창고 관리 API 연동 구현

- 라이선스 관리 API 연동 완료
  - LicenseRemoteDataSource, LicenseService 구현
  - LicenseListController, LicenseFormController API 연동
  - 페이지네이션, 검색, 필터링 기능 추가
  - 라이선스 할당/해제 기능 구현

- 창고 관리 API 연동 완료
  - WarehouseRemoteDataSource, WarehouseService 구현
  - WarehouseLocationListController, WarehouseLocationFormController API 연동
  - 창고별 장비 조회 및 용량 관리 기능 추가

- DI 컨테이너에 새로운 서비스 등록
- API 통합 문서 업데이트 (전체 진행률 100% 달성)
This commit is contained in:
JiWoong Sul
2025-07-25 00:18:49 +09:00
parent 37f35ca68b
commit 8384423cf2
23 changed files with 7591 additions and 926 deletions

View File

@@ -0,0 +1,32 @@
import 'package:freezed_annotation/freezed_annotation.dart';
part 'license_query_dto.freezed.dart';
part 'license_query_dto.g.dart';
/// 라이선스 페이지네이션 쿼리 DTO
@freezed
class LicensePaginationQuery with _$LicensePaginationQuery {
const factory LicensePaginationQuery({
@Default(1) int page,
@Default(20) int limit,
@Default('expiry_date') String sort,
@Default('asc') String order,
@JsonKey(name: 'company_id') String? companyId,
@JsonKey(name: 'user_id') String? userId,
@JsonKey(name: 'license_type') String? licenseType,
String? status,
String? search,
}) = _LicensePaginationQuery;
factory LicensePaginationQuery.fromJson(Map<String, dynamic> json) => _$LicensePaginationQueryFromJson(json);
}
/// 만료 예정 라이선스 조회 쿼리 DTO
@freezed
class ExpiringLicensesQuery with _$ExpiringLicensesQuery {
const factory ExpiringLicensesQuery({
@Default(30) int days,
}) = _ExpiringLicensesQuery;
factory ExpiringLicensesQuery.fromJson(Map<String, dynamic> json) => _$ExpiringLicensesQueryFromJson(json);
}