""" Domain-specific exceptions for project management. """ class ProjectDomainError(Exception): """Base exception for project domain errors.""" def __init__(self, message: str, project_name: str = None): super().__init__(message) self.project_name = project_name class ProjectValidationError(ProjectDomainError): """Exception raised when project validation fails.""" def __init__(self, message: str, field: str = None, value=None): super().__init__(message) self.field = field self.value = value class MilestoneError(ProjectDomainError): """Exception raised when milestone operations fail.""" def __init__(self, message: str, milestone_id: int = None): super().__init__(message) self.milestone_id = milestone_id