Adding sequence number for transactions and fixtures as well
This commit is contained in:
@@ -3,7 +3,7 @@ from decimal import Decimal
|
||||
from typing import Optional
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from sqlmodel import Field, SQLModel, select, Relationship
|
||||
from sqlmodel import Field, SQLModel, Relationship
|
||||
from pydantic import Field as PydField
|
||||
|
||||
from account.models import Account
|
||||
@@ -20,36 +20,7 @@ class TransactionBaseId(TransactionBase):
|
||||
|
||||
class Transaction(TransactionBaseId, table=True):
|
||||
splits: list["Split"] = Relationship(back_populates="transaction")
|
||||
|
||||
@classmethod
|
||||
def create(cls, transaction, session):
|
||||
transaction_db = cls.model_validate(transaction)
|
||||
session.add(transaction_db)
|
||||
session.commit()
|
||||
session.refresh(transaction_db)
|
||||
|
||||
return transaction_db
|
||||
|
||||
@classmethod
|
||||
def list(cls):
|
||||
return select(Transaction).join(Split).join(Account)
|
||||
|
||||
@classmethod
|
||||
def get(cls, session, transaction_id):
|
||||
return session.get(Transaction, transaction_id)
|
||||
|
||||
@classmethod
|
||||
def update(cls, session, transaction_db, transaction_data):
|
||||
transaction_db.sqlmodel_update(cls.model_validate(transaction_data))
|
||||
session.add(transaction_db)
|
||||
session.commit()
|
||||
session.refresh(transaction_db)
|
||||
return transaction_db
|
||||
|
||||
@classmethod
|
||||
def delete(cls, session, transaction):
|
||||
session.delete(transaction)
|
||||
session.commit()
|
||||
sequence: Optional[int] = Field(default=None)
|
||||
|
||||
class SplitBase(SQLModel):
|
||||
account_id: UUID = Field(foreign_key="account.id")
|
||||
|
||||
Reference in New Issue
Block a user