package provider

import (
	"context"
	"time"
)

type Snapshot struct {
	ReportDate  time.Time
	RefreshedAt time.Time
	Samples     []BucketSample
}

type BucketSample struct {
	Provider     string
	Region       string
	AccountID    string
	Bucket       string
	StorageClass string
	TenantID     string
	SharedPoolID string
	StorageBytes float64
	ObjectCount  float64
}

type Collector interface {
	Name() string
	Refresh(ctx context.Context) (Snapshot, error)
}
