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
|
"""empty message
|
||||||
|
|
||||||
Revision ID: c3b392fdf575
|
Revision ID: aa81b5d5ae0f
|
||||||
Revises:
|
Revises:
|
||||||
Create Date: 2022-11-20 00:31:12.952336
|
Create Date: 2022-11-20 11:42:42.864173
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from alembic import op
|
from alembic import op
|
||||||
@@ -10,7 +10,7 @@ import sqlalchemy as sa
|
|||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = 'c3b392fdf575'
|
revision = 'aa81b5d5ae0f'
|
||||||
down_revision = None
|
down_revision = None
|
||||||
branch_labels = None
|
branch_labels = None
|
||||||
depends_on = None
|
depends_on = None
|
||||||
@@ -40,6 +40,10 @@ def upgrade():
|
|||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
sa.UniqueConstraint('name')
|
||||||
)
|
)
|
||||||
|
op.create_table('duels',
|
||||||
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
op.create_table('users',
|
op.create_table('users',
|
||||||
sa.Column('id', sa.BigInteger(), autoincrement=False, nullable=False),
|
sa.Column('id', sa.BigInteger(), autoincrement=False, nullable=False),
|
||||||
sa.Column('chat_id', sa.BigInteger(), nullable=False),
|
sa.Column('chat_id', sa.BigInteger(), nullable=False),
|
||||||
@@ -53,29 +57,40 @@ def upgrade():
|
|||||||
)
|
)
|
||||||
op.create_table('characters',
|
op.create_table('characters',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
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('name', sa.String(length=255), nullable=False),
|
||||||
sa.Column('character_race', sa.Integer(), nullable=False),
|
sa.Column('character_race_id', sa.Integer(), nullable=False),
|
||||||
sa.Column('character_class', sa.Integer(), nullable=False),
|
sa.Column('character_class_id', sa.Integer(), nullable=False),
|
||||||
sa.Column('created_on', sa.DateTime(), nullable=False),
|
sa.Column('created_on', sa.DateTime(), nullable=False),
|
||||||
sa.Column('endurance_base', sa.Integer(), nullable=False),
|
sa.Column('endurance_base', sa.Integer(), nullable=False),
|
||||||
sa.Column('strength_base', sa.Integer(), nullable=False),
|
sa.Column('strength_base', sa.Integer(), nullable=False),
|
||||||
sa.Column('agility_base', sa.Integer(), nullable=False),
|
sa.Column('agility_base', sa.Integer(), nullable=False),
|
||||||
sa.Column('defence_base', sa.Integer(), nullable=False),
|
sa.Column('defence_base', sa.Integer(), nullable=False),
|
||||||
sa.Column('wisdom_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_class_id'], ['character_classes.id'], ondelete='CASCADE'),
|
||||||
sa.ForeignKeyConstraint(['character_race'], ['character_races.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['character_race_id'], ['character_races.id'], ondelete='CASCADE'),
|
||||||
sa.ForeignKeyConstraint(['owner'], ['users.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['owner_id'], ['users.id'], ondelete='CASCADE'),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
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 ###
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_table('duels_participants')
|
||||||
op.drop_table('characters')
|
op.drop_table('characters')
|
||||||
op.drop_table('users')
|
op.drop_table('users')
|
||||||
|
op.drop_table('duels')
|
||||||
op.drop_table('character_races')
|
op.drop_table('character_races')
|
||||||
op.drop_table('character_classes')
|
op.drop_table('character_classes')
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
@@ -73,17 +73,17 @@ class Character(db.Model, SerializerMixin):
|
|||||||
serialize_rules = ("-user", "-race", "-class")
|
serialize_rules = ("-user", "-race", "-class")
|
||||||
|
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
owner = db.Column(
|
owner_id = db.Column(
|
||||||
db.BigInteger,
|
db.BigInteger,
|
||||||
db.ForeignKey("users.id", ondelete="CASCADE"),
|
db.ForeignKey("users.id", ondelete="CASCADE"),
|
||||||
)
|
)
|
||||||
name = db.Column(db.String(255), nullable=False, unique=True)
|
name = db.Column(db.String(255), nullable=False, unique=True)
|
||||||
character_race = db.Column(
|
character_race_id = db.Column(
|
||||||
db.Integer,
|
db.Integer,
|
||||||
db.ForeignKey("character_races.id", ondelete="CASCADE"),
|
db.ForeignKey("character_races.id", ondelete="CASCADE"),
|
||||||
nullable=False,
|
nullable=False,
|
||||||
)
|
)
|
||||||
character_class = db.Column(
|
character_class_id = db.Column(
|
||||||
db.Integer,
|
db.Integer,
|
||||||
db.ForeignKey("character_classes.id", ondelete="CASCADE"),
|
db.ForeignKey("character_classes.id", ondelete="CASCADE"),
|
||||||
nullable=False,
|
nullable=False,
|
||||||
@@ -148,3 +148,35 @@ class Character(db.Model, SerializerMixin):
|
|||||||
"defence_chance": defence_chance,
|
"defence_chance": defence_chance,
|
||||||
"dodge_chance": dodge_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