diff --git a/app/apps/import_app/schemas/v1.py b/app/apps/import_app/schemas/v1.py index f5710f6..07bb5e6 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 d49ef9a..e19886b 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]})