2025-06-24 14:22:50 +02:00

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()