from typing import Any from app.core.constants import ActorValue from app.core.database import SessionLocal from app.tasks.app import celery_app @celery_app.task(name="legacy.sync_projects") def sync_legacy_projects( source_query: str | None = None, source_query_name: str | None = None, field_map: dict[str, str] | None = None, limit: int = 100, dry_run: bool = False, actor: str = ActorValue.SCHEDULER, ) -> dict[str, Any]: from app.modules.legacy_mysql.services import LegacyMySQLService db = SessionLocal() try: return LegacyMySQLService(db).sync_projects( source_query=source_query, source_query_name=source_query_name, field_map=field_map or {}, limit=limit, dry_run=dry_run, actor=actor, ) finally: db.close() @celery_app.task(name="legacy.sync_tasks") def sync_legacy_tasks( source_query: str | None = None, source_query_name: str | None = None, field_map: dict[str, str] | None = None, limit: int = 100, dry_run: bool = False, actor: str = ActorValue.SCHEDULER, ) -> dict[str, Any]: from app.modules.legacy_mysql.services import LegacyMySQLService db = SessionLocal() try: return LegacyMySQLService(db).sync_tasks( source_query=source_query, source_query_name=source_query_name, field_map=field_map or {}, limit=limit, dry_run=dry_run, actor=actor, ) finally: db.close()