#pragma once
#include <string>

namespace MissionData
{
	struct DepthTable
	{
		float pressure_dBar;
		float platformVel_dBarPerSec;
		float parktime_hours;
		uint16_t sampleList;

		template <class Archive>
			void serialize(Archive& missionFileArchive)
			{
				missionFileArchive(pressure_dBar, platformVel_dBarPerSec, parktime_hours, sampleList);
			}
	};
	
	void readMissionData();
	void writeMissionData();
	void createStdMission();
	DepthTable getAscendTableEntry(uint16_t lineNum);
	DepthTable getDescendTableEntry(uint16_t lineNum);
	void setParkSamplePeriod_minutes(uint16_t duration);
	uint16_t getParkSamplePeriod_minutes();
	float getMaxMissionDuration_hours();
	uint16_t getMaxProfiles();
	void setMaxProfiles(uint16_t maxProfiles);
	float getMaxPressure_dBar();
	float setMaxPressure_dBar(float maxPressure);
	
	uint16_t getSizeOfDescendTable();
	uint16_t getSizeOfAscendTable();
}
