""" Data models and storage functions for the Flask job application system. """ import os import yaml from pathlib import Path from flask import current_app def get_application_path(session_id): """Get the path to an application folder""" return os.path.join(current_app.config['APPLICATIONS_FOLDER'], session_id) def get_data_file_path(session_id): """Get the path to the application data YAML file""" return os.path.join(get_application_path(session_id), 'data.yaml') def get_attachments_path(session_id): """Get the path to the attachments folder""" return os.path.join(get_application_path(session_id), 'attachments') def load_application_data(session_id): """Load application data from YAML file""" data_file = get_data_file_path(session_id) if os.path.exists(data_file): with open(data_file, 'r', encoding='utf-8') as f: return yaml.safe_load(f) return None def save_application_data(session_id, data): """Save application data to YAML file""" app_path = get_application_path(session_id) Path(app_path).mkdir(parents=True, exist_ok=True) data_file = get_data_file_path(session_id) with open(data_file, 'w', encoding='utf-8') as f: yaml.dump(data, f, allow_unicode=True, default_flow_style=False)