package depot

import "time"

// Object represents a stored object in the depot
type Object struct {
	ID              string
	Name            string
	ContentType     string
	ContentLength   int64
	BucketName      string
	ObjectKey       string
	ContainsContent bool
	CreatedAt       time.Time
}

// PrepareUploadInput represents the input for preparing an upload
type PrepareUploadInput struct {
	Prefix        string // Optional prefix for organizing objects (e.g., network_id)
	Name          string
	ContentType   string
	ContentLength int64
}

// PrepareUploadResult represents the result of preparing an upload
type PrepareUploadResult struct {
	ObjectID      string
	UploadURL     string
	UploadHeaders map[string]string
}

// Config holds configuration for the depot service
type Config struct {
	GoogleServiceAccountEmail string
	BucketName                string
	UploadURLExpiry           time.Duration
	DownloadURLExpiry         time.Duration
}
