Skip to content

Commit 89b2c5e

Browse files
committed
chore: api models
1 parent 09b3f2b commit 89b2c5e

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""SQLAlchemy models for users and backtest jobs."""
2+
from __future__ import annotations
3+
import sqlalchemy as sa
4+
from sqlalchemy import func
5+
from .db import Base
6+
7+
8+
class User(Base):
9+
__tablename__ = "users"
10+
11+
id = sa.Column(sa.Integer, primary_key=True, index=True)
12+
username = sa.Column(sa.String(128), unique=True, index=True, nullable=False)
13+
hashed_password = sa.Column(sa.String(256), nullable=False)
14+
is_active = sa.Column(sa.Boolean, default=True)
15+
role = sa.Column(sa.String(32), default="user")
16+
created_at = sa.Column(sa.DateTime, server_default=func.now())
17+
18+
19+
class BacktestJob(Base):
20+
__tablename__ = "backtest_jobs"
21+
22+
id = sa.Column(sa.String(64), primary_key=True, index=True)
23+
user_id = sa.Column(sa.Integer, sa.ForeignKey("users.id"), nullable=True)
24+
status = sa.Column(sa.String(32), nullable=False, default="queued")
25+
params = sa.Column(sa.JSON, nullable=True)
26+
result_path = sa.Column(sa.String(1024), nullable=True)
27+
created_at = sa.Column(sa.DateTime, server_default=func.now())
28+
updated_at = sa.Column(sa.DateTime, server_default=func.now(), onupdate=func.now())

0 commit comments

Comments
 (0)