feat: add Signal Pydantic schemas

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
zephyrdark 2026-02-19 15:06:03 +09:00
parent a64636f6ff
commit 01d6b007f6

View File

@ -0,0 +1,53 @@
"""
Signal related Pydantic schemas.
"""
from datetime import date, datetime
from decimal import Decimal
from typing import Optional, List
from enum import Enum
from pydantic import BaseModel
from app.schemas.portfolio import FloatDecimal
class SignalType(str, Enum):
BUY = "buy"
SELL = "sell"
PARTIAL_SELL = "partial_sell"
class SignalStatus(str, Enum):
ACTIVE = "active"
EXECUTED = "executed"
EXPIRED = "expired"
class SignalResponse(BaseModel):
id: int
date: date
ticker: str
name: Optional[str] = None
signal_type: str
entry_price: Optional[FloatDecimal] = None
target_price: Optional[FloatDecimal] = None
stop_loss_price: Optional[FloatDecimal] = None
reason: Optional[str] = None
status: str
created_at: datetime
class Config:
from_attributes = True
class ActivePosition(BaseModel):
ticker: str
name: Optional[str] = None
entry_date: date
entry_price: FloatDecimal
current_price: FloatDecimal
shares: int
stop_loss_price: FloatDecimal
target_price: FloatDecimal
pnl_percent: FloatDecimal
pnl_amount: FloatDecimal