wag-managment-api-service-v.../docs/architecture/system_architecture.md

204 lines
4.3 KiB
Markdown

# System Architecture
## Core Services
### Top-Level Services
1. **AuthServiceApi**
- User authentication and authorization
- Token management
- Permission handling
2. **EventServiceApi**
- Event processing and management
- Event routing and handling
- Event validation
3. **ValidationServiceApi**
- Input validation
- Data verification
- Schema validation
## System Components
### AllConfigs
Configuration management for various system components.
| Category | Context | Dependencies |
|----------|----------|--------------|
| Email | configs, email_send_model | - |
| NoSqlDatabase | configs | - |
| Redis | configs | - |
| SqlDatabase | configs | - |
| Token | configs | - |
### Schemas
- SQL Alchemy schema definitions
- Data models and relationships
- Database structure definitions
### ApiLibrary
| Category | Description |
|----------|-------------|
| common | Error line number tracking |
| date_time_actions | DateTime handling functions |
| extensions | Password module and utilities |
### ApiServices
| Category | Context | Dependencies |
|----------|----------|--------------|
| Login | UserLoginModule | ApiLibrary, Schemas, ErrorHandlers, ApiValidations, ApiServices |
| Token | TokenService | Services, Schemas, ApiLibrary, ErrorHandlers, AllConfigs, ApiValidations |
### Services
| Category | Dependencies |
|----------|--------------|
| Email | ApiLibrary, Schemas, ErrorHandlers, ApiValidations, ApiServices |
| MongoDb | - |
| PostgresDb | - |
| Redis | - |
### ErrorHandlers
- ErrorHandlers: General error handling
- Exceptions: Custom exception definitions
### LanguageModels
- Database: Database-related language models
- Errors: Error message translations
### ApiValidations
- Custom: Custom validation rules
- Request: Request validation logic
## Testing Framework
### Test Categories
- AlchemyResponse pagination testing
- Redis function testing
- MongoDB function testing
- Validation testing
- Header testing
- Auth function testing
- Language testing
- Property definition testing
- SmartQuery testing
### Error Categories
- AlchemyError
- ApiError
- RedisError
- MongoError
- EmailError
- Validation[Pydantic]
## Alchemy Implementation Phases
1. **BaseAlchemyNeed**
- Session management
- Core functionality
2. **PlainModel**
- Basic model implementation
3. **FilteredModel**
- Filter functionality
4. **PaginatedModel**
- Pagination attributes
- Filter integration
5. **LanguageModel**
- Function retrieval
- Header management
6. **ResponseModel**
- Plain AlchemyClass
- Dictionary conversion
- Multiple response handling
## System Layers
1. **DependenciesLayer**
- External dependencies
- System requirements
2. **ApplicationLayer**
- Core application logic
- Business rules
3. **ServiceLayer**
- Service implementations
- API endpoints
4. **TestLayer**
- Test suites
- Test utilities
5. **DevLayer**
- Development tools
- Debug utilities
6. **RootLayer**
- Main directory
- Configuration files
- Documentation
## TODO Items
1. **Event Directory Structure**
- Move to ApiEvents
- Docker file integration
- Import organization
2. **MethodToEvent Renewal**
- Update implementation
- Improve flexibility
3. **Endpoint Configuration**
- Remove unnecessary fields
- Streamline configuration
4. **Middleware Organization**
- Consolidate into /TokenEventMiddleware/
- Standardize naming
5. **Code Cleanup**
- Remove ActionsSchemaFactory
- Remove ActionsSchema
- Move endpoint_wrapper to Middleware.wrappers
6. **Function Organization**
- Support sync/async functions
- Improve API function organization
7. **Directory Structure**
- Consolidate AllConfigs, ApiLibrary, ErrorHandlers
- Move to RootLayer
8. **Configuration Management**
- Update RouteFactoryConfig
- Update EndpointFactoryConfig
- Implement event validation interface
9. **Language Model**
- Review Schemas.__language_model__
- Update implementation
10. **Service Container**
- Review ApiServices
- Plan container migration
11. **Language Defaults**
- Add to config
- Implement ["tr", "en"] as default
## Notes
- Redis implementation needs RedisRow class
- Event validation needs database integration
- Consider containerization for ApiServices
- Review language model implementation
- Test coverage needs improvement