54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
from sqlalchemy import (
|
|
Boolean,
|
|
Column,
|
|
Date,
|
|
DateTime,
|
|
Float,
|
|
ForeignKey,
|
|
Integer,
|
|
MetaData,
|
|
String,
|
|
Table,
|
|
func,
|
|
)
|
|
|
|
metadata = MetaData()
|
|
|
|
trainings = Table(
|
|
"trainings",
|
|
metadata,
|
|
Column("id", Integer, primary_key=True),
|
|
Column("date", Date, nullable=False, index=True),
|
|
Column("trainer", String(100)),
|
|
Column("created_at", DateTime(timezone=True), nullable=False, server_default=func.now()),
|
|
)
|
|
|
|
exercises = Table(
|
|
"exercises",
|
|
metadata,
|
|
Column("id", Integer, primary_key=True),
|
|
Column(
|
|
"training_id",
|
|
ForeignKey("trainings.id", ondelete="CASCADE"),
|
|
nullable=False,
|
|
index=True,
|
|
),
|
|
Column("name", String(255), nullable=False, index=True),
|
|
Column("splitted_weight", Boolean, nullable=False, server_default="false"),
|
|
Column("created_at", DateTime(timezone=True), nullable=False, server_default=func.now()),
|
|
)
|
|
|
|
approaches = Table(
|
|
"approaches",
|
|
metadata,
|
|
Column("id", Integer, primary_key=True),
|
|
Column(
|
|
"exercise_id",
|
|
ForeignKey("exercises.id", ondelete="CASCADE"),
|
|
nullable=False,
|
|
index=True,
|
|
),
|
|
Column("weight", Float, nullable=False),
|
|
Column("reps", Integer, nullable=False),
|
|
Column("created_at", DateTime(timezone=True), nullable=False, server_default=func.now()),
|
|
)
|