from pydantic import BaseModel
from typing import Dict, List, AnyStr

from models.target import Target

class ObjectiveFunction(BaseModel):
  # minimizing tif/tcc target value is only option currently
  # as we add more we can build this out to be more dynamic
  # likely with models representing each objective function type
  tif_targets: List[Target]
  tcc_targets: List[Target]
  objective: AnyStr = "minimize"
  weight: Dict = {'tif': 1, 'tcc': 1}