//
// Created by sebastian on 30.07.26.
//

#ifndef COLORRACE_ASSEZREQUESTS_H
#define COLORRACE_ASSEZREQUESTS_H
#pragma once

#include <string>
#include <variant>

#include "AssetTypes.h"

namespace engine {

    struct TextureRequest
    {
        std::string name;
        std::string path;
        bool flipY = true;
    };


    struct ModelRequest
    {
        std::string name;
        std::string path;
        ModelSplitPolicy splitPolicy = ModelSplitPolicy::Combined;
    };

    struct SoundRequest {
        std::string name;
        std::string path;
    };


    using AssetRequest =
        std::variant<
            TextureRequest,
            ModelRequest,
            SoundRequest
        >;


    std::string assetRequestToString(const AssetRequest& request);

}
#endif //COLORRACE_ASSEZREQUESTS_H
