58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from pydantic import BaseModel
|
|
from typing import List
|
|
from ..services.admin_strategy_service import (
|
|
get_table_strategy_list,
|
|
create_table_strategy,
|
|
delete_table_strategy,
|
|
bind_table_to_strategy
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
class get_list(BaseModel):
|
|
token: str
|
|
|
|
class StrategyData(BaseModel):
|
|
strategy_name: str
|
|
segment1_threshold: int
|
|
segment1_price: float
|
|
segment2_threshold: int
|
|
segment2_price: float
|
|
segment3_price: float
|
|
description: str | None = None
|
|
segment3_threshold: int | None = None
|
|
|
|
class create_strategy(BaseModel):
|
|
token: str
|
|
strategy_data: StrategyData
|
|
|
|
class delete_strategy(BaseModel):
|
|
token: str
|
|
strategy_id: int
|
|
class update_strategy(BaseModel):
|
|
token: str
|
|
table_ids: List[int]
|
|
strategy_id: int
|
|
|
|
|
|
@router.post("/table-strategies/list")
|
|
def api_get_table_strategy_list(request: get_list):
|
|
return get_table_strategy_list(request.token)
|
|
|
|
|
|
@router.post("/table-strategies/create")
|
|
def api_create_table_strategy(request: create_strategy):
|
|
return create_table_strategy(request.token, request.strategy_data.model_dump())
|
|
|
|
|
|
@router.post("/table-strategies/delete")
|
|
def api_delete_table_strategy(request: delete_strategy):
|
|
return delete_table_strategy(request.token, request.strategy_id)
|
|
|
|
|
|
@router.post("/table-strategies/bind")
|
|
def api_bind_table_to_strategy(request: update_strategy):
|
|
return bind_table_to_strategy(request.token, request.strategy_id, request.table_ids)
|
|
|