linstrom/storage/inboundJobs.go

37 lines
1 KiB
Go
Raw Normal View History

package storage
import (
"time"
)
// Auto-generate string names for the various constants
//go:generate stringer -type InboundJobSource
type InboundJobSource uint8
// TODO: Adjust and expand these constants later, depending on sources
const (
InJobSourceAccInbox InboundJobSource = iota
InJobSourceServerInbox
InJobSourceApiMasto
InJobSourceApiLinstrom
)
// Store inbound jobs from api and ap in the db until they finished processing
// Ensures data consistency in case the server is forced to restart unexpectedly
// No DeletedAt field since don't want completed jobs to linger in the db for any longer than necessary
type InboundJob struct {
ID uint `gorm:"primarykey"`
CreatedAt time.Time
// Raw data, could be json or gob data, check source for how to interpret
RawData []byte
// Where this job is coming from. Important for figuring out how to decode the raw data and what to do with it
Source InboundJobSource
// Section: Various data
// TODO: Expand based on needs
// If from an inbox, include the owner id here
InboxOwner *string
}