From d0172b5524a6541e54f1c3136b858a2fb67e89bd Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Thu, 23 Jan 2025 21:09:21 -0300 Subject: [PATCH] feat(import): convert deduplicate fields field into list --- app/apps/import_app/schemas/v1.py | 6 ++---- app/apps/import_app/services/v1.py | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/apps/import_app/schemas/v1.py b/app/apps/import_app/schemas/v1.py index f5710f6d..07bb5e65 100644 --- a/app/apps/import_app/schemas/v1.py +++ b/app/apps/import_app/schemas/v1.py @@ -4,10 +4,8 @@ from pydantic import BaseModel, Field, model_validator, field_validator class CompareDeduplicationRule(BaseModel): type: Literal["compare"] - fields: Dict = Field( - ..., description="Match header and fields to compare for deduplication" - ) - match_type: Literal["lax", "strict"] + fields: list[str] = Field(..., description="Compare fields for deduplication") + match_type: Literal["lax", "strict"] = "lax" @field_validator("fields", mode="before") def coerce_fields_to_dict(cls, v): diff --git a/app/apps/import_app/services/v1.py b/app/apps/import_app/services/v1.py index d49ef9a1..e19886bf 100644 --- a/app/apps/import_app/services/v1.py +++ b/app/apps/import_app/services/v1.py @@ -285,7 +285,7 @@ class ImportService: query = Transaction.all_objects.all().values("id") # Build query conditions for each field in the rule - for field, header in rule.fields.items(): + for field in rule.fields: if field in transaction_data: if rule.match_type == "strict": query = query.filter(**{field: transaction_data[field]})