forked from kodorvan/stcs
Added a new column and requests to them
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user