Files
the-biergarten-app/tooling/pipeline/includes/data_model/generated_models.h
2026-06-21 11:59:55 -04:00

98 lines
2.6 KiB
C++

#ifndef BIERGARTEN_PIPELINE_INCLUDES_DATA_MODEL_GENERATED_MODELS_H_
#define BIERGARTEN_PIPELINE_INCLUDES_DATA_MODEL_GENERATED_MODELS_H_
/**
* @file data_model/generated_models.h
* @brief Generated output models from the pipeline: brewery/user results, enriched data,
* and complete generation results.
*/
#include <string>
#include "data_model/models.h"
// ============================================================================
// Generation Output Models
// ============================================================================
/**
* @brief Generated brewery payload.
*/
struct BreweryResult {
/// @brief Brewery display name in English.
std::string name_en;
/// @brief Brewery description text in English.
std::string description_en;
/// @brief Brewery display name in the local language.
std::string name_local;
/// @brief Brewery description text in the local language.
std::string description_local;
};
/**
* @brief Generated user profile payload.
*/
struct UserResult {
/// @brief First (given) name, copied from the sampled Name -- not
/// LLM-invented.
std::string first_name{};
/// @brief Last (family) name, copied from the sampled Name -- not
/// LLM-invented.
std::string last_name{};
/// @brief Gender associated with the sampled first name, copied from the
/// sampled Name -- not LLM-invented.
std::string gender{};
/// @brief Username handle.
std::string username{};
/// @brief Short user biography.
std::string bio{};
/// @brief Relative check-in/activity weight for this user, used to drive
/// a J-curve activity profile in later pipeline phases.
float activity_weight{};
};
// ============================================================================
// Pipeline Data Models
// ============================================================================
/**
* @brief Enriched city data with Wikipedia context.
*/
struct EnrichedCity {
Location location;
std::string region_context{};
};
/**
* @brief Helper struct to store generated brewery data.
*/
struct GeneratedBrewery {
Location location;
BreweryResult brewery;
};
/**
* @brief Helper struct to store generated user data.
*
* `email`, `date_of_birth`, and `password` are programmatically generated by
* the orchestrator (never LLM-authored) so a downstream auth-account seeding
* consumer can register real accounts from the pipeline's SQLite export.
*/
struct GeneratedUser {
Location location;
UserResult user;
std::string email{};
std::string date_of_birth{};
std::string password{};
};
#endif // BIERGARTEN_PIPELINE_INCLUDES_DATA_MODEL_GENERATED_MODELS_H_