feat: datetimes with timezones

This commit is contained in:
2025-08-24 14:53:50 +04:00
parent b4b29d448b
commit b776ad6758
5 changed files with 12 additions and 7 deletions

View File

@ -1,5 +1,6 @@
from datetime import datetime from datetime import datetime
from sqlalchemy import DateTime
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
@ -15,4 +16,6 @@ class SoftDeleteMixin:
class CreatedAtMixin: class CreatedAtMixin:
created_at: Mapped[datetime] = mapped_column(nullable=False) created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), nullable=False
)

View File

@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, timezone
from typing import Optional from typing import Optional
from sqlalchemy import select from sqlalchemy import select
@ -30,7 +30,7 @@ class BoardRepository(BaseRepository):
async def create(self, data: CreateBoardSchema) -> Board: async def create(self, data: CreateBoardSchema) -> Board:
board_data = data.model_dump() board_data = data.model_dump()
board_data["created_at"] = datetime.now() board_data["created_at"] = datetime.now(timezone.utc)
board = Board(**board_data) board = Board(**board_data)
self.session.add(board) self.session.add(board)
await self.session.commit() await self.session.commit()

View File

@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, timezone
from typing import Optional from typing import Optional
from sqlalchemy import select from sqlalchemy import select
@ -25,7 +25,7 @@ class DealRepository(BaseRepository):
async def create(self, data: CreateDealSchema) -> Deal: async def create(self, data: CreateDealSchema) -> Deal:
deal_data = data.model_dump() deal_data = data.model_dump()
deal_data["created_at"] = datetime.now() deal_data["created_at"] = datetime.now(timezone.utc)
deal = Deal(**deal_data) deal = Deal(**deal_data)
self.session.add(deal) self.session.add(deal)
await self.session.commit() await self.session.commit()

View File

@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, timezone
from typing import Optional from typing import Optional
from sqlalchemy import select from sqlalchemy import select
@ -26,7 +26,7 @@ class ProjectRepository(BaseRepository):
async def create(self, data: CreateProjectSchema) -> Project: async def create(self, data: CreateProjectSchema) -> Project:
project_data = data.model_dump() project_data = data.model_dump()
project_data["created_at"] = datetime.now() project_data["created_at"] = datetime.now(timezone.utc)
project = Project(**project_data) project = Project(**project_data)
self.session.add(project) self.session.add(project)
await self.session.commit() await self.session.commit()

View File

@ -1,3 +1,4 @@
from datetime import datetime
from typing import Optional from typing import Optional
from schemas.base import BaseSchema, BaseResponse from schemas.base import BaseSchema, BaseResponse
@ -11,6 +12,7 @@ class DealSchema(BaseSchema):
name: str name: str
lexorank: str lexorank: str
status_id: int status_id: int
created_at: datetime
class CreateDealSchema(BaseSchema): class CreateDealSchema(BaseSchema):