package filemanager

import (
	"context"
	"mime/multipart"
)

type FileType string

const (
	AvatarFileType FileType = "avatar"
	CVFileType     FileType = "cv"
)

type ParameterType string

const (
	UserIdParam       ParameterType = "user_id"
	VacancyIdParam    ParameterType = "vacancy_id"
	SubmissionIdParam ParameterType = "submission_id"
)

type ParameterTable map[ParameterType]any

type UserFileManager interface {
	GetFilePaths(
		ctx context.Context,
		fileType FileType,
		parameters ParameterTable,
	) ([]string, error)

	SaveFile(
		ctx context.Context,
		fileType FileType,
		file multipart.File,
		fileHeader *multipart.FileHeader,
		parameters ParameterTable,
	) error
}
