import asyncio
from sqlalchemy import select
from app.core.database import AsyncSessionLocal
from app.models.project import Project, project_sites
from app.models.site import Site
from app.models.task import Task
from app.models.material_detail import MaterialDetail

async def main():
    async with AsyncSessionLocal() as session:
        # Check Project 21
        p = await session.get(Project, 21)
        if not p:
            print("Project 21 not found")
            return
            
        print(f"Project: {p.name} (ID: {p.id})")
        
        # Check Mapped Sites
        site_stmt = select(Site).join(project_sites).where(project_sites.c.project_id == 21)
        site_result = await session.execute(site_stmt)
        sites = site_result.scalars().all()
        print(f"Sites mapped ({len(sites)}):")
        for s in sites:
            print(f"  - Site ID: {s.id}, Name: {s.name}, Budget: {s.budget}, Active: {s.is_active}")
            
        # Check Tasks
        task_stmt = select(Task).where(Task.project_id == 21)
        task_result = await session.execute(task_stmt)
        tasks = task_result.scalars().all()
        print(f"Tasks mapped ({len(tasks)}):")
        for t in tasks:
            print(f"  - Task ID: {t.id}, Title: {t.title}, Budget: {t.budget}, Active: {t.is_active}")
            


if __name__ == "__main__":
    asyncio.run(main())
