#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();
}
