Преглед изворни кода

add place & responsible_contact to slot

tripeur пре 2 година
родитељ
комит
eac0bae18b

+ 41 - 0
alembic/versions/2023081625_increase_slot_datamodel_5fcd397aae72.py

@@ -0,0 +1,41 @@
+"""increase_slot_datamodel
+
+Revision ID: 5fcd397aae72
+Revises: 4f1ef609b19a
+Create Date: 2023-08-16 22:25:30.650590
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = "5fcd397aae72"
+down_revision = "4f1ef609b19a"
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.add_column(
+        "slots", sa.Column("place", sa.String(), nullable=False, server_default="")
+    )
+    op.add_column(
+        "slots",
+        sa.Column("responsibleContact", sa.String(), nullable=False, server_default=""),
+    )
+    op.alter_column(
+        "volunteers", "surname", existing_type=sa.VARCHAR(length=128), nullable=False
+    )
+    # ### end Alembic commands ###
+
+
+def downgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.alter_column(
+        "volunteers", "surname", existing_type=sa.VARCHAR(length=128), nullable=True
+    )
+    op.drop_column("slots", "responsibleContact")
+    op.drop_column("slots", "place")
+    # ### end Alembic commands ###

+ 33 - 0
alembic/versions/2023081632_fix_slot_column_name_2f90ef72e3b9.py

@@ -0,0 +1,33 @@
+"""fix_slot_column_name
+
+Revision ID: 2f90ef72e3b9
+Revises: 5fcd397aae72
+Create Date: 2023-08-16 22:32:42.841398
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = "2f90ef72e3b9"
+down_revision = "5fcd397aae72"
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.alter_column(
+        "slots", "responsibleContact", new_column_name="responsible_contact"
+    )
+    # ### end Alembic commands ###
+
+
+def downgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+
+    op.alter_column(
+        "slots", "responsible_contact", new_column_name="responsibleContact"
+    )
+    # ### end Alembic commands ###

+ 3 - 0
app/models.py

@@ -124,6 +124,9 @@ class Slot(Base):
     )
     title: Mapped[str] = mapped_column(String(128), nullable=False)
     description: Mapped[str] = mapped_column(String(), default="")
+    place: Mapped[str] = mapped_column(String(), default="")
+    responsible_contact: Mapped[str] = mapped_column(String(), default="")
+
     starting_time: Mapped[datetime] = mapped_column(DateTime(timezone=True))
     ending_time: Mapped[datetime] = mapped_column(DateTime(timezone=True))
     volunteers: Mapped[list[Volunteer]] = relationship(

+ 4 - 0
app/schemas/requests.py

@@ -90,6 +90,8 @@ class VolunteerUpdateRequest(BaseRequest):
 class SlotCreateRequest(BaseRequest):
     title: str
     description: Optional[str] = None
+    place: Optional[str] = None
+    responsible_contact: Optional[str] = None
     starting_time: datetime.datetime
     ending_time: datetime.datetime
     volunteers: Optional[list[UUID4]] = None
@@ -98,6 +100,8 @@ class SlotCreateRequest(BaseRequest):
 class SlotUpdateRequest(BaseRequest):
     title: Optional[str] = None
     description: Optional[str] = None
+    place: Optional[str] = None
+    responsible_contact: Optional[str] = None
     starting_time: Optional[datetime.datetime] = None
     ending_time: Optional[datetime.datetime] = None
     volunteers: Optional[list[UUID4]] = None

+ 2 - 0
app/schemas/responses.py

@@ -51,6 +51,8 @@ class SlotResponse(BaseResponse):
     updated_at: datetime
     title: str
     description: str
+    place: str
+    responsible_contact: str
     starting_time: datetime
     ending_time: datetime
     volunteers_id: list[str] = []

+ 2 - 0
app/tests/test_slot.py

@@ -116,6 +116,8 @@ async def test_update_slot(
     starting_time = datetime(2000, 1, 1, tzinfo=timezone.utc)
     payload = {
         "title": "être mort 2 fois",
+        "place": "être mort 2 fois",
+        "responsible_contact": "être mort 2 fois",
         "starting_time": starting_time.isoformat(),
         "ending_time": (starting_time + timedelta(minutes=60)).isoformat(),
     }

+ 1 - 1
pyproject.toml

@@ -2,7 +2,7 @@
 authors = ["clovis jaquin <clovis@jaquin.fr>"]
 description = "FastAPI project API that can parse gsheet planning for brass dans la garonne event and manage creating automatic SMS notification for volunteer"
 name = "bdlg-2023"
-version = "0.1.1-alpha"
+version = "0.1.2-alpha"
 
 [tool.poetry.dependencies]
 fastapi = "^0.89.1"