# memory.py

import json
import os
from datetime import datetime

MEMORY_FILE = "memory.json"

class Memory:
    def __init__(self):
        self.data = self.load()

    def load(self):
        if os.path.exists(MEMORY_FILE):
            with open(MEMORY_FILE, "r", encoding="utf-8") as f:
                return json.load(f)
        return []

    def save(self):
        with open(MEMORY_FILE, "w", encoding="utf-8") as f:
            json.dump(self.data, f, indent=2, ensure_ascii=False)

    def add(self, situation: str, response: str, core_value: str):
        entry = {
            "timestamp": datetime.now().isoformat(),
            "situation": situation,
            "response": response,
            "core_value": core_value
        }
        self.data.append(entry)
        self.save()

    def get_recent(self, limit=10):
        return self.data[-limit:]

    def search_by_value(self, value: str):
        return [entry for entry in self.data if entry["core_value"] == value]

    def clear(self):
        self.data = []
        self.save()
