#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 #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 BreweryRecord { Location location; BreweryResult brewery; }; /** * @brief Helper struct to store generated user data. * * `email` and `date_of_birth` 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 UserRecord { Location location; UserResult user; std::string email{}; std::string date_of_birth{}; }; #endif // BIERGARTEN_PIPELINE_INCLUDES_DATA_MODEL_GENERATED_MODELS_H_