28 lines
602 B
Python
28 lines
602 B
Python
from typing import Optional
|
|
|
|
from .base import CamelModel
|
|
|
|
|
|
class ColumnMapping(CamelModel):
|
|
strategy: str # A | B
|
|
date_column: str
|
|
description_column: str
|
|
amount_column: Optional[str] = None
|
|
invert_amount_sign: Optional[bool] = None
|
|
debit_column: Optional[str] = None
|
|
credit_column: Optional[str] = None
|
|
|
|
|
|
class UploadResult(CamelModel):
|
|
success: bool
|
|
detected: Optional[str]
|
|
imported_count: int
|
|
skipped_count: int
|
|
file_name: str
|
|
|
|
|
|
class MappingRequired(CamelModel):
|
|
requires_mapping: bool = True
|
|
headers: list[str]
|
|
sample_rows: list[dict]
|