Simpelt delt bibliotek til håndtering af barn_synkronisering tabel.
uv syncKør tests med pytest:
uv run pytestTests bruger en midlertidig PostgreSQL Docker container der automatisk startes og stoppes.
from datetime import datetime
from sbf_database import SBFManager, SynkroniseringsStatus
# Initialiser manager (opretter tabel hvis den ikke eksisterer)
manager = SBFManager("postgresql://user:pass@localhost/database")
# Opret en ny post
record = manager.opret(
barn_cpr="1234567890",
barn_foraelder_cpr="0987654321",
barn_sidst_set=datetime.now(),
barn_sagsbehandler_initialer="ABC",
status=SynkroniseringsStatus.SYNC
)
# Hent post efter ID
record = manager.hent_efter_id(1)
# Hent post efter CPR (barn + forælder)
record = manager.hent_efter_cpr("1234567890", "0987654321")
# Hent alle poster for et barn
records = manager.hent_alle_efter_barn_cpr("1234567890")
# Hent alle poster ældre end X dage
gamle_records = manager.hent_aeldere_end(30) # Ældre end 30 dage
# Opdater post
record.nexus_sidst_synkroniseret = datetime.now()
record.nexus_slettet = False
manager.opdater(record)
# Opdater status
record.status = SynkroniseringsStatus.SKAL_SLETTES
manager.opdater(record)
# Opdater status til SLETTET for poster hvor alle *_slettet felter er True
antal_opdateret = manager.opdater_slettet_status()
print(f"Opdateret {antal_opdateret} poster til SLETTET status")
# Fjern forældede slettede records (standard: ældre end 60 dage)
antal_fjernet = manager.fjern_forældede(60)
print(f"Fjernet {antal_fjernet} forældede poster")
# Avanceret brug med session
with manager.hent_session() as session:
records = session.query(BarnSynkronisering).filter_by(status=SynkroniseringsStatus.SYNC).all()
for record in records:
record.momentum_sidst_synkroniseret = datetime.now()
session.commit()Biblioteket håndterer barn_synkronisering tabellen med følgende kolonner:
id(primary key)barn_cpr,barn_foraelder_cpr(CPR numre)barn_sidst_set,barn_sagsbehandler_initialer,barn_sagsbehandler_informationnexus_sidst_synkroniseret,nexus_slettetmomentum_sidst_synkroniseret,momentum_slettet,momentum_nuvaerende_kontaktpersonerdubu_sidst_synkroniseret,dubu_slettetstatus(enum: sync, skal_slettes, slettet)