BareGit
#pragma once

#include <array>
#include <cstdint>
#include <vector>

#include "inventory/repo.hpp"

namespace overseer::test
{

struct SeededFamily
{
    // Apartment is the root storage.
    int64_t apartment_id = 0;
    // Room is a child of Apartment.
    int64_t room_id = 0;
    // Shelf is a child of Room.
    int64_t shelf_id = 0;
    // 20 stuffs distributed across the three storages.
    std::vector<int64_t> stuff_ids;
    // 5 attachment ids (small distinct blobs, all assigned to the
    // first 5 stuffs to keep test fixtures wiring simple).
    std::array<int64_t, 5> attachment_ids{};
};

/// Seed a 3-level tree (Apartment > Room > Shelf), 20 stuffs, and 5
/// attachments per design ยง14.3. Pre-condition: the DB has had the
/// schema applied. Returns the ids of the created rows so individual
/// tests can address them.
SeededFamily seedFamily(::overseer::inventory::InventoryRepo& repo);

} // namespace overseer::test