feat: Enhance timestamp management in BaseModel and PlaylistRepository; add automatic updates and improve code readability
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
from datetime import UTC, datetime
|
||||
from typing import Any
|
||||
|
||||
from sqlalchemy import event
|
||||
from sqlalchemy.engine import Connection
|
||||
from sqlalchemy.orm import Mapper
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
@@ -16,6 +19,8 @@ class BaseModel(SQLModel):
|
||||
|
||||
# SQLAlchemy event listener to automatically update updated_at timestamp
|
||||
@event.listens_for(BaseModel, "before_update", propagate=True)
|
||||
def update_timestamp(mapper, connection, target):
|
||||
def update_timestamp(
|
||||
mapper: Mapper[Any], connection: Connection, target: BaseModel, # noqa: ARG001
|
||||
) -> None:
|
||||
"""Automatically set updated_at timestamp before update operations."""
|
||||
target.updated_at = datetime.now(UTC)
|
||||
|
||||
Reference in New Issue
Block a user