diff --git a/src/app/alembic/versions/85ece6cfed22_.py b/src/app/alembic/versions/85ece6cfed22_.py new file mode 100644 index 0000000..9f6ccf3 --- /dev/null +++ b/src/app/alembic/versions/85ece6cfed22_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: 85ece6cfed22 +Revises: 738a796c3f0a +Create Date: 2021-12-27 23:08:26.124204 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '85ece6cfed22' +down_revision = '738a796c3f0a' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('services', sa.Column('cache', sa.String(length=12), nullable=True)) + op.drop_column('services', 'privileged') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('services', sa.Column('privileged', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False)) + op.drop_column('services', 'cache') + # ### end Alembic commands ### \ No newline at end of file diff --git a/src/app/models.py b/src/app/models.py index 89ffd9d..f66d780 100644 --- a/src/app/models.py +++ b/src/app/models.py @@ -17,6 +17,12 @@ class Statuses(str, Enum): blocked = "blocked" +class CachePrivileges(str, Enum): + original = "original" + buffer = "buffer" + no_cache = "no_cache" + + class Service(ormar.Model): class Meta(BaseMeta): tablename = "services" @@ -25,5 +31,5 @@ class Service(ormar.Model): token: str = ormar.String(max_length=128, unique=True) # type: ignore user: int = ormar.BigInteger() # type: ignore status: str = ormar.String(max_length=12, choices=list(Statuses), default=Statuses.pending) # type: ignore - privileged: bool = ormar.Boolean(default=False, server_default='f', nullable=False) # type: ignore + cache: str = ormar.String(max_length=12, choices=list(CachePrivileges), default=CachePrivileges.no_cache) # type: ignore created_time = ormar.DateTime(timezone=True, default=datetime.now) diff --git a/src/app/serializers.py b/src/app/serializers.py index e94de8a..fcc9adf 100644 --- a/src/app/serializers.py +++ b/src/app/serializers.py @@ -2,13 +2,14 @@ from datetime import datetime from pydantic import BaseModel, constr -from app.models import Statuses +from app.models import Statuses, CachePrivileges class ServiceCreate(BaseModel): token: constr(max_length=128) # type: ignore user: str status: Statuses + cache: CachePrivileges class ServiceDetail(BaseModel): @@ -16,5 +17,5 @@ class ServiceDetail(BaseModel): token: str user: str status: str - privileged: bool + cache: str created_time: datetime