Adding queues and storage is now postgres only

This commit is contained in:
Melody Becker 2024-09-15 12:24:36 +02:00
parent 7ec0ce5a45
commit 1c2472cc2c
11 changed files with 368 additions and 31 deletions

36
storage/inboundJobs.go Normal file
View file

@ -0,0 +1,36 @@
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
}