#!/usr/bin/env python3
import subprocess  # noqa: S404
from pathlib import Path

from template_project.web_api.configuration import load_configuration


def main() -> None:
    config_path = Path("config.toml")
    configuration = load_configuration(config_path)

    db_url = str(configuration.database.url.get_value())
    db_url = db_url.replace("postgresql+psycopg://", "postgresql://")

    output_dir = Path("dumps")
    output_dir.mkdir(exist_ok=True)

    output_file = output_dir / "data_dump.sql"

    print("Создание дампа таблиц vacancy, vacancy_embedding, key_skills...")

    subprocess.run(  # noqa: S603
        [  # noqa: S607
            "pg_dump",
            db_url,
            "--table=vacancy",
            "--table=vacancy_embedding",
            "--table=key_skills",
            "--data-only",
            "--column-inserts",
            f"--file={output_file}",
        ],
        check=True,
    )

    print(f"\nДамп создан: {output_file}")
    print(f"Размер файла: {output_file.stat().st_size / 1024 / 1024:.2f} MB")
    print("\nДля импорта на прод сервере выполните:")
    print(f"  psql <PROD_DB_URL> -f {output_file}")


if __name__ == "__main__":
    main()
