init commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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.item import Item
|
||||
from app.models.user import User
|
||||
|
||||
|
||||
class BaseTransaction(SQLModel):
|
||||
title: str = Field(nullable=False)
|
||||
|
||||
|
||||
class Transaction(BaseTransaction, table=True):
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
payer_id: int = Field(
|
||||
sa_column=Column(BigInteger(), ForeignKey('user.id'))
|
||||
)
|
||||
payer: User = Relationship(back_populates='transactions')
|
||||
event_id: UUID = Field(foreign_key='event.id')
|
||||
event: 'Event' = Relationship(back_populates='transactions')
|
||||
closed: bool = Field(nullable=False, default=False)
|
||||
items: list['Item'] = Relationship(back_populates='transaction')
|
||||
|
||||
async def add_participant(self, participant: User):
|
||||
self.participants.append(participant)
|
||||
|
||||
async def add_item(self, item: Item):
|
||||
self.items.append(item)
|
||||
|
||||
|
||||
class OutputTransaction(BaseTransaction):
|
||||
id: UUID
|
||||
payer: User
|
||||
event_id: UUID
|
||||
closed: bool
|
||||
items: list['Item']
|
||||
Reference in New Issue
Block a user