diff --git a/alembic/versions/830416cab29c_timestamps_as_deletion_indicator.py b/alembic/versions/830416cab29c_timestamps_as_deletion_indicator.py new file mode 100644 index 0000000..72acc16 --- /dev/null +++ b/alembic/versions/830416cab29c_timestamps_as_deletion_indicator.py @@ -0,0 +1,41 @@ +"""timestamps as deletion indicator + +Revision ID: 830416cab29c +Revises: c285b0606094 +Create Date: 2026-07-11 06:12:14.423902 + +""" + +from typing import Sequence, Union + +import sqlalchemy as sa +from alembic import op + +import wce_crm.db + +# revision identifiers, used by Alembic. +revision: str = "830416cab29c" +down_revision: Union[str, Sequence[str], None] = "c285b0606094" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.add_column( + "beratung_einzelberatung", + sa.Column("geloescht", wce_crm.db.UTCDateTime(), nullable=True), + ) + op.add_column( + "beratung_vorgang", sa.Column("geloescht", wce_crm.db.UTCDateTime(), nullable=True) + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column("beratung_vorgang", "geloescht") + op.drop_column("beratung_einzelberatung", "geloescht") + # ### end Alembic commands ### diff --git a/data_model/project_db_schema.aml b/data_model/project_db_schema.aml index 465b1cc..159ebf4 100644 --- a/data_model/project_db_schema.aml +++ b/data_model/project_db_schema.aml @@ -87,6 +87,7 @@ Beratung_Vorgang | Beratung kann an Unternehmen allein (pauschal), Person allein beratungs_typ berat_typ(pauschal, individual) erstellt "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)` aktualisiert "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)` {on_update: `datetime.datetime.now(datetime.UTC)`} + geloescht "timestamp with time zone" nullable # temporaer bool | Gibt an, ob der Vorgang losgelöst von der Grunderfassung gestartet wurde (Daten müssen nachträglich zugeordnet werden); theoretisch auch erfüllt, wenn `un_id` und `pers_id` beide NULL sind @@ -103,4 +104,4 @@ Beratung_Einzelberatung | Änderungen müssen über einen DB-Trigger an Elternta thema_crm_matrix text nullable | Verlinkung ins CRM, genaue Gestaltung noch unklar anmerkungen text nullable rueckmeldung txt nullable - + geloescht "timestamp with time zone" nullable diff --git a/src/wce_crm/db.py b/src/wce_crm/db.py index 25f9129..60df268 100644 --- a/src/wce_crm/db.py +++ b/src/wce_crm/db.py @@ -402,6 +402,11 @@ beratung_vorgang: sql.Table = Table( default=lambda: datetime.datetime.now(datetime.UTC), onupdate=lambda: datetime.datetime.now(datetime.UTC), ), + Column( + "geloescht", + UTCDateTime, + nullable=True, + ), ) @@ -441,4 +446,9 @@ beratung_einzelberatung: sql.Table = Table( default=lambda: datetime.datetime.now(datetime.UTC), onupdate=lambda: datetime.datetime.now(datetime.UTC), ), + Column( + "geloescht", + UTCDateTime, + nullable=True, + ), )