from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '0001_init' down_revision = None branch_labels = None depends_on = None def upgrade() -> None: op.create_table('users', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('tg_id', sa.BigInteger(), nullable=False, unique=True, index=True), sa.Column('name', sa.String(length=255)), sa.Column('created_at', sa.DateTime(), nullable=False), ) op.create_table('chats', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('chat_id', sa.BigInteger(), nullable=False, unique=True, index=True), sa.Column('type', sa.String(length=32)), sa.Column('title', sa.String(length=255)), sa.Column('owner_user_id', sa.Integer(), sa.ForeignKey('users.id'), index=True), sa.Column('can_post', sa.Boolean(), nullable=False, server_default=sa.text('false')), sa.Column('created_at', sa.DateTime(), nullable=False), ) op.create_table('drafts', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('user_id', sa.Integer(), sa.ForeignKey('users.id'), index=True), sa.Column('text', sa.Text()), sa.Column('status', sa.String(length=16), index=True, server_default='editing'), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('updated_at', sa.DateTime(), nullable=False), ) op.create_table('draft_media', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('draft_id', sa.Integer(), sa.ForeignKey('drafts.id'), index=True), sa.Column('kind', sa.String(length=16)), sa.Column('file_id', sa.String(length=255)), sa.Column('order', sa.Integer(), server_default='0'), ) op.create_table('deliveries', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('draft_id', sa.Integer(), sa.ForeignKey('drafts.id'), index=True), sa.Column('chat_id', sa.BigInteger(), index=True), sa.Column('status', sa.String(length=16), index=True, server_default='new'), sa.Column('error', sa.Text()), sa.Column('message_ids', sa.Text()), sa.Column('created_at', sa.DateTime(), nullable=False), ) def downgrade() -> None: op.drop_table('deliveries') op.drop_table('draft_media') op.drop_table('drafts') op.drop_table('chats') op.drop_table('users')