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 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 sqlite3 only
Options string `json:"options" validate:"omitempty"` // Used for sqlite3 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:"required,min=1"`
MaxIdleConns int `json:"max_idle_conns" validate:"required,min=1"`
ConnMaxLifetime int `json:"conn_max_lifetime" validate:"required,min=0"` // Number of minutes: 1-15 minutes
ConnMaxIdleTime int `json:"conn_max_idle_time" validate:"required,min=0"` // Number of minutes: 1-5 minutes
ContextTimeout int `json:"context_timeout" validate:"required,min=5"` // Number of seconds, with a minimum of 5 seconds
TransactionContextTimeout int `json:"transaction_context_timeout" validate:"required,min=5"` // Number of seconds, with a minimum of 5 seconds
Debug bool // Enable SQLBoiler query logging
Params map[string]string `json:"params" validate:"omitempty"`
}
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"`
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 RequiredConfigs ¶ added in v0.0.4
type RequiredConfigs struct {
}
Click to show internal directories.
Click to hide internal directories.