51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
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) |