Adding sequence number for transactions and fixtures as well

This commit is contained in:
2025-02-17 17:36:38 +01:00
parent 4a823b7115
commit cd325154da
6 changed files with 53 additions and 35 deletions

View File

@@ -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")