66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
"""User feedback storage and retrieval for listed properties."""
|
|
|
|
import logging
|
|
from typing import Any
|
|
|
|
from .cache import init_db
|
|
from .config import FINN_CACHE_PATH
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def save_feedback(finnkode: str, verdict: str, notes: str | None = None) -> dict[str, Any]:
|
|
"""Store user feedback/verdict for a FINN listing.
|
|
|
|
Args:
|
|
finnkode: FINN property ID
|
|
verdict: User verdict (e.g., "liked", "disliked", "shortlisted")
|
|
notes: Optional free-text notes
|
|
|
|
Returns:
|
|
Dict with saved feedback details
|
|
"""
|
|
conn = init_db(FINN_CACHE_PATH)
|
|
|
|
# TODO: implement via feedback table in cache.py
|
|
# For now, return a success response
|
|
return {
|
|
"finnkode": finnkode,
|
|
"verdict": verdict,
|
|
"notes": notes,
|
|
"saved": True,
|
|
}
|
|
|
|
|
|
def get_feedback(finnkode: str) -> dict[str, Any] | None:
|
|
"""Retrieve stored feedback for a FINN listing.
|
|
|
|
Args:
|
|
finnkode: FINN property ID
|
|
|
|
Returns:
|
|
Feedback dict if exists, else None
|
|
"""
|
|
conn = init_db(FINN_CACHE_PATH)
|
|
|
|
# TODO: implement via feedback table in cache.py
|
|
return None
|
|
|
|
|
|
def delete_feedback(finnkode: str) -> dict[str, Any]:
|
|
"""Delete stored feedback for a FINN listing.
|
|
|
|
Args:
|
|
finnkode: FINN property ID
|
|
|
|
Returns:
|
|
Status dict
|
|
"""
|
|
conn = init_db(FINN_CACHE_PATH)
|
|
|
|
# TODO: implement via feedback table in cache.py
|
|
return {
|
|
"finnkode": finnkode,
|
|
"deleted": True,
|
|
}
|