import 'package:freezed_annotation/freezed_annotation.dart'; part 'license_request_dto.freezed.dart'; part 'license_request_dto.g.dart'; /// 라이선스 생성 요청 DTO @freezed class CreateLicenseRequest with _$CreateLicenseRequest { const factory CreateLicenseRequest({ @JsonKey(name: 'license_key') required String licenseKey, @JsonKey(name: 'product_name') String? productName, String? vendor, @JsonKey(name: 'license_type') String? licenseType, @JsonKey(name: 'user_count') int? userCount, @JsonKey(name: 'purchase_date') DateTime? purchaseDate, @JsonKey(name: 'expiry_date') DateTime? expiryDate, @JsonKey(name: 'purchase_price') double? purchasePrice, @JsonKey(name: 'company_id') int? companyId, @JsonKey(name: 'branch_id') int? branchId, String? remark, }) = _CreateLicenseRequest; factory CreateLicenseRequest.fromJson(Map json) => _$CreateLicenseRequestFromJson(json); } /// 라이선스 수정 요청 DTO @freezed class UpdateLicenseRequest with _$UpdateLicenseRequest { const factory UpdateLicenseRequest({ @JsonKey(name: 'license_key') String? licenseKey, @JsonKey(name: 'product_name') String? productName, String? vendor, @JsonKey(name: 'license_type') String? licenseType, @JsonKey(name: 'user_count') int? userCount, @JsonKey(name: 'purchase_date') DateTime? purchaseDate, @JsonKey(name: 'expiry_date') DateTime? expiryDate, @JsonKey(name: 'purchase_price') double? purchasePrice, String? remark, @JsonKey(name: 'is_active') bool? isActive, }) = _UpdateLicenseRequest; factory UpdateLicenseRequest.fromJson(Map json) => _$UpdateLicenseRequestFromJson(json); } /// 라이선스 사용자 할당 요청 DTO @freezed class AssignLicenseRequest with _$AssignLicenseRequest { const factory AssignLicenseRequest({ @JsonKey(name: 'user_id') required int userId, }) = _AssignLicenseRequest; factory AssignLicenseRequest.fromJson(Map json) => _$AssignLicenseRequestFromJson(json); }