Initial commit

This commit is contained in:
2026-06-01 16:48:21 +02:00
commit 53d157535a
159 changed files with 13641 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
"""Domain error types.
Use these instead of bare exceptions so services/routers can map them to
meaningful HTTP responses. Never swallow errors silently (see ARCHITECTURE.md §10).
"""
class DomainError(Exception):
"""Base class for all application-domain errors."""
class NotFoundError(DomainError):
"""Raised when an entity cannot be found by its identifier."""
class ValidationError(DomainError):
"""Raised when input fails a business rule (not just schema validation)."""
class InsufficientDaysError(DomainError):
"""Raised when a parent doesn't have enough remaining days to plan."""
class InvalidDayTypeError(ValidationError):
"""Raised when a planned-day type is not recognized."""
class DubbeldagError(ValidationError):
"""Raised when a dubbeldag breaks the 15-month window or the 60-day quota."""
class AuthError(DomainError):
"""Raised when credentials are invalid or an auth operation fails."""
class UnauthorizedError(DomainError):
"""Raised when the caller lacks permission to perform an action."""
class ConflictError(DomainError):
"""Raised when a resource already exists (e.g. duplicate email on register)."""
class InvitationError(ValidationError):
"""Raised when an invitation token is invalid, expired, or already redeemed."""