Files
superport/lib/data/models/license/license_query_dto.dart
JiWoong Sul 8384423cf2 feat: 라이선스 및 창고 관리 API 연동 구현
- 라이선스 관리 API 연동 완료
  - LicenseRemoteDataSource, LicenseService 구현
  - LicenseListController, LicenseFormController API 연동
  - 페이지네이션, 검색, 필터링 기능 추가
  - 라이선스 할당/해제 기능 구현

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

- DI 컨테이너에 새로운 서비스 등록
- API 통합 문서 업데이트 (전체 진행률 100% 달성)
2025-07-25 00:18:49 +09:00

32 lines
1.1 KiB
Dart

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);
}