mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
* add brewery coordinates * Add openai mode * Add coordinates to schema * Fix C++ review findings in pipeline: k-prefixed enum values, include ordering, populated validation error messages, conventional const notation, and endl replaced with newline
133 lines
2.9 KiB
C++
133 lines
2.9 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 {
|
|
City location;
|
|
std::string region_context{};
|
|
};
|
|
|
|
/**
|
|
* @brief A physical address: the city plus a concrete postal code selected
|
|
* from that city's curated postal-code examples.
|
|
*/
|
|
struct BreweryAddress {
|
|
City city;
|
|
std::string postal_code{};
|
|
double longitude{};
|
|
double latitude{};
|
|
};
|
|
|
|
/**
|
|
* @brief A physical address for a generated user: the city plus a concrete
|
|
* postal code selected from that city's curated postal-code examples.
|
|
*/
|
|
struct UserAddress {
|
|
City city;
|
|
std::string postal_code{};
|
|
};
|
|
|
|
/**
|
|
* @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_
|