forked from kodorvan/stcs
Added a new column and requests to them
This commit is contained in:
@@ -114,6 +114,7 @@ class UserRiskManagement(Base):
|
|||||||
take_profit_percent = Column(Float, nullable=False, default=1)
|
take_profit_percent = Column(Float, nullable=False, default=1)
|
||||||
stop_loss_percent = Column(Float, nullable=False, default=1)
|
stop_loss_percent = Column(Float, nullable=False, default=1)
|
||||||
commission_fee = Column(String, nullable=False, default="Yes_commission_fee")
|
commission_fee = Column(String, nullable=False, default="Yes_commission_fee")
|
||||||
|
commission_place = Column(String, nullable=False, default="Commission_for_qty")
|
||||||
|
|
||||||
user = relationship("User", back_populates="user_risk_management")
|
user = relationship("User", back_populates="user_risk_management")
|
||||||
|
|
||||||
@@ -156,6 +157,9 @@ class UserDeals(Base):
|
|||||||
take_profit_percent = Column(Integer, nullable=True)
|
take_profit_percent = Column(Integer, nullable=True)
|
||||||
stop_loss_percent = Column(Integer, nullable=True)
|
stop_loss_percent = Column(Integer, nullable=True)
|
||||||
trigger_price = Column(Float, nullable=True)
|
trigger_price = Column(Float, nullable=True)
|
||||||
|
current_series = Column(Integer, nullable=True)
|
||||||
|
commission_fee = Column(String, nullable=True)
|
||||||
|
commission_place = Column(String, nullable=True)
|
||||||
|
|
||||||
user = relationship("User", back_populates="user_deals")
|
user = relationship("User", back_populates="user_deals")
|
||||||
|
|
||||||
|
|||||||
@@ -629,6 +629,7 @@ async def create_user_risk_management(tg_id: int) -> None:
|
|||||||
take_profit_percent=1.0,
|
take_profit_percent=1.0,
|
||||||
stop_loss_percent=1.0,
|
stop_loss_percent=1.0,
|
||||||
commission_fee="Yes_commission_fee",
|
commission_fee="Yes_commission_fee",
|
||||||
|
commission_place="Commission_for_qty"
|
||||||
)
|
)
|
||||||
session.add(user_risk_management)
|
session.add(user_risk_management)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
@@ -788,6 +789,47 @@ async def set_commission_fee(tg_id: int, commission_fee: str) -> bool:
|
|||||||
return False
|
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
|
# USER CONDITIONAL SETTINGS
|
||||||
|
|
||||||
|
|
||||||
@@ -935,6 +977,7 @@ async def set_user_deal(
|
|||||||
tg_id: int,
|
tg_id: int,
|
||||||
symbol: str,
|
symbol: str,
|
||||||
current_step: int,
|
current_step: int,
|
||||||
|
current_series: int,
|
||||||
trade_mode: str,
|
trade_mode: str,
|
||||||
side_mode: str,
|
side_mode: str,
|
||||||
margin_type: str,
|
margin_type: str,
|
||||||
@@ -945,13 +988,16 @@ async def set_user_deal(
|
|||||||
max_bets_in_series: int,
|
max_bets_in_series: int,
|
||||||
take_profit_percent: int,
|
take_profit_percent: int,
|
||||||
stop_loss_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.
|
Set the user deal in the database.
|
||||||
:param tg_id: Telegram user ID
|
:param tg_id: Telegram user ID
|
||||||
:param symbol: Symbol
|
:param symbol: Symbol
|
||||||
:param current_step: Current step
|
:param current_step: Current step
|
||||||
|
:param current_series: Current series
|
||||||
:param trade_mode: Trade mode
|
:param trade_mode: Trade mode
|
||||||
:param side_mode: Side mode
|
:param side_mode: Side mode
|
||||||
:param margin_type: Margin type
|
:param margin_type: Margin type
|
||||||
@@ -963,6 +1009,8 @@ async def set_user_deal(
|
|||||||
:param take_profit_percent: Take profit percent
|
:param take_profit_percent: Take profit percent
|
||||||
:param stop_loss_percent: Stop loss percent
|
:param stop_loss_percent: Stop loss percent
|
||||||
:param base_quantity: Base quantity
|
:param base_quantity: Base quantity
|
||||||
|
:param commission_fee: Commission fee
|
||||||
|
:param commission_place: Commission place
|
||||||
:return: bool
|
:return: bool
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
@@ -981,6 +1029,7 @@ async def set_user_deal(
|
|||||||
if deal:
|
if deal:
|
||||||
# Updating existing record
|
# Updating existing record
|
||||||
deal.current_step = current_step
|
deal.current_step = current_step
|
||||||
|
deal.current_series = current_series
|
||||||
deal.trade_mode = trade_mode
|
deal.trade_mode = trade_mode
|
||||||
deal.side_mode = side_mode
|
deal.side_mode = side_mode
|
||||||
deal.margin_type = margin_type
|
deal.margin_type = margin_type
|
||||||
@@ -992,12 +1041,15 @@ async def set_user_deal(
|
|||||||
deal.take_profit_percent = take_profit_percent
|
deal.take_profit_percent = take_profit_percent
|
||||||
deal.stop_loss_percent = stop_loss_percent
|
deal.stop_loss_percent = stop_loss_percent
|
||||||
deal.base_quantity = base_quantity
|
deal.base_quantity = base_quantity
|
||||||
|
deal.commission_fee = commission_fee
|
||||||
|
deal.commission_place = commission_place
|
||||||
else:
|
else:
|
||||||
# Creating new record
|
# Creating new record
|
||||||
new_deal = UserDeals(
|
new_deal = UserDeals(
|
||||||
user=user,
|
user=user,
|
||||||
symbol=symbol,
|
symbol=symbol,
|
||||||
current_step=current_step,
|
current_step=current_step,
|
||||||
|
current_series=current_series,
|
||||||
trade_mode=trade_mode,
|
trade_mode=trade_mode,
|
||||||
side_mode=side_mode,
|
side_mode=side_mode,
|
||||||
margin_type=margin_type,
|
margin_type=margin_type,
|
||||||
@@ -1008,7 +1060,9 @@ async def set_user_deal(
|
|||||||
max_bets_in_series=max_bets_in_series,
|
max_bets_in_series=max_bets_in_series,
|
||||||
take_profit_percent=take_profit_percent,
|
take_profit_percent=take_profit_percent,
|
||||||
stop_loss_percent=stop_loss_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)
|
session.add(new_deal)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user