import os import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) from utils.logger import setup_logger from utils.json import get_file_path_from_config from utils.json import json_dumps from app.repositories.projects_repository import ProjectsRepository # --- ロギングの設定 --- log = setup_logger(__name__) def main(): """DB から企画データを取得し projects.json を生成する。""" log.info("企画データをDBから取得してprojects.jsonを生成します。") output_json_path = get_file_path_from_config( "projects.output_json", "data/generated/projects.json" ) try: repository = ProjectsRepository() projects = repository.list_projects() except Exception as exc: log.error(f"企画データの取得に失敗しました: {exc}") sys.exit(1) project_dicts = [project.model_dump(mode="json") for project in projects] os.makedirs(os.path.dirname(output_json_path), exist_ok=True) json_dumps(project_dicts, output_json_path) log.info(f"企画データの生成が完了しました: {output_json_path}") sys.exit(0) if __name__ == "__main__": main()