repository

package
v0.0.0-...-711557a Latest Latest
Warning

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

Go to latest
Published: Dec 31, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotFound is returned when a requested record is not found
	ErrNotFound = errors.New("record not found")

	// ErrDuplicateKey is returned when trying to insert a record with a duplicate unique key
	ErrDuplicateKey = errors.New("duplicate key value")

	// ErrInvalidInput is returned when the input data is invalid
	ErrInvalidInput = errors.New("invalid input")

	// ErrForeignKeyViolation is returned when a foreign key constraint is violated
	ErrForeignKeyViolation = errors.New("foreign key violation")
)

Functions

This section is empty.

Types

type ApplicationRepository

type ApplicationRepository interface {
	Create(ctx context.Context, app *models.Application) (*models.Application, error)
	GetByID(ctx context.Context, id uuid.UUID) (*models.Application, error)
	GetByAPIKey(ctx context.Context, apiKey string) (*models.Application, error)
	List(ctx context.Context) ([]models.Application, error)
	Update(ctx context.Context, app *models.Application) (*models.Application, error)
	Delete(ctx context.Context, id uuid.UUID) error
}

ApplicationRepository handles database operations for applications

type ClientFilters

type ClientFilters struct {
	ApplicationID uuid.UUID
	IsActive      *bool
	Search        string
}

ClientFilters defines the available filters for listing clients

type ClientRepository

type ClientRepository interface {
	Create(ctx context.Context, client *models.Client) (*models.Client, error)
	GetByID(ctx context.Context, applicationID, id uuid.UUID) (*models.Client, error)
	List(ctx context.Context, filters ClientFilters) ([]models.Client, error)
	Update(ctx context.Context, client *models.Client) (*models.Client, error)
	Delete(ctx context.Context, applicationID, id uuid.UUID) error
	ExistsByEmail(ctx context.Context, applicationID uuid.UUID, email string) (bool, error)
}

ClientRepository handles database operations for clients

type LicenseFilters

type LicenseFilters struct {
	ApplicationID uuid.UUID
	ClientID      *uuid.UUID
	IsActive      *bool
	IsRevoked     *bool
}

LicenseFilters defines the available filters for listing licenses

type LicenseRepository

type LicenseRepository interface {
	Create(ctx context.Context, license *models.License) (*models.License, error)
	GetByID(ctx context.Context, id uuid.UUID) (*models.License, error)
	GetByKey(ctx context.Context, licenseKey string) (*models.License, error)
	List(ctx context.Context, filters LicenseFilters) ([]models.License, error)
	Update(ctx context.Context, license *models.License) (*models.License, error)
	Delete(ctx context.Context, id uuid.UUID) error
	CreateActivity(ctx context.Context, activity *models.LicenseActivity) error
	GetActivities(ctx context.Context, licenseID uuid.UUID) ([]models.LicenseActivity, error)
	HasActiveClientLicenses(ctx context.Context, applicationID, clientID uuid.UUID) (bool, error)
}

LicenseRepository handles database operations for licenses

type LicenseTypeRepository

type LicenseTypeRepository interface {
	Create(ctx context.Context, licenseType *models.LicenseType) (*models.LicenseType, error)
	GetByID(ctx context.Context, id uuid.UUID) (*models.LicenseType, error)
	List(ctx context.Context, applicationID uuid.UUID) ([]models.LicenseType, error)
	Update(ctx context.Context, licenseType *models.LicenseType) (*models.LicenseType, error)
	Delete(ctx context.Context, id uuid.UUID) error
}

LicenseTypeRepository handles database operations for license types

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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