Remnawave_python-sdk/remnawave_api/models/subscription.py
Artem f47cda9378
feat: Add models for subscriptions, users, and system statistics
- Implemented TemplateResponseDto and UpdateTemplateRequestDto for subscription templates.
- Created models for system statistics including CPU, memory, and bandwidth.
- Developed user models for user creation, updates, and responses.
- Added bulk actions for user updates and statistics tracking.
- Introduced tests for authentication, bandwidth statistics, hosts, inbounds, key generation, nodes, subscriptions, and user management.
- Enhanced utility functions for generating random strings, emails, and date ranges for testing.
2025-04-21 20:44:27 +02:00

26 lines
924 B
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
from remnawave_api.enums import TrafficLimitStrategy, UserStatus
class UserSubscription(BaseModel):
short_uuid: str = Field(alias="shortUuid")
username: str
days_left: int = Field(alias="daysLeft")
traffic_used: str = Field(alias="trafficUsed")
traffic_limit: str = Field(alias="trafficLimit")
traffic_limit_strategy: TrafficLimitStrategy = Field(alias="trafficLimitStrategy")
expires_at: datetime = Field(alias="expiresAt")
user_status: UserStatus = Field(alias="userStatus")
is_active: bool = Field(alias="isActive")
class SubscriptionInfoResponseDto(BaseModel):
is_found: bool = Field(alias="isFound")
user: Optional[UserSubscription] = None
links: list[str]
ss_conf_links: dict = Field(alias="ssConfLinks")
subscription_url: str = Field(alias="subscriptionUrl")