Monorepo for Tangled
tangled.org
1package models
2
3import (
4 "fmt"
5
6 "github.com/bluesky-social/indigo/atproto/syntax"
7)
8
9type PDSRecordMigration struct {
10 Did syntax.DID
11 Name string // name of the migration
12 Records []syntax.ATURI // records that need a migration
13 ErrorMsg *string // error message from previous attempt
14}
15
16type PDSMigration struct {
17 Name string // name of the migration
18 Did syntax.DID // record owner
19 Collection syntax.NSID // record collection
20 Rkey syntax.RecordKey // record rkey
21 Status PDSMigrationStatus
22 ErrorMsg *string // error message from previous attempt
23 RetryCount int
24 RetryAfter int64 // Unix timestamp (seconds)
25}
26
27type PDSMigrationStatus string
28
29const (
30 PDSMigrationStatusPending PDSMigrationStatus = "pending"
31 PDSMigrationStatusRunning PDSMigrationStatus = "running"
32 PDSMigrationStatusDone PDSMigrationStatus = "done"
33 PDSMigrationStatusFailed PDSMigrationStatus = "failed"
34)
35
36func (m *PDSMigration) RecordAtUri() syntax.ATURI {
37 return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", m.Did, m.Collection, m.Rkey))
38}