#pragma once

#include "BufferedBuildingContent.h"
#include "SelectionContentFactory.h"

class RecipeSelectionControl;

// The card for a Miner or an Assembler (REQ-UI-SELECTION-CONTENT): a player-selected
// recipe, plus the buffers and production progress every buffered building shows. The
// two share a card because both run one selected recipe; a Miner simply has no inputs,
// so its input buffer section shows nothing of its own accord.
class RecipeProductionContent : public BufferedBuildingContent
{
    Q_OBJECT

public:
    RecipeProductionContent(const SelectionContext& context,
                            const SelectionRequest& request, QWidget* parent = nullptr);

protected:
    void refreshControls(const BuildingTarget& target) override;
    CycleInfo getCycleInfo(const BuildingTarget& target) const override;

private:
    RecipeSelectionControl* m_recipeControl;
};
