some refactoring

This commit is contained in:
2026-10-16 15:27:41 +02:00
parent 696823406e
commit ef1a65adeb
13 changed files with 49 additions and 43 deletions
+8 -3
View File
@@ -1,8 +1,8 @@
from pydantic import Field, computed_field
from sqlalchemy import ForeignKey, String, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
from src.models._common import BaseModelDb, ExportBaseModel, _hash
from src.models.common import BaseModelDb, ExportBaseModel, hashify
class Category(ExportBaseModel):
@@ -12,7 +12,7 @@ class Category(ExportBaseModel):
@computed_field # type: ignore[prop-decorator]
@property
def hash_id(self) -> str:
return _hash(self.name, self.parent)
return hashify(self.name, self.parent)
@classmethod
def from_str(cls, s: str) -> Category | None:
@@ -54,3 +54,8 @@ class CategoryDb(BaseModelDb):
)
children = relationship("CategoryDb", back_populates="parent")
budgets = relationship("CategoryBudgetDb", back_populates="category")
def add_category(session: Session, category_name: str):
category = Category.from_str(category_name)
session.add(category)