""" Set the money_site_url for a project Usage: uv run python scripts/set_money_site_url.py --project-id 1 --url "https://example.com" uv run python scripts/set_money_site_url.py --project-id 1 --url "https://www.mysite.com" """ import sys from pathlib import Path project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) import click from src.database.session import db_manager from src.database.repositories import ProjectRepository @click.command() @click.option('--project-id', '-p', required=True, type=int, help='Project ID') @click.option('--url', '-u', required=True, help='Money site URL (e.g., https://example.com)') def set_money_site_url(project_id: int, url: str): """Set the money_site_url for a project""" if not url.startswith('http://') and not url.startswith('https://'): click.echo("Error: URL must start with http:// or https://", err=True) return url = url.rstrip('/') session = db_manager.get_session() try: project_repo = ProjectRepository(session) project = project_repo.get_by_id(project_id) if not project: click.echo(f"Error: Project {project_id} not found", err=True) return old_url = project.money_site_url or "(not set)" project.money_site_url = url project_repo.update(project) click.echo(f"Success: Updated project {project_id}: {project.name}") click.echo(f" Old URL: {old_url}") click.echo(f" New URL: {url}") finally: session.close() if __name__ == "__main__": set_money_site_url()