database

package
v0.0.0-...-2defda7 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2025 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRouteRepository

func NewRouteRepository(db *gorm.DB, logger *zap.Logger) repository.RouteRepository

NewRouteRepository cria um novo repositório de rotas

Types

type Config

type Config struct {
	Driver          string
	DSN             string
	MaxIdleConns    int
	MaxOpenConns    int
	ConnMaxLifetime time.Duration
	LogLevel        logger.LogLevel
	SlowThreshold   time.Duration
	MigrationDir    string
	SkipMigrations  bool
}

Config contém configurações para o banco de dados

type Database

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

Database gerencia a conexão com o banco de dados

func NewDatabase

func NewDatabase(ctx context.Context, config Config, zapLogger *zap.Logger) (*Database, error)

NewDatabase cria uma nova instância do banco de dados

func (*Database) Close

func (d *Database) Close() error

Close fecha a conexão com o banco de dados

func (*Database) CreateMigration

func (d *Database) CreateMigration(name string) (string, error)

CreateMigration cria um novo arquivo de migração

func (*Database) DB

func (d *Database) DB() *gorm.DB

DB retorna a instância do GORM DB

func (*Database) Ping

func (d *Database) Ping(ctx context.Context) error

Ping verifica a conexão com o banco de dados

type GormLogAdapter

type GormLogAdapter struct {
	ZapLogger *zap.Logger
}

GormLogAdapter adapta o zap.Logger para uso com GORM

func (GormLogAdapter) Printf

func (l GormLogAdapter) Printf(format string, args ...interface{})

Printf implementa a interface de Logger do GORM

type JSONRouteLoader

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

JSONRouteLoader carrega rotas de um arquivo JSON

func NewJSONRouteLoader

func NewJSONRouteLoader(db *Database, logger *zap.Logger) *JSONRouteLoader

NewJSONRouteLoader cria um novo carregador de rotas JSON

func (*JSONRouteLoader) LoadRoutesFromJSON

func (l *JSONRouteLoader) LoadRoutesFromJSON(filePath string) error

LoadRoutesFromJSON carrega rotas de um arquivo JSON para o banco de dados

type Migration

type Migration struct {
	ID        uint  `gorm:"primaryKey"`
	Version   int64 `gorm:"uniqueIndex"`
	Name      string
	AppliedAt time.Time
}

Migration representa uma migração de banco de dados

type MigrationFile

type MigrationFile struct {
	Version int64
	Name    string
	Path    string
}

MigrationFile representa um arquivo de migração

type MigrationManager

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

MigrationManager gerencia migrações de banco de dados

func NewMigrationManager

func NewMigrationManager(db *gorm.DB, logger *zap.Logger, directory string) *MigrationManager

NewMigrationManager cria um novo gerenciador de migrações

func (*MigrationManager) ApplyMigrations

func (m *MigrationManager) ApplyMigrations(ctx context.Context) error

ApplyMigrations aplica todas as migrações pendentes

func (*MigrationManager) CreateMigration

func (m *MigrationManager) CreateMigration(name string) (string, error)

CreateMigration cria um novo arquivo de migração

func (*MigrationManager) Initialize

func (m *MigrationManager) Initialize(ctx context.Context) error

Initialize inicializa a tabela de migrações

type RouteRepository

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

RouteRepository implementa repository.RouteRepository

func (*RouteRepository) AddRoute

func (r *RouteRepository) AddRoute(ctx context.Context, route *model.Route) error

AddRoute adiciona uma nova rota

func (*RouteRepository) DeleteRoute

func (r *RouteRepository) DeleteRoute(ctx context.Context, path string) error

DeleteRoute remove uma rota pelo caminho

func (*RouteRepository) GetRouteByPath

func (r *RouteRepository) GetRouteByPath(ctx context.Context, path string) (*model.Route, error)

GetRouteByPath obtém uma rota específica pelo caminho

func (*RouteRepository) GetRoutes

func (r *RouteRepository) GetRoutes(ctx context.Context) ([]*model.Route, error)

GetRoutes retorna todas as rotas ativas

func (*RouteRepository) GetRoutesWithFilters

func (r *RouteRepository) GetRoutesWithFilters(ctx context.Context, filters map[string]interface{}) ([]*model.Route, error)

GetRoutesWithFilters obtém rotas com filtros aplicados

func (*RouteRepository) UpdateMetrics

func (r *RouteRepository) UpdateMetrics(ctx context.Context, path string, callCount int64, totalResponseTime int64) error

UpdateMetrics atualiza as métricas de uma rota

func (*RouteRepository) UpdateRoute

func (r *RouteRepository) UpdateRoute(ctx context.Context, route *model.Route) error

UpdateRoute atualiza uma rota existente

type UserRepository

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

func NewUserRepository

func NewUserRepository(db *gorm.DB) *UserRepository

func (*UserRepository) DiagnoseUserStorage

func (r *UserRepository) DiagnoseUserStorage(username string) (string, error)

DiagnoseUserStorage ajuda a diagnosticar problemas com armazenamento de usuários

func (*UserRepository) GetUserByCredentials

func (r *UserRepository) GetUserByCredentials(username, password string) (*model.User, error)

func (*UserRepository) GetUserByID

func (r *UserRepository) GetUserByID(id string) (*model.User, error)

Jump to

Keyboard shortcuts

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