|
|
87b094220d
|
refactor: migrate to DDD architecture with Dishka DI
Complete architectural refactoring from simple MVC to Clean Architecture/DDD pattern:
Domain Layer:
- Add entities (Post, BaseEntity) with business logic
- Add value objects (Title, Content, Slug) with validation
- Add repository interfaces (PostRepository)
- Add domain exceptions
Application Layer:
- Add use cases (CreatePost, GetPost, UpdatePost, DeletePost, ListPosts, PublishPost)
- Add DTOs for data transfer
- Add TransactionManager interface
Infrastructure Layer:
- Add SQLAlchemy models and async database connection
- Add SQLAlchemyPostRepository implementation
- Add Dishka DI container with providers
- Add error handlers and middleware
Presentation Layer:
- Add FastAPI routes with Dishka integration
- Add Pydantic schemas
- Add dependency injection using FromDishka[T]
Other Changes:
- Remove old flat structure (api/, common/, core/, modules/)
- Add hatchling build system for package scripts
- Add blog CLI command
- Update AGENTS.md with new architecture docs
- All 48 tests passing, mypy clean, ruff clean
|
2026-05-01 20:20:41 +03:00 |
|