From fed007ff89c39ac1e5a87e8134861771fa03a34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Murta?= Date: Sat, 10 Dec 2022 00:20:41 +0000 Subject: [PATCH] Changes recurring categories boolean to int to indicate the number of expected transactions per time period. --- ...7ef9c_amount_of_transactions_per_period.py | 38 +++++++++++++++++++ pfbudget/db/model.py | 8 +--- 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 alembic/versions/83603bb7ef9c_amount_of_transactions_per_period.py diff --git a/alembic/versions/83603bb7ef9c_amount_of_transactions_per_period.py b/alembic/versions/83603bb7ef9c_amount_of_transactions_per_period.py new file mode 100644 index 0000000..887b452 --- /dev/null +++ b/alembic/versions/83603bb7ef9c_amount_of_transactions_per_period.py @@ -0,0 +1,38 @@ +"""Amount of transaction per period + +Revision ID: 83603bb7ef9c +Revises: 8b5d5fbc8211 +Create Date: 2022-12-09 23:12:15.644758+00:00 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "83603bb7ef9c" +down_revision = "8b5d5fbc8211" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column( + "categories_schedules", + sa.Column("amount", sa.Integer(), nullable=True), + schema="transactions", + ) + op.drop_column("categories_schedules", "recurring", schema="transactions") + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column( + "categories_schedules", + sa.Column("recurring", sa.BOOLEAN(), autoincrement=False, nullable=False), + schema="transactions", + ) + op.drop_column("categories_schedules", "amount", schema="transactions") + # ### end Alembic commands ### diff --git a/pfbudget/db/model.py b/pfbudget/db/model.py index be0c5dc..3eab450 100644 --- a/pfbudget/db/model.py +++ b/pfbudget/db/model.py @@ -231,15 +231,11 @@ class CategorySchedule(Base): __tablename__ = "categories_schedules" name: Mapped[catfk] = mapped_column(primary_key=True) - recurring: Mapped[bool] period: Mapped[Optional[scheduleperiod]] period_multiplier: Mapped[Optional[int]] + amount: Mapped[Optional[int]] category: Mapped[Category] = relationship(back_populates="schedule") def __repr__(self) -> str: - return ( - f"{self.name} schedule=Schedule(period={self.period}, multiplier={self.period_multiplier})" - if self.recurring - else f"{self.name} has no Schedule" - ) + return f"{self.name} schedule=Schedule(period={self.period}, multiplier={self.period_multiplier}, amount={self.amount})"