suvradeepp's picture
Deploy reno scheduling engine (FastAPI + Streamlit)
45ca73e verified
Raw
History Blame Contribute Delete
1.02 kB
"""Shared domain errors mapped to HTTP responses in the API layer."""
class DomainError(Exception):
"""Base for errors that map to a specific HTTP status."""
class BaselineExistsError(DomainError):
def __init__(self, existing_version_id: int):
self.existing_version_id = existing_version_id
super().__init__(f"A baseline already exists (version {existing_version_id})")
class NotFoundError(DomainError):
def __init__(self, what: str):
self.what = what
super().__init__(f"{what} not found")
class MissingDurationError(DomainError):
"""A WORKING activity lacks effort_days, or a WALL activity lacks lead_time_days."""
def __init__(self, activity_id: int, clock: str):
self.activity_id = activity_id
self.clock = clock
field = "effort_days" if clock == "WORKING" else "lead_time_days"
super().__init__(
f"Activity {activity_id} ({clock}) is missing {field}; cannot schedule it."
)