jebin2's picture
db services
50c20bf
"""
DB Service - Database access layer with automatic filtering and access control.
Provides:
- DBServiceConfig: Configuration registration (call at startup)
- QueryService: Main entry point
- SelectQuery: Read operations
- UpdateQuery: Update operations
- DeleteQuery: Soft delete operations
- BaseQuery: Shared filtering logic
Usage:
# 1. Register configuration at startup
from services.db_service import DBServiceConfig
from core.models import User, GeminiJob, ...
DBServiceConfig.register(
user_filter_column="user_id",
soft_delete_column="deleted_at",
user_read_scoped=[User, GeminiJob, ...],
...
)
# 2. Use in endpoints
from services.db_service import QueryService
qs = QueryService(user, db)
jobs = await qs.select().execute(select(GeminiJob))
"""
from services.db_service.config import DBServiceConfig
from services.db_service.query_service import QueryService, get_query_service
from services.db_service.select_query import SelectQuery
from services.db_service.update_query import UpdateQuery
from services.db_service.delete_query import DeleteQuery
from services.db_service.base_query import BaseQuery
from services.db_service.db_init import (
init_database,
drop_database,
reset_database,
get_registered_models,
get_model_by_name,
)
__all__ = [
'DBServiceConfig',
'QueryService',
'get_query_service',
'SelectQuery',
'UpdateQuery',
'DeleteQuery',
'BaseQuery',
# Database initialization
'init_database',
'drop_database',
'reset_database',
'get_registered_models',
'get_model_by_name',
]