|
@@ -19,6 +19,7 @@ package database
|
|
|
import (
|
|
|
"database/sql"
|
|
|
"errors"
|
|
|
+ "fmt"
|
|
|
"time"
|
|
|
|
|
|
log "maunium.net/go/maulogger/v2"
|
|
@@ -33,6 +34,18 @@ const (
|
|
|
BackfillMedia = 2
|
|
|
)
|
|
|
|
|
|
+func (bt BackfillType) String() string {
|
|
|
+ switch bt {
|
|
|
+ case BackfillImmediate:
|
|
|
+ return "IMMEDIATE"
|
|
|
+ case BackfillDeferred:
|
|
|
+ return "DEFERRED"
|
|
|
+ case BackfillMedia:
|
|
|
+ return "MEDIA"
|
|
|
+ }
|
|
|
+ return "UNKNOWN"
|
|
|
+}
|
|
|
+
|
|
|
type BackfillQuery struct {
|
|
|
db *Database
|
|
|
log log.Logger
|
|
@@ -111,6 +124,12 @@ type Backfill struct {
|
|
|
CompletedAt *time.Time
|
|
|
}
|
|
|
|
|
|
+func (b *Backfill) String() string {
|
|
|
+ return fmt.Sprintf("Backfill{QueueID: %d, UserID: %s, BackfillType: %s, Priority: %d, Portal: %s, TimeStart: %s, TimeEnd: %s, MaxBatchEvents: %d, MaxTotalEvents: %d, BatchDelay: %d, CompletedAt: %s}",
|
|
|
+ b.QueueID, b.UserID, b.BackfillType, b.Priority, b.Portal, b.TimeStart, b.TimeEnd, b.MaxBatchEvents, b.MaxTotalEvents, b.BatchDelay, b.CompletedAt,
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
func (b *Backfill) Scan(row Scannable) *Backfill {
|
|
|
err := row.Scan(&b.QueueID, &b.UserID, &b.BackfillType, &b.Priority, &b.Portal.JID, &b.Portal.Receiver, &b.TimeStart, &b.TimeEnd, &b.MaxBatchEvents, &b.MaxTotalEvents, &b.BatchDelay)
|
|
|
if err != nil {
|