import json
from pathlib import Path
import sys
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from app.core.database import Base, engine, SessionLocal
from app.models.entities import Retailer
from app.services.importer import import_csv_bytes

Base.metadata.create_all(bind=engine)

db = SessionLocal()
try:
    retailers_path = ROOT / "seed_data" / "retailers.json"
    retailers = json.loads(retailers_path.read_text())
    for item in retailers:
        existing = db.query(Retailer).filter(Retailer.name == item["name"]).first()
        if not existing:
            db.add(Retailer(**item))
    db.commit()
    sample_path = ROOT / "seed_data" / "products_sample.csv"
    if sample_path.exists():
        import_csv_bytes(db, sample_path.read_bytes(), "products_sample.csv")
    print("Database initialised and seed data loaded.")
finally:
    db.close()
