from dataclasses import dataclass
from datetime import datetime
from typing import Optional

@dataclass
class Receipt:
    id: str
    file_name: str
    upload_date: datetime
    receipt_date: datetime
    amount: float
    tax: float
    vendor: str
    category: str
    
@dataclass
class Transaction:
    id: str
    transaction_date: datetime
    amount: float
    vendor: str
    notes: str
    
@dataclass
class Match:
    receipt: Receipt
    transaction: Transaction
    confidence_score: float
    match_reason: str 