#!/usr/bin/env python3
# [DEF:backend.delete_running_tasks:Module]
# @PURPOSE: Script to delete tasks with RUNNING status from the database.
# @LAYER: Utility
# @SEMANTICS: maintenance, database, cleanup

from sqlalchemy.orm import Session
from src.core.database import TasksSessionLocal
from src.models.task import TaskRecord

# [DEF:delete_running_tasks:Function]
# @PURPOSE: Delete all tasks with RUNNING status from the database.
# @PRE: Database is accessible and TaskRecord model is defined.
# @POST: All tasks with status 'RUNNING' are removed from the database.
def delete_running_tasks():
    """Delete all tasks with RUNNING status from the database."""
    session: Session = TasksSessionLocal()
    try:
        # Find all task records with RUNNING status
        running_tasks = session.query(TaskRecord).filter(TaskRecord.status == "RUNNING").all()
        
        if not running_tasks:
            print("No RUNNING tasks found.")
            return
        
        print(f"Found {len(running_tasks)} RUNNING tasks:")
        for task in running_tasks:
            print(f"- Task ID: {task.id}, Type: {task.type}")
        
        # Delete the found tasks
        session.query(TaskRecord).filter(TaskRecord.status == "RUNNING").delete(synchronize_session=False)
        session.commit()
        
        print(f"Successfully deleted {len(running_tasks)} RUNNING tasks.")
    except Exception as e:
        session.rollback()
        print(f"Error deleting tasks: {e}")
    finally:
        session.close()
# [/DEF:delete_running_tasks:Function]

if __name__ == "__main__":
    delete_running_tasks()
# [/DEF:backend.delete_running_tasks:Module]
