разъебаться по полной #21
@@ -92,6 +92,7 @@ class UserAdditionalSettings(Base):
|
|||||||
nullable=False, unique=True)
|
nullable=False, unique=True)
|
||||||
trade_mode = Column(String, nullable=False, default="Merged_Single")
|
trade_mode = Column(String, nullable=False, default="Merged_Single")
|
||||||
switch_side = Column(String, nullable=False, default="По направлению")
|
switch_side = Column(String, nullable=False, default="По направлению")
|
||||||
|
side = Column(String, nullable=False, default="Buy")
|
||||||
trigger_price = Column(Float, nullable=False, default=0.0)
|
trigger_price = Column(Float, nullable=False, default=0.0)
|
||||||
margin_type = Column(String, nullable=False, default="ISOLATED_MARGIN")
|
margin_type = Column(String, nullable=False, default="ISOLATED_MARGIN")
|
||||||
leverage = Column(String, nullable=False, default="10")
|
leverage = Column(String, nullable=False, default="10")
|
||||||
|
|||||||
@@ -358,6 +358,45 @@ async def set_switch_side(tg_id: int, switch_side: str) -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
async def set_side(tg_id: int, side: str) -> bool:
|
||||||
|
"""
|
||||||
|
Set side for a user in the database.
|
||||||
|
:param tg_id: Telegram user ID
|
||||||
|
:param side: "BUY" or "SELL"
|
||||||
|
:return: True if successful, False otherwise
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
async with async_session() as session:
|
||||||
|
result = await session.execute(
|
||||||
|
select(User)
|
||||||
|
.options(joinedload(User.user_additional_settings))
|
||||||
|
.filter_by(tg_id=tg_id)
|
||||||
|
)
|
||||||
|
user = result.scalars().first()
|
||||||
|
|
||||||
|
if user:
|
||||||
|
if user.user_additional_settings:
|
||||||
|
# Updating existing record
|
||||||
|
user.user_additional_settings.side = side
|
||||||
|
else:
|
||||||
|
# Creating new record
|
||||||
|
user_additional_settings = UserAdditionalSettings(
|
||||||
|
side=side,
|
||||||
|
user=user,
|
||||||
|
)
|
||||||
|
session.add(user_additional_settings)
|
||||||
|
|
||||||
|
await session.commit()
|
||||||
|
logger.info("User side 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 side for user %s: %s", tg_id, e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
async def set_leverage(tg_id: int, leverage: str) -> bool:
|
async def set_leverage(tg_id: int, leverage: str) -> bool:
|
||||||
"""
|
"""
|
||||||
Set leverage for a user in the database.
|
Set leverage for a user in the database.
|
||||||
|
|||||||
Reference in New Issue
Block a user