Data Layer medium complexity backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Manages persistence and retrieval of certificate records in the database, serving as the single data access layer for certificate entities. Handles CRUD operations for certificate metadata, status transitions, and expiry tracking. Provides query methods used by both the service layer and summary generation pipelines.

Feature: Digital Peer Mentor Certificate

certificate-repository

Sources & reasoning

Line 114 specifies 'digitale sertifikater' as part of HLF's certification requirement; line 80 ties certificate status to automatic removal from public listings, establishing the digital record as the authoritative status source. Line 361 confirms 'Digitalt likepersonsbevis' in the Phase 3 roadmap, mapping to v1.1 by ordinal position.

  • docs/source/likeperson.md · line 114
    Kursadministrasjon og sertifisering: Påmelding til kurs i appen, automatisk påminnelse ved utløp, digitale sertifikater. Det fysiske kortet er et «adelsmerke» og skal leve parallelt.
  • docs/source/likeperson.md · line 80
    HLF kobler dette til sertifisering: ved utgått sertifikat forsvinner likepersonen fra lokallagets nettsider automatisk.
  • docs/source/likeperson.md · line 361
    Digitalt likepersonsbevis

Responsibilities

  • Create and persist new certificate records upon issuance
  • Retrieve a mentor's current certificate by mentor ID
  • Update certificate status fields for transitions such as active, expired, suspended, or renewed
  • Query certificates approaching expiry for batch reminder scheduling
  • Delete or archive revoked certificate records

Interfaces

create(certificate: CertificateInput): Certificate
findByMentorId(mentorId: string): Certificate | null
updateStatus(certificateId: string, status: CertificateStatus): Certificate
findExpiringSoon(windowDays: number): Certificate[]
archive(certificateId: string): void