Auto-creates equity account for eligible users
Automatically creates a user-specific equity account when a user is granted equity eligibility. This simplifies the process of granting equity and ensures that each eligible user has a dedicated equity account.
This commit is contained in:
parent
88aaf0e28e
commit
988d7fdf20
1 changed files with 30 additions and 1 deletions
31
crud.py
31
crud.py
|
|
@ -979,7 +979,36 @@ async def create_or_update_user_equity_status(
|
||||||
) -> "UserEquityStatus":
|
) -> "UserEquityStatus":
|
||||||
"""Create or update user equity eligibility status"""
|
"""Create or update user equity eligibility status"""
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from .models import UserEquityStatus
|
from .models import UserEquityStatus, AccountType
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
# Auto-create user-specific equity account if granting eligibility
|
||||||
|
if data.is_equity_eligible:
|
||||||
|
# Generate equity account name: Equity:User-{user_id}
|
||||||
|
equity_account_name = f"Equity:User-{data.user_id[:8]}"
|
||||||
|
|
||||||
|
# Check if the equity account already exists
|
||||||
|
equity_account = await get_account_by_name(equity_account_name)
|
||||||
|
|
||||||
|
if not equity_account:
|
||||||
|
# Create the user-specific equity account
|
||||||
|
await db.execute(
|
||||||
|
"""
|
||||||
|
INSERT INTO accounts (id, name, account_type, description, user_id, created_at)
|
||||||
|
VALUES (:id, :name, :type, :description, :user_id, :created_at)
|
||||||
|
""",
|
||||||
|
{
|
||||||
|
"id": str(uuid.uuid4()),
|
||||||
|
"name": equity_account_name,
|
||||||
|
"type": AccountType.EQUITY.value,
|
||||||
|
"description": f"Equity contributions for user {data.user_id[:8]}",
|
||||||
|
"user_id": data.user_id,
|
||||||
|
"created_at": datetime.now(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Auto-populate equity_account_name in the data
|
||||||
|
data.equity_account_name = equity_account_name
|
||||||
|
|
||||||
# Check if user already has equity status
|
# Check if user already has equity status
|
||||||
existing = await get_user_equity_status(data.user_id)
|
existing = await get_user_equity_status(data.user_id)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue