feat: add payment card grouping and analysis

This commit is contained in:
JiWoong Sul
2025-11-14 16:53:41 +09:00
parent cba7d082bd
commit 132ae758de
40 changed files with 2846 additions and 522 deletions

View File

@@ -1,21 +1,21 @@
import '../../models/subscription.dart';
import '../../models/subscription_model.dart';
import 'sms_scan_result.dart';
class SubscriptionConverter {
// SubscriptionModel 리스트를 Subscription 리스트로 변환
List<Subscription> convertModelsToSubscriptions(
List<SubscriptionModel> models) {
List<Subscription> convertResultsToSubscriptions(
List<SmsScanResult> results) {
final result = <Subscription>[];
for (var model in models) {
for (final smsResult in results) {
try {
final subscription = _convertSingle(model);
final subscription = _convertSingle(smsResult);
result.add(subscription);
// 개발 편의를 위한 디버그 로그
// ignore: avoid_print
print(
'모델 변환 성공: ${model.serviceName}, 카테고리ID: ${model.categoryId}, URL: ${model.websiteUrl}, 통화: ${model.currency}');
'모델 변환 성공: ${smsResult.model.serviceName}, 카테고리ID: ${smsResult.model.categoryId}, URL: ${smsResult.model.websiteUrl}, 통화: ${smsResult.model.currency}');
} catch (e) {
// ignore: avoid_print
print('모델 변환 중 오류 발생: $e');
@@ -26,7 +26,8 @@ class SubscriptionConverter {
}
// 단일 모델 변환
Subscription _convertSingle(SubscriptionModel model) {
Subscription _convertSingle(SmsScanResult result) {
final model = result.model;
return Subscription(
id: model.id,
serviceName: model.serviceName,
@@ -38,6 +39,8 @@ class SubscriptionConverter {
lastPaymentDate: model.lastPaymentDate,
websiteUrl: model.websiteUrl,
currency: model.currency,
paymentCardId: model.paymentCardId,
paymentCardSuggestion: result.cardSuggestion,
);
}