package activity_file

import (
	"errors"
	"io"
	"strings"
)

type ActivityFileParam struct {
	ActivityID string `json:"activity_id"`
}

func (param *ActivityFileParam) Validate() error {
	if param.ActivityID == "" {
		return errors.New("activity_id is empty")
	}
	return nil
}

func validateObjectKey(key string) error {
	if key == "" {
		return errors.New("key is empty")
	}
	for _, segment := range strings.Split(key, "/") {
		if segment == "" || segment == "." || segment == ".." {
			return errors.New("key contains an invalid path segment")
		}
	}
	return nil
}

type DownloadFileData struct {
	ContentType   string
	ContentLength int64
	Reader        io.ReadCloser
	Headers       map[string]string
}

func (data *DownloadFileData) Close() error {
	return data.Reader.Close()
}
