@@ -0,0 +1,3 @@
|
||||
from .ration import ExecutionSnapshot, RationSnapshot
|
||||
|
||||
__all__ = ["RationSnapshot", "ExecutionSnapshot"]
|
||||
@@ -0,0 +1,52 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class RationLineSnapshot:
|
||||
id: str | None
|
||||
component_id: str | None
|
||||
ingredient_name: str | None
|
||||
row_index: int
|
||||
daily_kg: float | None
|
||||
in_ration: bool
|
||||
in_compound: bool
|
||||
dry_matter: float | None
|
||||
price_per_kg: float | None
|
||||
nutrients: dict[str, Any]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class RationSnapshot:
|
||||
recipe_id: str
|
||||
recipe_name: str
|
||||
ration_type: str
|
||||
heads_per_trip: int
|
||||
animal_profile_id: str | None
|
||||
params: dict[str, Any]
|
||||
lines: tuple[RationLineSnapshot, ...] = field(default_factory=tuple)
|
||||
norms: dict[str, dict[str, float | None]] = field(default_factory=dict)
|
||||
ration_results: dict[str, Any] = field(default_factory=dict)
|
||||
compound_results: dict[str, Any] = field(default_factory=dict)
|
||||
calculated_at: str | None = None
|
||||
exists: bool = True
|
||||
norms_profile_key: str | None = None
|
||||
legacy_norms_remapped: bool = False
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class ExecutionLineSnapshot:
|
||||
ingredient_id: str
|
||||
component_id: str | None
|
||||
name: str
|
||||
weight_per_head: float
|
||||
daily_kg_total: float
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class ExecutionSnapshot:
|
||||
recipe_id: str
|
||||
heads_per_trip: int
|
||||
lines: tuple[ExecutionLineSnapshot, ...] = field(default_factory=tuple)
|
||||
Reference in New Issue
Block a user