init commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user