database

package
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2025 License: AGPL-3.0, AGPL-3.0-or-later Imports: 9 Imported by: 0

Documentation

Overview

SPDX-License-Identifier: AGPL-3.0-or-later

SPDX-License-Identifier: AGPL-3.0-or-later

SPDX-License-Identifier: AGPL-3.0-or-later

SPDX-License-Identifier: AGPL-3.0-or-later

SPDX-License-Identifier: AGPL-3.0-or-later

SPDX-License-Identifier: AGPL-3.0-or-later

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitDB

func InitDB(ctx context.Context, config Config) (*sql.DB, error)

Types

type AdminRepository

type AdminRepository struct {
	// contains filtered or unexported fields
}

AdminRepository provides read-only access for admin operations

func NewAdminRepository

func NewAdminRepository(db *sql.DB) *AdminRepository

func (*AdminRepository) Close

func (r *AdminRepository) Close() error

Close closes the database connection

func (*AdminRepository) ListDocumentsWithCounts

func (r *AdminRepository) ListDocumentsWithCounts(ctx context.Context) ([]DocumentAgg, error)

ListDocumentsWithCounts returns all documents with their signature counts

func (*AdminRepository) ListSignaturesByDoc

func (r *AdminRepository) ListSignaturesByDoc(ctx context.Context, docID string) ([]*models.Signature, error)

ListSignaturesByDoc returns all signatures for a specific document

func (*AdminRepository) VerifyDocumentChainIntegrity

func (r *AdminRepository) VerifyDocumentChainIntegrity(ctx context.Context, docID string) (*ChainIntegrityResult, error)

VerifyDocumentChainIntegrity vérifie l'intégrité de la chaîne pour un document donné

type ChainIntegrityResult

type ChainIntegrityResult struct {
	IsValid     bool     `json:"is_valid"`
	TotalSigs   int      `json:"total_signatures"`
	ValidSigs   int      `json:"valid_signatures"`
	InvalidSigs int      `json:"invalid_signatures"`
	Errors      []string `json:"errors,omitempty"`
	DocID       string   `json:"doc_id"`
}

ChainIntegrityResult contient le résultat de la vérification d'intégrité

type Config

type Config struct {
	DSN string
}

type DocumentAgg

type DocumentAgg struct {
	DocID           string `json:"doc_id"`
	Count           int    `json:"count"`            // Total signatures
	ExpectedCount   int    `json:"expected_count"`   // Nombre de signataires attendus
	SignedCount     int    `json:"signed_count"`     // Signatures attendues signées
	UnexpectedCount int    `json:"unexpected_count"` // Signatures non attendues
}

type DocumentRepository added in v1.1.3

type DocumentRepository struct {
	// contains filtered or unexported fields
}

DocumentRepository handles document metadata persistence

func NewDocumentRepository added in v1.1.3

func NewDocumentRepository(db *sql.DB) *DocumentRepository

NewDocumentRepository creates a new DocumentRepository

func (*DocumentRepository) Create added in v1.1.3

func (r *DocumentRepository) Create(ctx context.Context, docID string, input models.DocumentInput, createdBy string) (*models.Document, error)

Create creates a new document metadata entry

func (*DocumentRepository) CreateOrUpdate added in v1.1.3

func (r *DocumentRepository) CreateOrUpdate(ctx context.Context, docID string, input models.DocumentInput, createdBy string) (*models.Document, error)

CreateOrUpdate creates or updates document metadata

func (*DocumentRepository) Delete added in v1.1.3

func (r *DocumentRepository) Delete(ctx context.Context, docID string) error

Delete deletes document metadata

func (*DocumentRepository) GetByDocID added in v1.1.3

func (r *DocumentRepository) GetByDocID(ctx context.Context, docID string) (*models.Document, error)

GetByDocID retrieves document metadata by document ID

func (*DocumentRepository) List added in v1.1.3

func (r *DocumentRepository) List(ctx context.Context, limit, offset int) ([]*models.Document, error)

List retrieves all documents with pagination

func (*DocumentRepository) Update added in v1.1.3

Update updates document metadata

type ExpectedSignerRepository added in v1.1.3

type ExpectedSignerRepository struct {
	// contains filtered or unexported fields
}

ExpectedSignerRepository handles database operations for expected signers

func NewExpectedSignerRepository added in v1.1.3

func NewExpectedSignerRepository(db *sql.DB) *ExpectedSignerRepository

NewExpectedSignerRepository creates a new expected signer repository

func (*ExpectedSignerRepository) AddExpected added in v1.1.3

func (r *ExpectedSignerRepository) AddExpected(ctx context.Context, docID string, contacts []models.ContactInfo, addedBy string) error

AddExpected adds multiple expected signers for a document (batch insert with conflict handling)

func (*ExpectedSignerRepository) GetStats added in v1.1.3

GetStats returns completion statistics for a document

func (*ExpectedSignerRepository) IsExpected added in v1.1.3

func (r *ExpectedSignerRepository) IsExpected(ctx context.Context, docID, email string) (bool, error)

IsExpected checks if an email is expected for a document

func (*ExpectedSignerRepository) ListByDocID added in v1.1.3

func (r *ExpectedSignerRepository) ListByDocID(ctx context.Context, docID string) ([]*models.ExpectedSigner, error)

ListByDocID returns all expected signers for a document

func (*ExpectedSignerRepository) ListWithStatusByDocID added in v1.1.3

func (r *ExpectedSignerRepository) ListWithStatusByDocID(ctx context.Context, docID string) ([]*models.ExpectedSignerWithStatus, error)

ListWithStatusByDocID returns expected signers with their signature status

func (*ExpectedSignerRepository) Remove added in v1.1.3

func (r *ExpectedSignerRepository) Remove(ctx context.Context, docID, email string) error

Remove removes an expected signer from a document

func (*ExpectedSignerRepository) RemoveAllForDoc added in v1.1.3

func (r *ExpectedSignerRepository) RemoveAllForDoc(ctx context.Context, docID string) error

RemoveAllForDoc removes all expected signers for a document

type ReminderRepository added in v1.1.3

type ReminderRepository struct {
	// contains filtered or unexported fields
}

ReminderRepository handles database operations for reminder logs

func NewReminderRepository added in v1.1.3

func NewReminderRepository(db *sql.DB) *ReminderRepository

NewReminderRepository creates a new reminder repository

func (*ReminderRepository) GetLastReminderByEmail added in v1.1.3

func (r *ReminderRepository) GetLastReminderByEmail(ctx context.Context, docID, email string) (*models.ReminderLog, error)

GetLastReminderByEmail returns the last reminder sent to an email for a document

func (*ReminderRepository) GetReminderCount added in v1.1.3

func (r *ReminderRepository) GetReminderCount(ctx context.Context, docID, email string) (int, error)

GetReminderCount returns the count of successfully sent reminders for an email

func (*ReminderRepository) GetReminderHistory added in v1.1.3

func (r *ReminderRepository) GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)

GetReminderHistory returns all reminder logs for a document

func (*ReminderRepository) GetReminderStats added in v1.1.3

func (r *ReminderRepository) GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)

GetReminderStats returns reminder statistics for a document

func (*ReminderRepository) LogReminder added in v1.1.3

func (r *ReminderRepository) LogReminder(ctx context.Context, log *models.ReminderLog) error

LogReminder logs a reminder email attempt

type SignatureRepository

type SignatureRepository struct {
	// contains filtered or unexported fields
}

func NewSignatureRepository

func NewSignatureRepository(db *sql.DB) *SignatureRepository

func (*SignatureRepository) CheckUserSignatureStatus

func (r *SignatureRepository) CheckUserSignatureStatus(ctx context.Context, docID, userIdentifier string) (bool, error)

func (*SignatureRepository) Create

func (r *SignatureRepository) Create(ctx context.Context, signature *models.Signature) error

func (*SignatureRepository) ExistsByDocAndUser

func (r *SignatureRepository) ExistsByDocAndUser(ctx context.Context, docID, userSub string) (bool, error)

func (*SignatureRepository) GetAllSignaturesOrdered

func (r *SignatureRepository) GetAllSignaturesOrdered(ctx context.Context) ([]*models.Signature, error)

func (*SignatureRepository) GetByDoc

func (r *SignatureRepository) GetByDoc(ctx context.Context, docID string) ([]*models.Signature, error)

func (*SignatureRepository) GetByDocAndUser

func (r *SignatureRepository) GetByDocAndUser(ctx context.Context, docID, userSub string) (*models.Signature, error)

func (*SignatureRepository) GetByUser

func (r *SignatureRepository) GetByUser(ctx context.Context, userSub string) ([]*models.Signature, error)

func (*SignatureRepository) GetLastSignature

func (r *SignatureRepository) GetLastSignature(ctx context.Context, docID string) (*models.Signature, error)

func (*SignatureRepository) UpdatePrevHash

func (r *SignatureRepository) UpdatePrevHash(ctx context.Context, id int64, prevHash *string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL