github.com/TBD54566975/ftl@v0.219.0/internal/model/cron_job_key.go (about)

     1  package model
     2  
     3  import (
     4  	"errors"
     5  	"strings"
     6  )
     7  
     8  type CronJobKey = KeyType[CronJobPayload, *CronJobPayload]
     9  
    10  func NewCronJobKey(module, verb string) CronJobKey {
    11  	return newKey[CronJobPayload](strings.Join([]string{module, verb}, "-"))
    12  }
    13  
    14  func ParseCronJobKey(key string) (CronJobKey, error) { return parseKey[CronJobPayload](key) }
    15  
    16  type CronJobPayload struct {
    17  	Ref string
    18  }
    19  
    20  var _ KeyPayload = (*CronJobPayload)(nil)
    21  
    22  func (d *CronJobPayload) Kind() string   { return "crn" }
    23  func (d *CronJobPayload) String() string { return d.Ref }
    24  func (d *CronJobPayload) Parse(parts []string) error {
    25  	if len(parts) == 0 {
    26  		return errors.New("expected <module>-<verb> but got empty string")
    27  	}
    28  	d.Ref = strings.Join(parts, "-")
    29  	return nil
    30  }
    31  func (d *CronJobPayload) RandomBytes() int { return 10 }