//
//  NutritionDTO.swift
//  Plugin
//
//  Created by Francisco Guerrero Escamilla on 24/02/26.
//  Copyright © 2026 Max Lynch. All rights reserved.
//

import Foundation

struct NutritionInsertionEventDTO: Codable {
  let name: String
  let quantity: NutritionInsertionEventQuantityDTO
  let date: String

  let nutritionInsertionEnergyWaterDataRelated: NutritionInsertionEnergyWaterDataRelatedDTO?
  let nutritionCarbohydratesDataRelated: NutritionCarbohydratesDataRelatedDTO?
  let nutritionFatsDataRelated: NutritionFatsDataRelatedDTO?
  let nutritionProteinDataRelated: NutritionProteinDataRelatedDTO?
  let nutritionVitaminsDataRelated: NutritionVitaminsDataRelatedDTO?
  let nutritionMineralDataRelated: NutritionMineralDataRelatedDTO?
}

struct NutritionInsertionEventQuantityDTO: Codable {
  let unit: Int
  let amount: Double
}

struct NutritionInsertionEnergyWaterDataRelatedDTO: Codable {
  let dietaryKiloCaloriesEnergyConsumed: Double?
  let dietaryMilliLiterWater: Double?
}

struct NutritionCarbohydratesDataRelatedDTO: Codable {
  let dietaryGramCarbohydrates: Double?
  let dietaryGramFiber: Double?
  let dietaryGramSugar: Double?
}

struct NutritionFatsDataRelatedDTO: Codable {
  let dietaryGramFatTotal: Double?
  let dietaryGramFatSaturated: Double?
  let dietaryGramFatMonounsaturated: Double?
  let dietaryGramFatPolyunsaturated: Double?
}

struct NutritionProteinDataRelatedDTO: Codable {
  let dietaryGramProtein: Double?
  let dietaryMilliGramCholesterol: Double?
}

struct NutritionVitaminsDataRelatedDTO: Codable {
  let dietaryMicroGramVitaminA: Double?
  let dietaryMilliGramVitaminB6: Double?
  let dietaryMicroGramVitaminB12: Double?
  let dietaryMilliGramVitaminC: Double?
  let dietaryMicroGramVitaminD: Double?
  let dietaryMilliGramVitaminE: Double?
  let dietaryMicroGramVitaminK: Double?
  let dietaryMilliGramThiamin: Double?
  let dietaryMilliGramRiboflavin: Double?
  let dietaryMilliGramNiacin: Double?
  let dietaryMilliGramPantothenicAcid: Double?
  let dietaryMicroGramFolate: Double?
  let dietaryMicroGramBiotin: Double?
}

struct NutritionMineralDataRelatedDTO: Codable {
  let dietaryMilliGramsCalcium: Double?
  let dietaryMilliGramsChloride: Double?
  let dietaryMilliGramsChromium: Double?
  let dietaryMilliGramsCopper: Double?
  let dietaryMilliGramsIodine: Double?
  let dietaryMilliGramsIron: Double?
  let dietaryMilliGramsMagnesium: Double?
  let dietaryMilliGramsManganese: Double?
  let dietaryMilliGramsMolybdenum: Double?
  let dietaryMilliGramsPhosphorus: Double?
  let dietaryMilliGramsPotassium: Double?
  let dietaryMilliGramsSelenium: Double?
  let dietaryMilliGramsSodium: Double?
  let dietaryMilliGramsZinc: Double?
}
