class DomainException(Exception):
    def __init__(self, message: str, code: str = "INTERNAL_ERROR"):
        super().__init__(message)
        self.message = message
        self.code = code

class UserNotFoundException(DomainException):
    def __init__(self, identifier: str):
        super().__init__(f"User {identifier} not found.", "USER_NOT_FOUND")

class InvalidCredentialsException(DomainException):
    def __init__(self):
        super().__init__("Invalid credentials provided.", "INVALID_CREDENTIALS")

class NotFoundException(DomainException):
    def __init__(self, message: str = "Resource not found"):
        super().__init__(message, "NOT_FOUND")

class NotFoundError(DomainException):
    def __init__(self, message: str):
        super().__init__(message, "NOT_FOUND")

class ValidationError(DomainException):
    def __init__(self, message: str):
        super().__init__(message, "VALIDATION_ERROR")

class ConflictError(DomainException):
    def __init__(self, message: str):
        super().__init__(message, "CONFLICT")
