Skip to content

Commit 7f82f03

Browse files
committed
feat:add constraints for start and end dates/times
1 parent d910593 commit 7f82f03

3 files changed

Lines changed: 24 additions & 9 deletions

File tree

src/alembic/versions/0990cd930610_created_events_info_table.py renamed to src/alembic/versions/f4c493a24799_create_event_table.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
"""created events_info table
1+
"""create_event_table
22
3-
Revision ID: 0990cd930610
3+
Revision ID: f4c493a24799
44
Revises: 0a2c458d1ddd
5-
Create Date: 2026-05-09 23:53:01.667539
5+
Create Date: 2026-05-15 23:00:45.680647
66
77
"""
88
from typing import Sequence, Union
@@ -12,7 +12,7 @@
1212

1313

1414
# revision identifiers, used by Alembic.
15-
revision: str = '0990cd930610'
15+
revision: str = 'f4c493a24799'
1616
down_revision: Union[str, None] = '0a2c458d1ddd'
1717
branch_labels: Union[str, Sequence[str], None] = None
1818
depends_on: Union[str, Sequence[str], None] = None
@@ -29,6 +29,8 @@ def upgrade() -> None:
2929
sa.Column('repeat', sa.String(length=64), nullable=False),
3030
sa.Column('start_date', sa.Date(), nullable=True),
3131
sa.Column('end_date', sa.Date(), nullable=True),
32+
sa.CheckConstraint('start_date < end_date', name=op.f('ck_event_info_check_start_date_before_end_date')),
33+
sa.CheckConstraint('start_time < end_time', name=op.f('ck_event_info_check_start_time_before_end_time')),
3234
sa.PrimaryKeyConstraint('eid', name=op.f('pk_event_info'))
3335
)
3436
# ### end Alembic commands ###

src/event/crud.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ async def create_event(
6565
db_session: AsyncSession,
6666
info: EventDB
6767
):
68-
await db_session.add(info)
68+
db_session.add(info)
6969

7070

7171
async def delete_event(

src/event/tables.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
String,
44
DateTime,
55
Text,
6-
Date
6+
Date,
7+
CheckConstraint
78
)
89
from sqlalchemy.orm import Mapped, mapped_column
910

@@ -35,15 +36,27 @@ class EventDB(Base):
3536
nullable=True
3637
)
3738

39+
__table_args__ = (
40+
CheckConstraint(
41+
'start_time < end_time',
42+
name='check_start_time_before_end_time'
43+
),
44+
CheckConstraint(
45+
'start_date < end_date',
46+
name='check_start_date_before_end_date'
47+
)
48+
)
49+
50+
3851
def serialize(self) -> dict:
3952
return{
4053
"eid": self.eid,
4154
"name": self.name,
4255
"description": self.description,
4356
"start_time": self.start_time,
44-
"end_time": self.start_time,
45-
"start_date": self.start_time,
46-
"end_date": self.start_time,
57+
"end_time": self.end_time,
58+
"start_date": self.start_date,
59+
"end_date": self.end_date,
4760
}
4861

4962

0 commit comments

Comments
 (0)