"""
Shared Base Classes

Abstract base classes for cross-module reuse.
"""

from .repository import BaseRepository, AsyncBaseRepository
from .entity import BaseEntity, AuditableEntity
from .service import BaseService, BaseApplicationService
from .value_object import BaseValueObject
from .specification import Specification, AndSpecification, OrSpecification, NotSpecification

__all__ = [
    # Repository
    "BaseRepository",
    "AsyncBaseRepository",
    
    # Entity
    "BaseEntity",
    "AuditableEntity",
    
    # Service
    "BaseService",
    "BaseApplicationService",
    
    # Value Object
    "BaseValueObject",
    
    # Specification
    "Specification",
    "AndSpecification",
    "OrSpecification",
    "NotSpecification",
]
