openmeter / billing /charges /usagebased /ratingengine.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
5a22efd verified
Raw
History Blame Contribute Delete
891 Bytes
package usagebased
import (
"fmt"
"slices"
"github.com/openmeterio/openmeter/pkg/models"
)
type RatingEngine string
const (
// RatingEngineDelta rates the current cumulative meter snapshot, subtracts
// already booked detailed lines, and books the remainder on the current run
// service period.
RatingEngineDelta RatingEngine = "delta"
// RatingEnginePeriodPreserving rates cumulative snapshots per service
// period and preserves correction lines on their original service periods.
RatingEnginePeriodPreserving RatingEngine = "period_preserving"
)
func (e RatingEngine) Values() []string {
return []string{
string(RatingEngineDelta),
string(RatingEnginePeriodPreserving),
}
}
func (e RatingEngine) Validate() error {
if !slices.Contains(e.Values(), string(e)) {
return models.NewGenericValidationError(fmt.Errorf("invalid rating engine: %s", e))
}
return nil
}