mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-07-16 09:37:23 +00:00
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
#ifndef BIERGARTEN_PIPELINE_INCLUDES_DATA_GENERATION_DATA_GENERATOR_H_
|
|
#define BIERGARTEN_PIPELINE_INCLUDES_DATA_GENERATION_DATA_GENERATOR_H_
|
|
|
|
/**
|
|
* @file data_generation/data_generator.h
|
|
* @brief Shared generator interfaces and result models.
|
|
*/
|
|
|
|
#include <string>
|
|
|
|
#include "data_model/generated_models.h"
|
|
|
|
/**
|
|
* @brief Interface for data generator implementations.
|
|
*/
|
|
class DataGenerator {
|
|
public:
|
|
virtual ~DataGenerator() = default;
|
|
|
|
/**
|
|
* @brief Generates brewery data for a location.
|
|
*
|
|
* @param location Location data
|
|
* @param region_context Additional regional context text.
|
|
* @return Brewery generation result.
|
|
*/
|
|
virtual BreweryResult GenerateBrewery(const Location& location,
|
|
const std::string& region_context) = 0;
|
|
|
|
/**
|
|
* @brief Generates a user profile grounded in a sampled name and persona.
|
|
*
|
|
* @param city Enriched city the user is associated with.
|
|
* @param persona Persona archetype grounding the generated bio.
|
|
* @param name Sampled first/last name (and gender) -- not LLM-invented.
|
|
* @return User generation result.
|
|
*/
|
|
virtual UserResult GenerateUser(const EnrichedCity& city,
|
|
const UserPersona& persona,
|
|
const Name& name) = 0;
|
|
};
|
|
|
|
#endif // BIERGARTEN_PIPELINE_INCLUDES_DATA_GENERATION_DATA_GENERATOR_H_
|