repositories

package
v0.0.0-...-3ee0207 Latest Latest
Warning

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

Go to latest
Published: May 10, 2024 License: GPL-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Fan

type Fan []int

func (*Fan) Scan

func (f *Fan) Scan(value interface{}) error

============== Scan/Values for Fan and Temp ==============

func (Fan) Value

func (f Fan) Value() (driver.Value, error)

type Miner

type Miner struct {
	gorm.Model
	Miner  miner_domain.Miner  `gorm:"embedded"`
	Stats  miner_domain.Stats  `gorm:"embedded"`
	Config miner_domain.Config `gorm:"embedded"`

	MinerType scanner_domain.MinerType
	ModelName string `gorm:"comment: i.e. Antminer s19"`

	Mode   miner_domain.Mode   `gorm:"comment: Mode: 0=Normal, 1=Sleep, 2=LowPower"`
	Status miner_domain.Status `gorm:"comment: Status: 0=Online, 1=Offline, 2=Disabled, 3=Error, 4=Warning"`

	Pools       []Pool      `gorm:"onDelete:CASCADE; onUpdate:CASCADE"`
	Fan         Fan         `gorm:"type:VARCHAR(255)"`
	Temperature Temperature `gorm:"type:VARCHAR(255)"`
	Log         []MinerLog

	FleetID uint
}

type MinerLog

type MinerLog struct {
	gorm.Model
	Log       miner_domain.Log       `gorm:"embedded;"`
	EventType miner_domain.EventType `gorm:"comment: EventType: 0=Operational, 1=SystemIssue, 2=UserActivity"`
	MinerID   uint
}

type MinerRepository

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

func NewMinerRepository

func NewMinerRepository(db *gorm.DB) *MinerRepository

func (*MinerRepository) List

func (r *MinerRepository) List() ([]*Miner, error)

func (*MinerRepository) ListByFleetID

func (r *MinerRepository) ListByFleetID(ctx context.Context, miner *Miner) ([]*Miner, error)

[ ] JOIN with miner config

Struct db.Find(&users, User{Age: 20})
SELECT * FROM users WHERE age = 20;

func (*MinerRepository) ListByMacAddresses

func (r *MinerRepository) ListByMacAddresses(mac_addresses []string) ([]*Miner, error)

func (*MinerRepository) Upsert

func (r *MinerRepository) Upsert(ctx context.Context, miner *Miner) (uint, error)

type MinerTimeSeries

type MinerTimeSeries struct {
	MacAddress string `json:"mac_address"`
	HashRate   int    `json:"hashrate"`
	TempSensor []int  `json:"temp_sensor"` // Assuming a maximum of 10 temperature sensors
	FanSensor  []int  `json:"fan_sensor"`  // Assuming a maximum of 10 fan sensors
}

type MinerTimeSeriesRepository

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

func (*MinerTimeSeriesRepository) FlushMinerData

func (r *MinerTimeSeriesRepository) FlushMinerData() error

func (*MinerTimeSeriesRepository) FlushPoolData

func (r *MinerTimeSeriesRepository) FlushPoolData() error

func (*MinerTimeSeriesRepository) ReadMinerData

func (r *MinerTimeSeriesRepository) ReadMinerData(mac_address string, interval int) (MinerTimeSeriesResponse, error)

NOTE: mac_address is null in the response object

func (*MinerTimeSeriesRepository) ReadPoolData

func (r *MinerTimeSeriesRepository) ReadPoolData(mac_address string, interval int) (PoolTimeSeriesResponse, error)

func (*MinerTimeSeriesRepository) WriteMinerData

func (r *MinerTimeSeriesRepository) WriteMinerData(mac_address string, data MinerTimeSeries) error

func (*MinerTimeSeriesRepository) WritePoolData

func (r *MinerTimeSeriesRepository) WritePoolData(mac_address string, data PoolTimeSeries) error

type MinerTimeSeriesResponse

type MinerTimeSeriesResponse struct {
	Record     []MinerTimeSeries `json:"miner_time_series_record"`
	TimeStamps []time.Time       `json:"timestamp"`
}

type Pool

type Pool struct {
	gorm.Model
	Pool    miner_domain.Pool `gorm:"embedded;"`
	MinerID uint
}

type PoolTimeSeries

type PoolTimeSeries struct {
	MacAddress string `json:"mac_address"`
	Accepted   int    `json:"accepted"`
	Rejected   int    `json:"rejected"`
	Stale      int    `json:"stale"`
}

type PoolTimeSeriesResponse

type PoolTimeSeriesResponse struct {
	Record     []PoolTimeSeries `json:"pool_time_series_record"`
	TimeStamps []time.Time      `json:"timestamps"`
}

type Temperature

type Temperature []int

func (*Temperature) Scan

func (t *Temperature) Scan(value interface{}) error

func (Temperature) Value

func (t Temperature) Value() (driver.Value, error)

Jump to

Keyboard shortcuts

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