Files
ttstd-infinite-canvas/backend/internal/model/models_creation.go

45 lines
2.4 KiB
Go

package model
import "time"
// CreationRun keeps execution authority separate from untrusted conversation state.
type CreationRun struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
UserID string `json:"userId" gorm:"size:36;index;uniqueIndex:idx_creation_client,priority:1"`
ClientKey string `json:"-" gorm:"size:120;uniqueIndex:idx_creation_client,priority:2"`
CreateHash string `json:"-" gorm:"size:64"`
CanvasID string `json:"canvasId,omitempty" gorm:"size:80"`
Revision int64 `json:"revision"`
ExecutionEpoch int64 `json:"executionEpoch"`
ExecutionOwner string `json:"executionOwner" gorm:"size:120"`
LeaseExpiresAt *time.Time `json:"leaseExpiresAt,omitempty"`
Status string `json:"status" gorm:"size:32"`
StateJSON string `json:"-" gorm:"type:text"`
ApprovedProposalVersion int64 `json:"approvedProposalVersion,omitempty"`
ApprovedProposalHash string `json:"approvedProposalHash,omitempty" gorm:"size:64"`
ApprovedOperationsJSON string `json:"-" gorm:"type:text"`
ApprovedCanvasJSON string `json:"-" gorm:"type:text"`
ApprovedAt *time.Time `json:"-"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type CreationSubmission struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
UserID string `json:"-" gorm:"size:36;index"`
RunID string `json:"runId" gorm:"size:36;uniqueIndex:idx_creation_item,priority:1"`
ItemKey string `json:"itemKey" gorm:"size:160;uniqueIndex:idx_creation_item,priority:2"`
ProposalVersion int64 `json:"-"`
ProposalHash string `json:"-" gorm:"size:64"`
RequestJSON string `json:"-" gorm:"type:text"`
RequestHash string `json:"requestHash" gorm:"size:64"`
QuoteJSON string `json:"-" gorm:"type:text"`
PriceSignature string `json:"-" gorm:"type:text"`
ExpiresAt time.Time `json:"-"`
ApprovedAt *time.Time `json:"approvedAt,omitempty"`
RevokedAt *time.Time `json:"revokedAt,omitempty"`
TaskID *string `json:"taskId,omitempty" gorm:"size:36;uniqueIndex"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}