using System;

namespace FootwearTest.Models;

public sealed record TestRunRecord(
    long Id,
    string Method,
    string SampleDescription,
    string Conditions,
    string ResultSummary,
    string DataJson,
    bool IsValid,
    DateTime CreatedAt);

public sealed record TestRunSummary(
    long Id,
    string Method,
    string SampleDescription,
    string ResultSummary,
    bool IsValid,
    DateTime CreatedAt);

public sealed record MethodASampleRecord(
    int Index,
    DateTime Timestamp,
    double FootTemperatureC,
    double EnvironmentTemperatureC,
    double RelativeHumidityPercent,
    double WaterLossGramsPerHour,
    double PowerWatts,
    double MoistureHeatWatts,
    double DryHeatWatts,
    double MoistureResistance,
    double ThermalResistance);

public sealed record MethodAResult(
    string Stage,
    double SkinMoistureResistance,
    double AverageMoistureResistance,
    double AverageThermalResistance,
    double MoistureCoefficientOfVariation,
    double ThermalCoefficientOfVariation,
    bool PassedDeviationCheck);

public sealed record MethodBMoistureResult(
    double M1,
    double M2,
    double M3,
    double M4,
    double M5,
    double M6,
    double M7,
    double M8,
    double M180,
    double T180,
    double M1Corrected,
    double M2Corrected,
    double M3Corrected,
    double M4Corrected,
    double T180Corrected,
    double XT180Corrected,
    bool IsValid);

public sealed record MethodBWarmthResult(
    double EnergyKilojoules,
    double Seconds,
    double HeatWatts,
    double FootTemperatureC,
    double ChamberTemperatureC,
    double ThermalResistance);
