from pydantic import BaseModel
from typing import List, Optional

from models.item import Item
from models.constraint import Constraint
from models.irt_model import IRTModel
from models.objective_function import ObjectiveFunction
from models.advanced_options import AdvancedOptions

class SolverRun(BaseModel):
  items: List[Item]
  constraints: List[Constraint]
  irt_model: IRTModel
  objective_fuction: ObjectiveFunction
  total_form_items: int
  advanced_options: Optional[AdvancedOptions]
  engine: str