types

package module
v0.0.10 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2025 License: MIT Imports: 1 Imported by: 4

Documentation

Index

Constants

View Source
const (
	ConfigServiceName    = "configservice"
	DatabaseServiceName  = "databaseservice"
	LoggingServiceName   = "loggingservice"
	SubSystemServiceName = "subsysservice"
)
View Source
const (
	PostgresServiceName = "postgres"
	SqliteServiceName   = "sqlite"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ADIFBand

type ADIFBand string

type ADIFDate

type ADIFDate struct {
	time.Time
}

type ADIFFreq

type ADIFFreq float64

type ADIFTime

type ADIFTime struct {
	time.Time
}

type AppConfig

type AppConfig struct {
	DatastoreConfig DatastoreConfig `json:"datastore_config"`
	LoggingConfig   LoggingConfig   `json:"logging_config"`
	RequiredConfigs RequiredConfigs `json:"required_configs"`
}

type ContactedStation added in v0.0.6

type ContactedStation struct {
	Address      string `json:"address"`
	Age          string `json:"age"`
	Altitude     string `json:"altitude"`
	Call         string `json:"call"`
	Cont         string `json:"cont"` // the contacted station's Continent
	ContactedOp  string `json:"contacted_op"`
	Country      string `json:"country"`
	CQZ          string `json:"cqz"`
	DXCC         string `json:"dxcc"`
	Email        string `json:"email"`
	EqCall       string `json:"eq_call"` // the contacted station's owner's callsign
	Gridsquare   string `json:"gridsquare"`
	Iota         string `json:"iota"`
	IotaIslandId string `json:"iota_island_id"`
	ITUZ         string `json:"ituz"`
	Lat          string `json:"lat"`
	Lon          string `json:"lon"`
	Name         string `json:"name"`
	QTH          string `json:"qth"`
	Rig          string `json:"rig"`
	Web          string `json:"web"`
	WwffRef      string `json:"wwff_ref"`
}

ContactedStation represents details of the station contacted during a QSO, and is compatible with the ADI format.

type Country added in v0.0.6

type Country struct {
	Name              string `json:"name" hamnut:"countryName"`
	Prefix            string `json:"prefix" hamnut:"prefix"`
	Ccode             string `json:"ccode" hamnut:"countryCode"`
	Continent         string `json:"continent" hamnut:"continent"`
	CQZone            string `json:"cq_zone" hamnut:"cqZone"`
	ITUZone           string `json:"itu_zone" hamnut:"ituZone"`
	DXCC              string `json:"dxcc" hamnut:"primaryDXCCPrefix"`
	TimeOffset        string `json:"time_offset" hamnut:"timeOffset"`
	ShortPathDistance string `json:"short_path_distance"`
	LongPathDistance  string `json:"long_path_distance"`
	ShortPathBearing  string `json:"short_path_bearing"`
	LongPathBearing   string `json:"long_path_bearing"`
	IsNewEntity       bool   `json:"is_new_entity"` // Indicates if this QSO is a new country for the logging station
	RequiresUpdate    bool   `json:"requires_update"`
}

type DatastoreConfig

type DatastoreConfig struct {
	Driver                    string            `json:"driver" validate:"oneof=postgres sqlite"`
	Path                      string            `json:"path" validate:"required_if=Driver sqlite,omitempty"`    // Used for sqlite only
	Options                   map[string]string `json:"options" validate:"required_if=Driver sqlite,omitempty"` // Used for sqlite only
	Host                      string            `json:"host" validate:"required_if=Driver postgres,omitempty,hostname|ip"`
	Port                      int               `json:"port" validate:"required_if=Driver postgres,omitempty,min=1,max=65535"`
	User                      string            `json:"user" validate:"required_if=Driver postgres,omitempty,min=1,max=63,alphanum|contains=_|contains=-"`
	Password                  string            `json:"pass" validate:"required_if=Driver postgres,omitempty,min=1"`
	Database                  string            `json:"database" validate:"required_if=Driver postgres,omitempty,min=1,max=63,alphanum|contains=_|contains=-"`
	SSLMode                   string            `json:"ssl_mode" validate:"required_if=Driver postgres,omitempty,oneof=disable require verify-ca verify-full"`
	MaxOpenConns              int               `json:"max_open_conns" validate:"min=1"`
	MaxIdleConns              int               `json:"max_idle_conns" validate:"min=1"`
	ConnMaxLifetime           int               `json:"conn_max_lifetime" validate:"min=0"`           // Number of minutes
	ConnMaxIdleTime           int               `json:"conn_max_idle_time" validate:"min=0"`          // Number of minutes
	ContextTimeout            int               `json:"context_timeout" validate:"min=5"`             // Seconds
	TransactionContextTimeout int               `json:"transaction_context_timeout" validate:"min=5"` // Seconds
	Debug                     bool              // Enable SQLBoiler query logging
	Params                    map[string]string `json:"params" validate:"omitempty"`
}

type Logbook added in v0.0.7

type Logbook struct {
	ID          int64  `json:"id,omitempty"`
	Name        string `json:"name"`
	Callsign    string `json:"callsign"`
	Description string `json:"description"`
	ApiKey      string `json:"api_key,omitempty"`
}

type LogbookList added in v0.0.7

type LogbookList []Logbook

type LoggingConfig added in v0.0.2

type LoggingConfig struct {
	Level                  string `json:"level" validate:"oneof=trace debug info warn error fatal panic"`
	SkipFrameCount         int    `json:"skip_frame_count" validate:"min=0"`
	WithTimestamp          bool   `json:"with_timestamp"`
	ConsoleLogging         bool   `json:"console_logging"`
	FileLogging            bool   `json:"file_logging"`
	RelLogFileDir          string `json:"rel_log_file_dir" validate:"required"`
	LogFileMaxBackups      int    `json:"log_file_max_backups" validate:"min=0"`
	LogFileMaxAgeDays      int    `json:"log_file_max_age_days" validate:"min=0"`
	LogFileMaxSizeMB       int    `json:"log_file_max_size_mb" validate:"min=1"`
	ShutdownTimeoutMS      int    `json:"shutdown_timeout_ms" validate:"omitempty,min=10,max=10000"` // Timeout for graceful shutdown (10ms-10s, 0=use default)
	ShutdownTimeoutWarning bool   `json:"shutdown_timeout_warning"`                                  // Log warning if the shutdown timeout is exceeded

	// Optional polish fields
	ConsoleNoColor    bool   `json:"console_no_color"`
	ConsoleTimeFormat string `json:"console_time_format"`
	LogFileCompress   bool   `json:"log_file_compress"`
}

type LoggingStation added in v0.0.6

type LoggingStation struct {
	AntennaAzimuth  string `json:"ant_az"` // the bearing from the logging station to the contacted station
	MyAltitude      string `json:"my_altitude"`
	MyAntenna       string `json:"my_antenna"`
	MyCity          string `json:"my_city"`
	MyCountry       string `json:"my_country"`
	MyCqZone        string `json:"my_cq_zone"`
	MyDXCC          string `json:"my_dxcc"`
	MyGridsquare    string `json:"my_gridsquare"`
	MyIota          string `json:"my_iota"`
	MyIotaIslandID  string `json:"my_iota_island_id"`
	MyITUZone       string `json:"my_itu_zone"`
	MyLat           string `json:"my_lat"`
	MyLon           string `json:"my_lon"`
	MyMorseKeyInfo  string `json:"my_morse_key_info"`
	MyMorseKeyType  string `json:"my_morse_key_type"`
	MyName          string `json:"my_name"`
	MyPostalCode    string `json:"my_postal_code"`
	MyRig           string `json:"my_rig"`
	MyStreet        string `json:"my_street"`
	MyWwffRef       string `json:"my_wwff_ref"`
	Operator        string `json:"operator"` // the logging operator's callsign if STATION_CALLSIGN is absent, OPERATOR shall be treated as both the logging station's callsign and the logging operator's callsign
	OwnerCallsign   string `json:"owner_callsign"`
	StationCallsign string `json:"station_callsign"`
}

LoggingStation represents the details of the station logging the QSO, including location, equipment, and operator info. It is compatible with the ADI format.

type Qso added in v0.0.6

type Qso struct {
	ID int64 `json:"id"`

	// LogbookID represents the foreign key to the logbook associated with a QSO entry.
	// Every QSO entry MUST have a logbook associated with it.
	LogbookID int64 `json:"logbook_id"`

	/*
		All the below fields are compatible with the ADI format and are populated by the adapter.
		The only exception to this is the ID field, which is required by database functions.
	*/
	QsoDetails
	ContactedStation
	LoggingStation
}

type QsoDetails added in v0.0.6

type QsoDetails struct {
	AIndex      string `json:"a_index"`
	AntPath     string `json:"ant_path"` // ADIF, section II.B.1 - currently, we only use S and L
	Band        string `json:"band"`
	BandRx      string `json:"band_rx"` //in a split frequency QSO, the logging station's receiving band
	Comment     string `json:"comment"`
	ContestId   string `json:"contest_id"`
	Distance    string `json:"distance"` // km
	Freq        string `json:"freq"`
	FreqRx      string `json:"freq_rx"`
	Mode        string `json:"mode"`
	Submode     string `json:"submode"`
	MySig       string `json:"my_sig"`
	MySigInfo   string `json:"my_sig_info"`
	Notes       string `json:"notes"` // information of interest to the logging station's operator
	QsoDate     string `json:"qso_date"`
	QsoDateOff  string `json:"qso_date_off"`
	QsoRandom   string `json:"qso_random"`
	QsoComplete string `json:"qso_complete"`
	RstRcvd     string `json:"rst_rcvd"`
	RstSent     string `json:"rst_sent"`
	RxPwr       string `json:"rx_pwr"`   // the contacted station's transmitter power in Watts with a value greater than or equal to 0
	Sig         string `json:"sig"`      // the name of the contacted station's special activity or interest group
	SigInfo     string `json:"sig_info"` // information associated with the contacted station's activity or interest group
	SRX         string `json:"srx"`      // contest QSO received serial number with a value greater than or equal to 0
	STX         string `json:"stx"`      // contest QSO transmitted serial number with a value greater than or equal to 0
	TimeOff     string `json:"time_off"`
	TimeOn      string `json:"time_on"`
	TxPwr       string `json:"tx_pwr"` // the logging station's power in Watts with a value greater than or equal to 0
}

QsoDetails represents the details of a QSO, and is compatible with the ADI format.

type RegisterLogbookRequest added in v0.0.10

type RegisterLogbookRequest struct {
	Logbook
}

type RegisterLogbookResponse added in v0.0.10

type RegisterLogbookResponse struct {
	RemoteLogbookID int64      `json:"remote_logbook_id"`
	APIKey          string     `json:"api_key"`
	CreatedAt       time.Time  `json:"created_at"`
	ExpiresAt       *time.Time `json:"expires_at"`
}

type RequiredConfigs added in v0.0.4

type RequiredConfigs struct {
}

Jump to

Keyboard shortcuts

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