init commit

This commit is contained in:
prod-tech
2024-11-17 02:31:42 +03:00
commit cf933c770c
217 changed files with 19340 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
from uuid import UUID
from uuid import uuid4
from sqlalchemy import BigInteger
from sqlalchemy import Column
from sqlalchemy import ForeignKey
from sqlmodel import Field
from sqlmodel import Relationship
from sqlmodel import SQLModel
from app.models.transactions import Transaction
from .links import EventUserLink
from .user import User
class BaseEvent(SQLModel):
name: str = Field(nullable=False, default='Change name pls')
class Event(BaseEvent, table=True):
id: UUID = Field(primary_key=True, default_factory=uuid4)
owner_id: int = Field(
sa_column=Column(BigInteger(), ForeignKey('user.id'))
)
invite: str | None = Field(default_factory=uuid4)
users: list['User'] = Relationship(
back_populates='events', link_model=EventUserLink
)
transactions: list['Transaction'] = Relationship(
back_populates='event', cascade_delete=True
)
async def add_user(self, user: User):
self.users.append(user)
async def add_transaction(self, transaction: Transaction):
self.transactions.append(transaction)
class OutputEvent(BaseEvent):
id: UUID
owner: int
users: list[User]
invite: str | None
name: str
class AddUserRequest(SQLModel):
user_id: int