from __future__ import annotations from sqlalchemy.orm import Session from app.core.config import settings from app.core.errors import APIError from app.db.models.mine import Mine from app.db.repositories import mine as mine_repo def resolve_mine(db: Session, mine_id: str | None = None) -> Mine: mine = mine_repo.get_mine(db, mine_id) if mine_id else None if mine is None and not mine_id: mine = mine_repo.get_mine_by_code(db, settings.default_mine_code) if mine is None and not mine_id: mine = mine_repo.get_default_mine(db) if mine is None: raise APIError(404, "mine_not_found", "矿井不存在或未配置默认矿井") return mine def require_mine(db: Session, mine_id: str) -> Mine: mine = mine_repo.get_mine(db, mine_id) if mine is None: raise APIError(404, "mine_not_found", "矿井不存在") return mine