33 lines
926 B
Python
33 lines
926 B
Python
import datetime
|
|
from dataclasses import dataclass, field
|
|
from typing import Optional
|
|
|
|
from typing_extensions import Self
|
|
|
|
from core.domain.optimization.OptimizationState import OptimizationState
|
|
from core.domain.map.PostOffice import PostOffice
|
|
from core.domain.optimization.OptimizationType import OptimizationType
|
|
from core.types.Id import Id
|
|
from core.types.IntId import IntId
|
|
|
|
|
|
@dataclass
|
|
class Optimization:
|
|
posta: IntId[PostOffice]
|
|
title: str
|
|
description: str
|
|
dates: list[datetime.date]
|
|
weight: int
|
|
optimizationTime: datetime.timedelta
|
|
createdAt: datetime.datetime
|
|
authorizedByUserId: str
|
|
state: OptimizationState
|
|
type: OptimizationType
|
|
parent: Optional[Id[Self]]
|
|
useFrequency: bool = False
|
|
useUnvisitedCrn: bool = True
|
|
useDistrictCentrality: bool = True
|
|
staticServiceTimes: Optional[int] = None
|
|
stateChangedAt: datetime.datetime = field(default_factory=datetime.datetime.now)
|
|
id: Id[Self] = Id.field()
|