package models

import "github.com/bluesky-social/indigo/atproto/syntax"

type Pipeline struct {
	RepoDid   syntax.DID
	Workflows map[Engine][]Workflow
	// whether the code being ran was checked out from RepoDid itself
	TrustedSource bool
}

type Step interface {
	Name() string
	Command() string
	Kind() StepKind
}

type StepKind int

const (
	// steps injected by the CI runner
	StepKindSystem StepKind = iota
	// steps defined by the user in the original pipeline
	StepKindUser
)

type Workflow struct {
	Steps       []Step
	Name        string
	Data        any
	Environment map[string]string
}
