init
This commit is contained in:
5
src/domain/__init__.py
Normal file
5
src/domain/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
__all__ = ('Base', 'User', 'UserNotFound')
|
||||
|
||||
from .base import Base
|
||||
from .error import UserNotFound
|
||||
from .user import User
|
||||
21
src/domain/base.py
Normal file
21
src/domain/base.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import datetime
|
||||
import uuid
|
||||
|
||||
from sqlalchemy import func
|
||||
from sqlalchemy.orm import DeclarativeBase, Mapped, declared_attr, mapped_column
|
||||
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
__abstract__ = True
|
||||
|
||||
# Авто имя таблиц по названию класса
|
||||
@declared_attr.directive
|
||||
def __tablename__(cls) -> str:
|
||||
return f'{cls.__name__.lower()}s'
|
||||
|
||||
id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=uuid.uuid4)
|
||||
created_at: Mapped[datetime.datetime] = mapped_column(server_default=func.now())
|
||||
updated_at: Mapped[datetime.datetime] = mapped_column(
|
||||
server_default=func.now(), onupdate=func.now()
|
||||
)
|
||||
deleted_at: Mapped[datetime.datetime | None]
|
||||
7
src/domain/error.py
Normal file
7
src/domain/error.py
Normal file
@@ -0,0 +1,7 @@
|
||||
import uuid
|
||||
|
||||
from fastapi import HTTPException, status
|
||||
|
||||
|
||||
def UserNotFound(user_id: uuid.UUID) -> HTTPException:
|
||||
return HTTPException(status.HTTP_404_NOT_FOUND, f'User {user_id} not found')
|
||||
7
src/domain/user.py
Normal file
7
src/domain/user.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from sqlalchemy.orm import Mapped
|
||||
|
||||
from src import domain
|
||||
|
||||
|
||||
class User(domain.Base):
|
||||
name: Mapped[str]
|
||||
Reference in New Issue
Block a user