Skip to content

Commit f279fe0

Browse files
committed
add updated_at
1 parent 3c0374e commit f279fe0

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

backend/python/app/models/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ def init_app(_app: Any | None = None) -> None:
8181
"""Initialize database for the application"""
8282
# Import models to register them with SQLModel
8383
from .entity import Entity # noqa: F401
84+
from .jobs import Jobs # noqa: F401
8485
from .simple_entity import SimpleEntity # noqa: F401
8586
from .user import User # noqa: F401
86-
from .jobs import Jobs # noqa: F401
8787

8888
init_database()
8989

backend/python/app/models/jobs.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,65 @@
1-
from .enum import StatusEnum
2-
from .base import BaseModel
3-
from typing import Optional
1+
from datetime import datetime
42
from uuid import UUID, uuid4
3+
54
from sqlalchemy import DateTime
6-
from datetime import datetime
7-
from sqlmodel import SQLModel, Field
5+
from sqlmodel import Field, SQLModel
6+
7+
from .base import BaseModel
8+
from .enum import StatusEnum
89

910

1011
class JobsBase(SQLModel):
1112
"""Shared fields between table and API models"""
1213

13-
route_group_id: Optional[UUID] = Field(foreign_key="route_groups.id")
14+
route_group_id: UUID | None = Field(foreign_key="route_groups.id")
1415
status: StatusEnum = Field(default=StatusEnum.PENDING)
1516
progress: str = Field(default=None)
1617

1718

1819
class Jobs(JobsBase, BaseModel, table=True):
20+
"""Jobs model for demonstration purposes"""
21+
1922
__tablename__ = "jobs"
2023

2124
id: UUID = Field(default=uuid4, primary_key=True)
22-
started_at: Optional[datetime] = Field(
25+
started_at: datetime | None = Field(
2326
default_factory=datetime.utcnow,
2427
sa_type=DateTime(timezone=True),
2528
description="Timestamp when the record was created",
2629
)
27-
finished_at: Optional[datetime] = Field(
30+
updated_at: datetime | None = Field(
31+
default=None,
32+
sa_type=DateTime(timezone=True),
33+
description="Timestamp when the record was updated",
34+
)
35+
finished_at: datetime | None = Field(
2836
default=None,
2937
sa_type=DateTime(timezone=True),
3038
description="Timestamp when the record is finished",
3139
)
3240

3341

3442
class JobsCreate(JobsBase):
43+
"""Jobs creation request"""
44+
3545
pass
3646

3747

3848
class JobsRead(JobsBase):
49+
"""Jobs response model"""
50+
3951
id: UUID
40-
started_at: Optional[datetime] = None
41-
finished_at: Optional[datetime] = None
52+
started_at: datetime | None = None
53+
finished_at: datetime | None = None
4254
created_at: datetime
4355
updated_at: datetime
4456

4557

4658
class JobsUpdate(SQLModel):
47-
status: Optional[StatusEnum] = None
48-
progress: Optional[str] = None
49-
route_group_id: Optional[UUID] = None
50-
started_at: Optional[datetime] = None
51-
finished_at: Optional[datetime] = None
59+
"""Jobs update request - all optional"""
60+
61+
status: StatusEnum | None = None
62+
progress: str | None = None
63+
route_group_id: UUID | None = None
64+
started_at: datetime | None = None
65+
finished_at: datetime | None = None

0 commit comments

Comments
 (0)