import random from typing import Optional from sqlalchemy import Delete, Select from src.auth.service import CurrentUser from src.database.core import DbSession from src.scope_equipment.model import ScopeEquipment from src.scope_equipment.service import get_by_scope_name async def get_all_budget_constrains( *, db_session: DbSession, scope_name: str, cost_threshold: float = 100.0 ): """Get all overhaul overview with EAF values that sum to 100%.""" equipments = await get_by_scope_name(db_session=db_session, scope_name=scope_name) # If no equipments found, return empty list if not equipments: return [] # Create result array of dictionaries result = [ { "id": equipment.id, "assetnum": equipment.assetnum, "location_tag": equipment.master_equipment.location_tag, "name": equipment.master_equipment.name, "total_cost": 1000000 + random.randint(10000, 5000000), } for equipment in equipments ] result.sort(key=lambda x: x["total_cost"], reverse=True) # Filter equipment up to threshold cumulative_cost = 0 filtered_result = [] for equipment in result: cumulative_cost += equipment["total_cost"] if cumulative_cost >= cost_threshold: break filtered_result.append(equipment) return filtered_result