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 } // CreateFromReaderInput is for server-side direct uploads (no presigned URL). // Used by background workers that already have the bytes on hand and don't // need a client round-trip. type CreateFromReaderInput struct { Prefix string // Optional prefix for organizing objects (e.g., network_id) Name string ContentType string } // Config holds configuration for the depot service type Config struct { GoogleServiceAccountEmail string BucketName string UploadURLExpiry time.Duration DownloadURLExpiry time.Duration }