#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 { City location; std::string region_context{}; }; /** * @brief A physical address: the city plus a coordinate pair sampled near * the city's centre. */ struct BreweryAddress { City city; double longitude{}; double latitude{}; /** * @brief Street address line (e.g. house number + road), resolved once * via reverse geocoding at generation time. */ std::string address_line1{}; /** * @brief Postal code, resolved once via reverse geocoding at generation * time. */ std::string postal_code{}; }; /** * @brief A physical address for a generated user: the city plus a * coordinate pair sampled near the city's centre. */ struct UserAddress { City city; double longitude{}; double latitude{}; }; /** * @brief Helper struct to store generated brewery data. */ struct BreweryRecord { BreweryAddress address; 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 { UserAddress address; UserResult user; std::string email{}; std::string date_of_birth{}; }; #endif // BIERGARTEN_PIPELINE_INCLUDES_DATA_MODEL_GENERATED_MODELS_H_