#include "rive/assets/file_asset.hpp"
#include "rive/backboard.hpp"
#include "rive/importers/backboard_importer.hpp"

using namespace rive;

StatusCode FileAsset::import(ImportStack& importStack)
{
    auto backboardImporter =
        importStack.latest<BackboardImporter>(Backboard::typeKey);
    if (backboardImporter == nullptr)
    {
        return StatusCode::MissingObject;
    }
    backboardImporter->addFileAsset(this);

    return Super::import(importStack);
}

std::string FileAsset::uniqueFilename()
{
    // remove final extension
    std::string uniqueFilename = name();
    std::size_t finalDot = uniqueFilename.rfind('.');

    if (finalDot != std::string::npos)
    {
        uniqueFilename = uniqueFilename.substr(0, finalDot);
    }
    return uniqueFilename + "-" + std::to_string(assetId()) + "." +
           fileExtension();
}
