Skip to content

odense-rpa/sbf-database

Repository files navigation

SBF Database

Simpelt delt bibliotek til håndtering af barn_synkronisering tabel.

Installation

uv sync

Tests

Kør tests med pytest:

uv run pytest

Tests bruger en midlertidig PostgreSQL Docker container der automatisk startes og stoppes.

Brug

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()

Tabel Skema

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_information
  • nexus_sidst_synkroniseret, nexus_slettet
  • momentum_sidst_synkroniseret, momentum_slettet, momentum_nuvaerende_kontaktpersoner
  • dubu_sidst_synkroniseret, dubu_slettet
  • status (enum: sync, skal_slettes, slettet)

About

No description or website provided.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages