#pragma once

#include "fesa/model/model_types.hpp"

#include <array>
#include <cstddef>
#include <string>

namespace fesa {

struct StepFrameIdentity {
    std::string stepName;
    std::size_t frameIndex;
};

struct EndpointResultRow {
    EntityIndex element;
    int endpoint;
    SourceEntityId node;
    std::array<double, 6> endAction;
    std::array<double, 4> sectionResultant;
};

struct GaussResultRow {
    EntityIndex element;
    int gaussPoint;
    std::array<double, 4> generalizedStrain;
    std::array<double, 4> generalizedResultant;
};

struct StressS11Row {
    EntityIndex element;
    int gaussPoint;
    std::size_t sectionPoint;
    double x1;
    double x2;
    double s11;
    std::string source;
};

} // namespace fesa
