package source

import (
	"context"
	"time"

	relent "github.com/tidbcloud/devops/entity/release"
)

type SearchTicketOptions struct {
	UpdatedAtGTE *time.Time
}

type Source interface {
	ListReleases(ctx context.Context) ([]*relent.ReleaseInRepo, error)

	SearchTickets(ctx context.Context, opts SearchTicketOptions) ([]string, error)
	GetTicket(ctx context.Context, name string) (relent.ReleaseTicketInRepo, error)
	UpdateTicketStatus(ctx context.Context, name string, status string) error
}
