feat: 결재·마스터 실연동 업데이트

This commit is contained in:
JiWoong Sul
2025-10-14 18:10:24 +09:00
parent 1325109fba
commit 8067416c09
66 changed files with 2129 additions and 222 deletions

View File

@@ -1,6 +1,7 @@
import 'package:dio/dio.dart';
import 'package:superport_v2/core/common/models/paginated_result.dart';
import 'package:superport_v2/core/network/api_client.dart';
import 'package:superport_v2/core/network/api_routes.dart';
import '../../domain/entities/customer.dart';
import '../../domain/repositories/customer_repository.dart';
@@ -12,7 +13,7 @@ class CustomerRepositoryRemote implements CustomerRepository {
final ApiClient _api;
static const _basePath = '/customers';
static const _basePath = '${ApiRoutes.apiV1}/customers';
/// 고객 목록을 조회한다.
@override
@@ -39,6 +40,17 @@ class CustomerRepositoryRemote implements CustomerRepository {
return CustomerDto.parsePaginated(response.data ?? const {});
}
@override
Future<Customer> fetchDetail(int id, {bool includeZipcode = true}) async {
final response = await _api.get<Map<String, dynamic>>(
'$_basePath/$id',
query: {if (includeZipcode) 'include': 'zipcode'},
options: Options(responseType: ResponseType.json),
);
final data = (response.data?['data'] as Map<String, dynamic>?) ?? {};
return CustomerDto.fromJson(data).toEntity();
}
/// 고객을 생성한다.
@override
Future<Customer> create(CustomerInput input) async {

View File

@@ -14,6 +14,9 @@ abstract class CustomerRepository {
bool? isActive,
});
/// 고객 단건 상세를 조회한다.
Future<Customer> fetchDetail(int id, {bool includeZipcode = true});
/// 고객을 생성한다.
Future<Customer> create(CustomerInput input);

View File

@@ -1,5 +1,6 @@
import 'package:flutter/foundation.dart';
import 'package:superport_v2/core/common/models/paginated_result.dart';
import 'package:superport_v2/core/network/failure.dart';
import '../../domain/entities/customer.dart';
import '../../domain/repositories/customer_repository.dart';
@@ -78,8 +79,9 @@ class CustomerController extends ChangeNotifier {
if (response.pageSize > 0 && response.pageSize != _pageSize) {
_pageSize = response.pageSize;
}
} catch (e) {
_errorMessage = e.toString();
} catch (error) {
final failure = Failure.from(error);
_errorMessage = failure.describe();
} finally {
_isLoading = false;
notifyListeners();
@@ -129,8 +131,9 @@ class CustomerController extends ChangeNotifier {
final created = await _repository.create(input);
await fetch(page: 1);
return created;
} catch (e) {
_errorMessage = e.toString();
} catch (error) {
final failure = Failure.from(error);
_errorMessage = failure.describe();
notifyListeners();
return null;
} finally {
@@ -145,8 +148,9 @@ class CustomerController extends ChangeNotifier {
final updated = await _repository.update(id, input);
await fetch(page: _result?.page ?? 1);
return updated;
} catch (e) {
_errorMessage = e.toString();
} catch (error) {
final failure = Failure.from(error);
_errorMessage = failure.describe();
notifyListeners();
return null;
} finally {
@@ -161,8 +165,9 @@ class CustomerController extends ChangeNotifier {
await _repository.delete(id);
await fetch(page: _result?.page ?? 1);
return true;
} catch (e) {
_errorMessage = e.toString();
} catch (error) {
final failure = Failure.from(error);
_errorMessage = failure.describe();
notifyListeners();
return false;
} finally {
@@ -177,8 +182,9 @@ class CustomerController extends ChangeNotifier {
final restored = await _repository.restore(id);
await fetch(page: _result?.page ?? 1);
return restored;
} catch (e) {
_errorMessage = e.toString();
} catch (error) {
final failure = Failure.from(error);
_errorMessage = failure.describe();
notifyListeners();
return null;
} finally {