Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
1c4c66b verified
Raw
History Blame Contribute Delete
1.98 kB
package reconciler
import (
"fmt"
"github.com/openmeterio/openmeter/openmeter/billing"
"github.com/openmeterio/openmeter/openmeter/billing/worker/subscriptionsync/service/reconciler/invoiceupdater"
)
type invoicePatchCollectionBase struct {
patches []InvoicePatch
}
func (c invoicePatchCollectionBase) GetLineEngineType() billing.LineEngineType {
return billing.LineEngineTypeInvoice
}
func newInvoicePatchCollectionBase(preallocatedCapacity int) invoicePatchCollectionBase {
if preallocatedCapacity <= 0 {
preallocatedCapacity = 16
}
return invoicePatchCollectionBase{
patches: make([]InvoicePatch, 0, preallocatedCapacity),
}
}
func (c *invoicePatchCollectionBase) addPatches(uniqueID string, operation PatchOperation, invoiceUpdates ...invoiceupdater.Patch) error {
if uniqueID == "" {
return fmt.Errorf("unique id is required [operation=%s]", operation)
}
if len(invoiceUpdates) == 0 {
return fmt.Errorf("at least one invoice update is required for [operation=%s, uniqueID=%s]", operation, uniqueID)
}
c.patches = append(c.patches, newGenericInvoicePatch(uniqueID, operation, invoiceUpdates...))
return nil
}
func (c invoicePatchCollectionBase) IsEmpty() bool {
return len(c.patches) == 0
}
func (c invoicePatchCollectionBase) Patches() []InvoicePatch {
return c.patches
}
type genericInvoicePatch struct {
uniqueID string
operation PatchOperation
invoiceUpdates []invoiceupdater.Patch
}
func newGenericInvoicePatch(uniqueID string, operation PatchOperation, invoiceUpdates ...invoiceupdater.Patch) genericInvoicePatch {
return genericInvoicePatch{
uniqueID: uniqueID,
operation: operation,
invoiceUpdates: invoiceUpdates,
}
}
func (p genericInvoicePatch) Operation() PatchOperation {
return p.operation
}
func (p genericInvoicePatch) UniqueReferenceID() string {
return p.uniqueID
}
func (p genericInvoicePatch) GetInvoicePatches() ([]invoiceupdater.Patch, error) {
return p.invoiceUpdates, nil
}