import uuid from typing import List, Optional from sqlalchemy.orm import Session from app.schemas.auth.subscription_plan_schema import SubscriptionPlanCreate, SubscriptionPlanUpdate from app.services.auth.subscription_plan_service import SubscriptionPlanService class SubscriptionPlanController: @staticmethod def create_plan(db: Session, plan_data: SubscriptionPlanCreate): return SubscriptionPlanService.create_plan(db, plan_data) @staticmethod def update_plan(db: Session, plan_id: uuid.UUID, plan_data: SubscriptionPlanUpdate): return SubscriptionPlanService.update_plan(db, plan_id, plan_data) @staticmethod def get_plan(db: Session, plan_id: uuid.UUID): return SubscriptionPlanService.get_plan(db, plan_id) @staticmethod def get_all_plans(db: Session, is_public: Optional[bool] = None, status: Optional[str] = None): return SubscriptionPlanService.get_all_plans(db, is_public, status) @staticmethod def get_paginated_plans( db: Session, page: int, page_size: int, search: Optional[str], filter_names: Optional[List[str]] = None, statuses: Optional[List[str]] = None, visibility: Optional[List[bool]] = None, sort_by: Optional[str] = None, sort_order: Optional[str] = None, ): return SubscriptionPlanService.get_paginated_plans( db, page, page_size, search, filter_names=filter_names, statuses=statuses, visibility=visibility, sort_by=sort_by, sort_order=sort_order, ) @staticmethod def delete_plan(db: Session, plan_id: uuid.UUID): return SubscriptionPlanService.delete_plan(db, plan_id)