Files
superport/lib/screens/license/controllers/license_form_controller.dart
2025-07-02 17:45:44 +09:00

58 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:superport/models/license_model.dart';
import 'package:superport/services/mock_data_service.dart';
// 라이센스 폼의 상태 및 비즈니스 로직을 담당하는 컨트롤러
class LicenseFormController {
final MockDataService dataService;
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
bool isEditMode = false;
int? licenseId;
String name = '';
int durationMonths = 12; // 기본값: 12개월
String visitCycle = '미방문'; // 기본값: 미방문
LicenseFormController({required this.dataService, this.licenseId});
// 라이센스 정보 로드 (수정 모드)
void loadLicense() {
if (licenseId == null) return;
final license = dataService.getLicenseById(licenseId!);
if (license != null) {
name = license.name;
durationMonths = license.durationMonths;
visitCycle = license.visitCycle;
}
}
// 라이센스 저장 (UI에서 호출)
void saveLicense(Function() onSuccess) {
if (formKey.currentState?.validate() != true) return;
formKey.currentState?.save();
if (isEditMode && licenseId != null) {
final license = dataService.getLicenseById(licenseId!);
if (license != null) {
final updatedLicense = License(
id: license.id,
companyId: license.companyId,
name: name,
durationMonths: durationMonths,
visitCycle: visitCycle,
);
dataService.updateLicense(updatedLicense);
}
} else {
// 라이센스 추가 시 임시 회사 ID 사용 또는 나중에 설정하도록 변경
final newLicense = License(
companyId: 1, // 기본값 또는 필요에 따라 수정
name: name,
durationMonths: durationMonths,
visitCycle: visitCycle,
);
dataService.addLicense(newLicense);
}
onSuccess();
}
}