package main

import (
	"context"
	"time"

	"code.hackerspace.pl/hscloud/bgpwtf/cccampix/verifier/model"
	"github.com/sethvargo/go-password/password"
)

type secretGen struct {
}

func newSecretGen() (processor, error) {
	return &secretGen{}, nil
}

func (p *secretGen) Name() string {
	return "SecretGen"
}

func (p *secretGen) NextRun(now time.Time, lastFailed bool) time.Time {
	return now.Add(1 * time.Minute)
}

func gen() model.SessionConfig {
	secret := password.MustGenerate(16, 4, 0, false, true)
	return model.SessionConfig{
		BGPSecret: secret,
	}
}

func (p *secretGen) RunAll(ctx context.Context, m model.Model) error {
	return m.ConfigureMissingSessions(ctx, gen)
}
