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

@@ -4,6 +4,7 @@ from remnawave import RemnawaveSDK
from misc.pally import PallyClient
from repositories.bills import BillsRepository
from repositories.subscriptions import SubscriptionRepository
from repositories.users import UserRepository
from services.billing_service import BillingService
from services.user_service import UserService
@@ -13,10 +14,11 @@ from services.user_service import UserService
class DependenciesDTO:
user_repository: UserRepository
user_service: UserService
rw_sdk: RemnawaveSDK
bills_repository: BillsRepository
billing_service: BillingService
subscriptions_repository: SubscriptionRepository
pally_client: PallyClient
rw_sdk: RemnawaveSDK
@dataclass

View File

@@ -1,4 +1,4 @@
from enum import Enum
from enum import Enum, StrEnum
from pydantic import BaseModel
@@ -17,3 +17,13 @@ class SubscriptionPlan(BaseModel):
duration: SubscriptionDuration = SubscriptionDuration.MONTH
whitelists: bool = False
discount: float = 1
class SubscriptionStatus(StrEnum):
EXPIRED = "expired"
ACTIVE = "active"
class InternalSquads(StrEnum):
WHITELISTS = settings.whitelist_squad
DEFAULT = settings.general_squad