69 lines
2.7 KiB
Go
69 lines
2.7 KiB
Go
// Package alert define alert event struct of modelRT project
|
|
package alert
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"modelRT/constants"
|
|
|
|
"github.com/gofrs/uuid"
|
|
)
|
|
|
|
// NewPlatformEventRecord define func to create a new platform event record with common fields initialized
|
|
func NewPlatformEventRecord(eventType int, priority int, eventName string, opts ...EventOption) (*EventRecord, error) {
|
|
u, err := uuid.NewV4()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to generate UUID: %w", err)
|
|
}
|
|
|
|
record := &EventRecord{
|
|
EventName: eventName,
|
|
EventUUID: u.String(),
|
|
Type: eventType,
|
|
Priority: priority,
|
|
Status: 1,
|
|
From: constants.EventFromPlatform,
|
|
Timestamp: time.Now().UnixNano() / int64(time.Millisecond),
|
|
Condition: make(map[string]any),
|
|
AttachedSubscriptions: make([]any, 0),
|
|
Operations: make([]OperationRecord, 0),
|
|
}
|
|
|
|
for _, opt := range opts {
|
|
opt(record)
|
|
}
|
|
|
|
return record, nil
|
|
}
|
|
|
|
// NewGeneralPlatformSoftRecord define func to create a new general platform software event record
|
|
func NewGeneralPlatformSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventGeneralPlatformSoft), 0, name, opts...)
|
|
}
|
|
|
|
// NewGeneralApplicationSoftRecord define func to create a new general application software event record
|
|
func NewGeneralApplicationSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventGeneralApplicationSoft), 0, name, opts...)
|
|
}
|
|
|
|
// NewWarnPlatformSoftRecord define func to create a new warning platform software event record
|
|
func NewWarnPlatformSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventWarnPlatformSoft), 3, name, opts...)
|
|
}
|
|
|
|
// NewWarnApplicationSoftRecord define func to create a new warning application software event record
|
|
func NewWarnApplicationSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventWarnApplicationSoft), 3, name, opts...)
|
|
}
|
|
|
|
// NewCriticalPlatformSoftRecord define func to create a new critical platform software event record
|
|
func NewCriticalPlatformSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventCriticalPlatformSoft), 6, name, opts...)
|
|
}
|
|
|
|
// NewCriticalApplicationSoftRecord define func to create a new critical application software event record
|
|
func NewCriticalApplicationSoftRecord(name string, opts ...EventOption) (*EventRecord, error) {
|
|
return NewPlatformEventRecord(int(constants.EventCriticalApplicationSoft), 6, name, opts...)
|
|
}
|