package taskboard

import "context"

const taskBoardColumnSourceStatus = "status"

type taskBoardLayout struct {
	ColumnOrder       []string
	ColumnDefinitions []TaskBoardColumnDefinition
}

func defaultTaskBoardLayout() taskBoardLayout {
	return fixedStatusTaskBoardLayout()
}

func fixedStatusTaskBoardLayout() taskBoardLayout {
	ordered := []TaskBoardColumnDefinition{
		{Key: string(StatusTodo), Name: "Todo", Source: taskBoardColumnSourceStatus},
		{Key: string(StatusInProgress), Name: "In Progress", Source: taskBoardColumnSourceStatus},
		{Key: string(StatusInReview), Name: "In Review", Source: taskBoardColumnSourceStatus},
		{Key: string(StatusDone), Name: "Done", Source: taskBoardColumnSourceStatus},
	}
	columnOrder := make([]string, 0, len(ordered))
	for _, column := range ordered {
		columnOrder = append(columnOrder, column.Key)
	}
	return taskBoardLayout{
		ColumnOrder:       columnOrder,
		ColumnDefinitions: ordered,
	}
}

func (txs TxStore) loadTaskBoardLayoutForBrowse(ctx context.Context, _ taskBrowseScope) (taskBoardLayout, error) {
	return fixedStatusTaskBoardLayout(), nil
}
