from core.models.SubscriptionPlan import SubscriptionPlan from core.models.session.SessionConnection import SessionConnection from core.models.system.SystemConnection import SystemConnection from core.services.WebServiceApiService import WebServiceApiService from typing import Union, Optional class SubscriptionPlanController: @staticmethod def get(connection: Union[SessionConnection, SystemConnection], duration: int): """ Called by: GUI in worker.py Purpose: confirm the subscription's length is valid """ return SubscriptionPlan.find(connection, duration) @staticmethod def get_all(connection: Optional[Union[SessionConnection, SystemConnection]] = None): """ Not used. Good candidate to be cut. GUI's create_interface_elements inside duration selection page actually has hardcoded amounts """ return SubscriptionPlan.all(connection) @staticmethod def _sync(proxies: Optional[dict] = None): subscription_plans = WebServiceApiService.get_subscription_plans(proxies) SubscriptionPlan.truncate() SubscriptionPlan.save_many(subscription_plans)