feat: 회사 관리 API 연동 구현

- CompanyService 및 RemoteDataSource 구현
- Company, Branch DTO 모델 생성 (Freezed)
- 의존성 주입 컨테이너 업데이트
- 회사 등록/수정 폼에 API 연동 로직 적용
- API 통합 계획 문서 업데이트
This commit is contained in:
JiWoong Sul
2025-07-24 17:56:06 +09:00
parent 47bfa3a26a
commit 6b31631cfb
16 changed files with 4171 additions and 85 deletions

View File

@@ -200,14 +200,41 @@ class _CompanyFormScreenState extends State<CompanyFormScreen> {
}
// 회사 저장
void _saveCompany() {
Future<void> _saveCompany() async {
final duplicateCompany = _controller.checkDuplicateCompany();
if (duplicateCompany != null) {
DuplicateCompanyDialog.show(context, duplicateCompany);
return;
}
if (_controller.saveCompany()) {
Navigator.pop(context, true);
// 로딩 표시
showDialog(
context: context,
barrierDismissible: false,
builder: (context) => const Center(
child: CircularProgressIndicator(),
),
);
try {
final success = await _controller.saveCompany();
if (mounted) {
Navigator.pop(context); // 로딩 다이얼로그 닫기
if (success) {
Navigator.pop(context, true);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('회사 저장에 실패했습니다.')),
);
}
}
} catch (e) {
if (mounted) {
Navigator.pop(context); // 로딩 다이얼로그 닫기
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('오류가 발생했습니다: $e')),
);
}
}
}