Files
CoPay/backend/app/models/item.py
T
2024-11-17 02:31:42 +03:00

41 lines
933 B
Python

from uuid import UUID
from uuid import uuid4
from sqlmodel import Field
from sqlmodel import Relationship
from sqlmodel import SQLModel
from app.models.user import User
from .links import ItemUserLink
class Item(SQLModel, table=True):
id: UUID = Field(primary_key=True, default_factory=uuid4)
title: str = Field(nullable=False)
price: float = Field(nullable=False)
assigned_to: list['User'] = Relationship(
back_populates='items', link_model=ItemUserLink
)
transaction_id: UUID = Field(foreign_key='transaction.id')
transaction: 'Transaction' = Relationship(back_populates='items')
def assign_user(self, user: User):
self.assigned_to.append(user)
class OutputItem(SQLModel):
id: UUID
title: str
price: float
assigned_to: list['User']
transaction_id: UUID
class ItemRequest(SQLModel):
title: str
price: float
all_users_selected: bool = False