22 lines
941 B
Python
22 lines
941 B
Python
|
|
from sqlalchemy import Column, String, Numeric, Enum, DateTime, JSON, func
|
||
|
|
from sqlalchemy.dialects.postgresql import UUID
|
||
|
|
import uuid
|
||
|
|
|
||
|
|
from database import metadata
|
||
|
|
|
||
|
|
positions = Table(
|
||
|
|
"positions",
|
||
|
|
metadata,
|
||
|
|
Column("id", UUID(as_uuid=True), primary_key=True, default=uuid.uuid4),
|
||
|
|
Column("symbol", String(32), nullable=False, index=True),
|
||
|
|
Column("direction", Enum("long", "short", name="position_direction"), nullable=False),
|
||
|
|
Column("entry_price", Numeric(precision=16, scale=8), nullable=False),
|
||
|
|
Column("exit_price", Numeric(precision=16, scale=8)),
|
||
|
|
Column("quantity", Numeric(precision=16, scale=8), nullable=False),
|
||
|
|
Column("exchange", String(32), nullable=False, index=True),
|
||
|
|
Column("opened_at", DateTime(timezone=True), server_default=func.now(), nullable=False),
|
||
|
|
Column("closed_at", DateTime(timezone=True)),
|
||
|
|
Column("pnl", Numeric(precision=16, scale=2)),
|
||
|
|
Column("metadata", JSON),
|
||
|
|
)
|