#!/usr/bin/env python3
from __future__ import annotations

import argparse
from pathlib import Path
import sys

ROOT = Path(__file__).resolve().parents[1]
BACKEND = ROOT / "backend"
sys.path.insert(0, str(BACKEND))

from sqlmodel import Session  # noqa: E402

from app.api.routes.dev import reset_active_workspace  # noqa: E402
from app.db.session import get_engine, init_db  # noqa: E402


def main() -> int:
    parser = argparse.ArgumentParser(description="Archive old active review/test workspace rows without deleting analytics/content library.")
    parser.add_argument("--archive-active-review", action="store_true", help="Archive active review/test videos and drafts.")
    parser.add_argument("--keep-analytics", action="store_true", help="Document intent; analytics are always kept.")
    parser.add_argument("--keep-content-library", action="store_true", help="Document intent; content library is always kept.")
    parser.add_argument("--archive-active-queue", action="store_true", default=True, help="Archive locked/in-progress/test queue states.")
    args = parser.parse_args()
    if not args.archive_active_review:
        parser.error("Pass --archive-active-review to confirm non-destructive workspace reset.")
    init_db()
    with Session(get_engine()) as session:
        result = reset_active_workspace(session, {"archive_active_queue": args.archive_active_queue})
    print(result)
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
