refactor(models): add explicit foreign key constraints for indicators

This commit is contained in:
Giulio De Pasquale 2025-10-18 09:23:02 +01:00
parent f5aa0e5848
commit 13d5987e49

View File

@ -1,4 +1,4 @@
from sqlmodel import SQLModel, Field, Relationship
from sqlmodel import SQLModel, Field, Relationship, ForeignKeyConstraint
from datetime import datetime
from typing import Optional
@ -17,18 +17,18 @@ class TickerOHLCV(SQLModel, table=True):
indicators: Optional["IndicatorsData"] = Relationship(
back_populates="ohlcv",
sa_relationship_kwargs={
"foreign_keys": "[IndicatorsData.ticker, IndicatorsData.date]",
"uselist": False,
},
sa_relationship_kwargs={"uselist": False},
)
class IndicatorsData(SQLModel, table=True):
__tablename__ = "indicators"
__table_args__ = (
ForeignKeyConstraint(["ticker", "date"], ["ohlcv.ticker", "ohlcv.date"]),
)
ticker: str = Field(foreign_key="ohlcv.ticker", primary_key=True)
date: datetime = Field(foreign_key="ohlcv.date", primary_key=True, index=True)
ticker: str = Field(primary_key=True)
date: datetime = Field(primary_key=True, index=True)
# ========================================================================
# MOMENTUM INDICATORS (Trend Direction & Strength)