datastore

package
v1.63.0 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultPoolName = "__default__pool_name__"

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseRepository added in v1.63.0

type BaseRepository[T any] interface {
	Svc() pool.Pool
	GetByID(ctx context.Context, id string) (T, error)
	GetLastestBy(ctx context.Context, properties map[string]any) (T, error)
	GetAllBy(ctx context.Context, properties map[string]any, offset, limit int) ([]T, error)
	Search(ctx context.Context, query *data.SearchQuery) (workerpool.JobResultPipe[[]T], error)
	Count(ctx context.Context) (int64, error)
	Save(ctx context.Context, entity T) error
	Delete(ctx context.Context, id string) error
}

BaseRepository provides generic CRUD operations for any model type. T is the model type (e.g., *models.Room).

func NewBaseRepository added in v1.63.0

func NewBaseRepository[T data.BaseModelI](
	dbPool pool.Pool,
	workMan workerpool.Manager,
	modelFactory func() T,
) BaseRepository[T]

NewBaseRepository creates a new base repository instance. modelFactory should return a pointer to a new model instance (e.g., func() *models.Room { return &models.Room{} }).

type JSONMap added in v1.63.0

type JSONMap map[string]any

JSONMap is a GORM-compatible map[string]any that stores JSONB/JSON in a DB.

func (*JSONMap) Copy added in v1.63.0

func (m *JSONMap) Copy() JSONMap

Copy returns a deep copy of the JSONMap. Nested maps and slices are recursively copied so that the returned JSONMap can be modified without affecting the original.

func (*JSONMap) FromProtoStruct added in v1.63.0

func (m *JSONMap) FromProtoStruct(s *structpb.Struct) JSONMap

FromProtoStruct populates the JSONMap with data from a protocol buffer Struct. If the receiver is nil, a new JSONMap will be created and returned. If the input struct is nil, the receiver is returned unchanged. Returns the receiver (or a new JSONMap if receiver was nil) for method chaining.

func (*JSONMap) GetFloat added in v1.63.0

func (m *JSONMap) GetFloat(key string) float64

GetFloat retrieves a string value from the JSONMap by key. It returns the string and a boolean indicating if the value was found and is a string.

func (*JSONMap) GetString added in v1.63.0

func (m *JSONMap) GetString(key string) string

GetString retrieves a string value from the JSONMap by key. It returns the string and a boolean indicating if the value was found and is a string.

func (*JSONMap) GormDBDataType added in v1.63.0

func (m *JSONMap) GormDBDataType(db *gorm.DB, _ *schema.Field) string

GormDBDataType returns the dialect-specific database column type.

func (*JSONMap) GormDataType added in v1.63.0

func (m *JSONMap) GormDataType() string

GormDataType returns the common GORM data type.

func (*JSONMap) GormValue added in v1.63.0

func (m *JSONMap) GormValue(_ context.Context, db *gorm.DB) clause.Expr

GormValue optimizes how values are rendered in SQL for specific dialects.

func (*JSONMap) MarshalJSON added in v1.63.0

func (m *JSONMap) MarshalJSON() ([]byte, error)

MarshalJSON customizes the JSON encoding.

func (*JSONMap) Scan added in v1.63.0

func (m *JSONMap) Scan(value any) error

Scan implements the sql.Scanner interface for database deserialization.

func (*JSONMap) ToProtoStruct added in v1.63.0

func (m *JSONMap) ToProtoStruct() *structpb.Struct

ToProtoStruct converts a JSONMap into a structpb.Struct safely and efficiently.

func (*JSONMap) UnmarshalJSON added in v1.63.0

func (m *JSONMap) UnmarshalJSON(data []byte) error

UnmarshalJSON deserializes JSON into the map.

func (*JSONMap) Update added in v1.63.0

func (m *JSONMap) Update(update JSONMap) JSONMap

Update merges all key-value pairs from update into the receiver. If the receiver is nil, a new JSONMap is created. Keys in update overwrite existing keys in the receiver.

func (*JSONMap) Value added in v1.63.0

func (m *JSONMap) Value() (driver.Value, error)

Value implements the driver.Valuer interface for database serialization.

type Manager added in v1.63.0

type Manager interface {
	AddPool(ctx context.Context, reference string, store pool.Pool)
	RemovePool(ctx context.Context, reference string)
	GetPool(ctx context.Context, reference string) pool.Pool
	Close(ctx context.Context)

	SaveMigration(ctx context.Context, pool pool.Pool, migrationPatches ...*migration.Patch) error
	// Migrate finds missing migrations and records them in the database.
	Migrate(ctx context.Context, pool pool.Pool, migrationsDirPath string, migrations ...any) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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