mirror of
https://github.com/Llloooggg/TextSouls.git
synced 2026-03-06 12:36:23 +03:00
backend: добавлена модель дуэлей
This commit is contained in:
32
backend/migrations/versions/1da93403ba52_.py
Normal file
32
backend/migrations/versions/1da93403ba52_.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 1da93403ba52
|
||||
Revises: aa81b5d5ae0f
|
||||
Create Date: 2022-11-20 11:44:37.737612
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '1da93403ba52'
|
||||
down_revision = 'aa81b5d5ae0f'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('duels', schema=None) as batch_op:
|
||||
batch_op.add_column(sa.Column('created_on', sa.DateTime(), nullable=False))
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('duels', schema=None) as batch_op:
|
||||
batch_op.drop_column('created_on')
|
||||
|
||||
# ### end Alembic commands ###
|
||||
@@ -1,8 +1,8 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: c3b392fdf575
|
||||
Revision ID: aa81b5d5ae0f
|
||||
Revises:
|
||||
Create Date: 2022-11-20 00:31:12.952336
|
||||
Create Date: 2022-11-20 11:42:42.864173
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
@@ -10,7 +10,7 @@ import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'c3b392fdf575'
|
||||
revision = 'aa81b5d5ae0f'
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
@@ -40,6 +40,10 @@ def upgrade():
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('name')
|
||||
)
|
||||
op.create_table('duels',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('users',
|
||||
sa.Column('id', sa.BigInteger(), autoincrement=False, nullable=False),
|
||||
sa.Column('chat_id', sa.BigInteger(), nullable=False),
|
||||
@@ -53,29 +57,40 @@ def upgrade():
|
||||
)
|
||||
op.create_table('characters',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('owner', sa.BigInteger(), nullable=True),
|
||||
sa.Column('owner_id', sa.BigInteger(), nullable=True),
|
||||
sa.Column('name', sa.String(length=255), nullable=False),
|
||||
sa.Column('character_race', sa.Integer(), nullable=False),
|
||||
sa.Column('character_class', sa.Integer(), nullable=False),
|
||||
sa.Column('character_race_id', sa.Integer(), nullable=False),
|
||||
sa.Column('character_class_id', sa.Integer(), nullable=False),
|
||||
sa.Column('created_on', sa.DateTime(), nullable=False),
|
||||
sa.Column('endurance_base', sa.Integer(), nullable=False),
|
||||
sa.Column('strength_base', sa.Integer(), nullable=False),
|
||||
sa.Column('agility_base', sa.Integer(), nullable=False),
|
||||
sa.Column('defence_base', sa.Integer(), nullable=False),
|
||||
sa.Column('wisdom_base', sa.Integer(), nullable=False),
|
||||
sa.ForeignKeyConstraint(['character_class'], ['character_classes.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['character_race'], ['character_races.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['owner'], ['users.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['character_class_id'], ['character_classes.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['character_race_id'], ['character_races.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['owner_id'], ['users.id'], ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('name')
|
||||
)
|
||||
op.create_table('duels_participants',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('participant_id', sa.Integer(), nullable=True),
|
||||
sa.Column('turn_order', sa.Integer(), nullable=False),
|
||||
sa.Column('duel_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['duel_id'], ['duels.id'], ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['participant_id'], ['characters.id'], ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('duels_participants')
|
||||
op.drop_table('characters')
|
||||
op.drop_table('users')
|
||||
op.drop_table('duels')
|
||||
op.drop_table('character_races')
|
||||
op.drop_table('character_classes')
|
||||
# ### end Alembic commands ###
|
||||
@@ -73,17 +73,17 @@ class Character(db.Model, SerializerMixin):
|
||||
serialize_rules = ("-user", "-race", "-class")
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
owner = db.Column(
|
||||
owner_id = db.Column(
|
||||
db.BigInteger,
|
||||
db.ForeignKey("users.id", ondelete="CASCADE"),
|
||||
)
|
||||
name = db.Column(db.String(255), nullable=False, unique=True)
|
||||
character_race = db.Column(
|
||||
character_race_id = db.Column(
|
||||
db.Integer,
|
||||
db.ForeignKey("character_races.id", ondelete="CASCADE"),
|
||||
nullable=False,
|
||||
)
|
||||
character_class = db.Column(
|
||||
character_class_id = db.Column(
|
||||
db.Integer,
|
||||
db.ForeignKey("character_classes.id", ondelete="CASCADE"),
|
||||
nullable=False,
|
||||
@@ -148,3 +148,35 @@ class Character(db.Model, SerializerMixin):
|
||||
"defence_chance": defence_chance,
|
||||
"dodge_chance": dodge_chance,
|
||||
}
|
||||
|
||||
|
||||
class DuelParticipants(db.Model, SerializerMixin):
|
||||
|
||||
__tablename__ = "duels_participants"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
participant_id = db.Column(
|
||||
db.Integer,
|
||||
db.ForeignKey("characters.id", ondelete="CASCADE"),
|
||||
)
|
||||
turn_order = db.Column(db.Integer, nullable=False)
|
||||
duel_id = db.Column(
|
||||
db.Integer,
|
||||
db.ForeignKey("duels.id", ondelete="CASCADE"),
|
||||
)
|
||||
|
||||
|
||||
class Duel(db.Model, SerializerMixin):
|
||||
|
||||
__tablename__ = "duels"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
created_on = db.Column(
|
||||
db.DateTime, nullable=False, default=datetime.datetime.now()
|
||||
)
|
||||
participants = db.relationship(
|
||||
"DuelParticipants", backref="duel", lazy="dynamic"
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
Reference in New Issue
Block a user