feat: implement billing system with Pally integration
- Added billing models and repository for handling bills. - Introduced BillingService to manage payment initiation and bill creation. - Updated user service to remove ticket-related functionality. - Refactored settings to include new billing-related fields. - Removed ticket-related handlers and schemas. - Added new billing handlers for processing payments. - Updated database schema with new bills table and status enum. - Enhanced utility functions to calculate prices considering discounts. - Introduced prehandling for non-private messages. - Updated main application to initialize new billing services and repositories.
This commit is contained in:
18
main.py
18
main.py
@@ -10,9 +10,11 @@ from config import settings
|
||||
from db.session import async_session
|
||||
from handlers import routers
|
||||
from middlewares import DIMiddleware
|
||||
from repositories.tickets import TicketRepository
|
||||
from misc.pally import PallyClient
|
||||
from repositories.bills import BillsRepository
|
||||
from repositories.users import UserRepository
|
||||
from schemas.di import DependenciesDTO
|
||||
from services.billing_service import BillingService
|
||||
from services.user_service import UserService
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
@@ -21,9 +23,15 @@ logging.basicConfig(level=logging.DEBUG)
|
||||
async def main():
|
||||
dp = Dispatcher()
|
||||
|
||||
pally_client = PallyClient(settings.pally_token)
|
||||
|
||||
user_repository = UserRepository()
|
||||
ticket_repository = TicketRepository()
|
||||
user_service = UserService(user_repository, ticket_repository)
|
||||
user_service = UserService(user_repository)
|
||||
|
||||
bills_repository = BillsRepository()
|
||||
billing_service = BillingService(
|
||||
user_repository=user_repository, bills_repository=bills_repository
|
||||
)
|
||||
|
||||
rw_sdk = RemnawaveSDK(
|
||||
base_url=settings.remnawave_url,
|
||||
@@ -31,10 +39,12 @@ async def main():
|
||||
)
|
||||
|
||||
deps = DependenciesDTO(
|
||||
ticket_repository=ticket_repository,
|
||||
user_repository=user_repository,
|
||||
user_service=user_service,
|
||||
rw_sdk=rw_sdk,
|
||||
pally_client=pally_client,
|
||||
bills_repository=bills_repository,
|
||||
billing_service=billing_service,
|
||||
)
|
||||
dp.update.middleware.register(DIMiddleware(deps, async_session))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user