package domain import "context" // Storage — object storage (MinIO / S3 / local). type Storage interface { // Upload writes bytes; returns public URL and object key. Upload(ctx context.Context, key string, data []byte, contentType string) (publicURL string, err error) // Delete removes object by key (best-effort). Delete(ctx context.Context, key string) error // Enabled is false when no backend configured (caller may reject uploads). Enabled() bool // Name for logs: s3 | local | noop Name() string }