2
0
forked from kodorvan/stcs

Added a new column and requests to them

This commit is contained in:
algizn97
2025-10-26 14:01:12 +05:00
parent 8be1636279
commit 2bebada215
2 changed files with 60 additions and 2 deletions

View File

@@ -629,6 +629,7 @@ async def create_user_risk_management(tg_id: int) -> None:
take_profit_percent=1.0,
stop_loss_percent=1.0,
commission_fee="Yes_commission_fee",
commission_place="Commission_for_qty"
)
session.add(user_risk_management)
await session.commit()
@@ -788,6 +789,47 @@ async def set_commission_fee(tg_id: int, commission_fee: str) -> bool:
return False
async def set_commission_place(tg_id: int, commission_place: str) -> bool:
"""
Set commission place for a user in the database.
:param tg_id: Telegram user ID
:param commission_place: Commission place
:return: True if successful, False otherwise
"""
try:
async with async_session() as session:
result = await session.execute(
select(User)
.options(joinedload(User.user_risk_management))
.filter_by(tg_id=tg_id)
)
user = result.scalars().first()
if user:
if user.user_risk_management:
# Updating existing record
user.user_risk_management.commission_place = commission_place
else:
# Creating new record
user_risk_management = UserRiskManagement(
commission_place=commission_place,
user=user,
)
session.add(user_risk_management)
await session.commit()
logger.info("User commission place updated for user: %s", tg_id)
return True
else:
logger.error("User not found with tg_id: %s", tg_id)
return False
except Exception as e:
logger.error(
"Error adding/updating user commission place for user %s: %s", tg_id, e
)
return False
# USER CONDITIONAL SETTINGS
@@ -935,6 +977,7 @@ async def set_user_deal(
tg_id: int,
symbol: str,
current_step: int,
current_series: int,
trade_mode: str,
side_mode: str,
margin_type: str,
@@ -945,13 +988,16 @@ async def set_user_deal(
max_bets_in_series: int,
take_profit_percent: int,
stop_loss_percent: int,
base_quantity: float
base_quantity: float,
commission_fee: str,
commission_place: str
):
"""
Set the user deal in the database.
:param tg_id: Telegram user ID
:param symbol: Symbol
:param current_step: Current step
:param current_series: Current series
:param trade_mode: Trade mode
:param side_mode: Side mode
:param margin_type: Margin type
@@ -963,6 +1009,8 @@ async def set_user_deal(
:param take_profit_percent: Take profit percent
:param stop_loss_percent: Stop loss percent
:param base_quantity: Base quantity
:param commission_fee: Commission fee
:param commission_place: Commission place
:return: bool
"""
try:
@@ -981,6 +1029,7 @@ async def set_user_deal(
if deal:
# Updating existing record
deal.current_step = current_step
deal.current_series = current_series
deal.trade_mode = trade_mode
deal.side_mode = side_mode
deal.margin_type = margin_type
@@ -992,12 +1041,15 @@ async def set_user_deal(
deal.take_profit_percent = take_profit_percent
deal.stop_loss_percent = stop_loss_percent
deal.base_quantity = base_quantity
deal.commission_fee = commission_fee
deal.commission_place = commission_place
else:
# Creating new record
new_deal = UserDeals(
user=user,
symbol=symbol,
current_step=current_step,
current_series=current_series,
trade_mode=trade_mode,
side_mode=side_mode,
margin_type=margin_type,
@@ -1008,7 +1060,9 @@ async def set_user_deal(
max_bets_in_series=max_bets_in_series,
take_profit_percent=take_profit_percent,
stop_loss_percent=stop_loss_percent,
base_quantity=base_quantity
base_quantity=base_quantity,
commission_fee=commission_fee,
commission_place=commission_place
)
session.add(new_deal)