hale-api / seed_test_data.py
Raunak211006's picture
Deploy v3.2 to Hugging Face (excluding binaries)
c50a873
Raw
History Blame Contribute Delete
2.61 kB
import os
import sys
from datetime import datetime
# Add app to path
sys.path.insert(0, os.path.abspath('.'))
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from app.core.database import Base, get_db, SessionLocal
from app.models.user import User
from app.models.goal import Goal
from app.core.security import hash_password
from app.core.config import settings
def seed():
db = SessionLocal()
try:
# 1. Create User
username = "testuser"
existing = db.query(User).filter(User.user_id == username).first()
if existing:
print(f"User {username} already exists. Cleaning up old data...")
db.delete(existing)
db.commit()
user = User(
user_id=username,
name="Test Explorer",
email="test@example.com",
hashed_password=hash_password("Password123"),
coach_personality="supportive"
)
db.add(user)
db.commit()
db.refresh(user)
print(f"Created user: {username}")
# 2. Create Goal
# Note: We bypass LLM generation for speed by providing a mock plan_json
mock_plan = {
"goal": "Master Next.js & FastAPI",
"duration_days": 30,
"modules": [
{
"title": "Module 1: Foundations",
"duration_days": 7,
"outcomes": ["Understand core concepts"],
"tasks": [
{"title": "Setup development environment", "duration_min": 30, "deliverable": "Working dev server"},
{"title": "Learn FastAPI routing", "duration_min": 45, "deliverable": "Simple API"},
{"title": "Build Next.js components", "duration_min": 60, "deliverable": "UI Page"}
]
}
],
"meta": {"llm_used": False, "confidence": 1.0}
}
import json
goal = Goal(
user_id=user.user_id,
goal_text="Master Next.js & FastAPI",
category="coding",
duration_days=30,
plan_json=json.dumps(mock_plan),
is_active=True
)
db.add(goal)
db.commit()
print(f"Created goal: {goal.goal_text}")
print("\n--- Seeding Complete! ---")
print(f"Username: {username}")
print(f"Password: Password123")
except Exception as e:
print(f"Error seeding data: {e}")
finally:
db.close()
if __name__ == "__main__":
seed()