feat: add subscription and transaction repositories

- Implemented SubscriptionRepository with methods to get, create, and update subscriptions.
- Added BalanceTXRepository for creating and retrieving balance transactions.
- Introduced a test script for simulating Pally webhook for local testing.
This commit is contained in:
2026-04-27 21:33:25 +07:00
parent 049f31118d
commit 287f8eebda
34 changed files with 3401 additions and 53 deletions

View File

@@ -12,6 +12,7 @@ from config import settings
from db.session import async_session
from misc.pally import PallyClient
from repositories.bills import BillsRepository
from repositories.subscriptions import SubscriptionRepository
from repositories.users import UserRepository
from schemas.di import DependenciesDTO
from services.billing_service import BillingService
@@ -26,9 +27,10 @@ async def main():
pally_client = PallyClient(settings.pally_token)
user_repository = UserRepository()
user_service = UserService(user_repository)
bills_repository = BillsRepository()
subscriptions_repository = SubscriptionRepository()
user_service = UserService(user_repository, subscription_repository=subscriptions_repository)
billing_service = BillingService(
user_repository=user_repository, bills_repository=bills_repository
)
@@ -45,6 +47,7 @@ async def main():
pally_client=pally_client,
bills_repository=bills_repository,
billing_service=billing_service,
subscriptions_repository=subscriptions_repository,
)
dp.update.middleware.register(DIMiddleware(deps, async_session))