/*
 * Copyright © 2020-2026 Pierrick Caillon <pierrick.caillon+zipdirfs@megami.fr>
 */
#ifndef ZIPDIRFS_ZIP_BASE_STAT_H
#define ZIPDIRFS_ZIP_BASE_STAT_H

#include <ctime>
#include <string>
#include <cstdint>

namespace ZipDirFs::Zip::Base
{
	/**
	 * @brief Helper class to represents a zip archive entry stats
	 * @authors Pierrick Caillon <pierrick.caillon+zipdirfs@megami.fr>
	 */
	class Stat
	{
	public:
		Stat() = default;
		Stat(std::uint64_t, const std::string&, std::uint64_t, std::time_t,
			bool);
		[[nodiscard]] std::uint64_t getIndex() const;
		[[nodiscard]] const std::string& getName() const;
		[[nodiscard]] std::uint64_t getSize() const;
		[[nodiscard]] std::time_t getChanged() const;
		[[nodiscard]] bool getCompressed() const;

	protected:
		std::uint64_t index{};
		std::string name;
		std::uint64_t size{};
		std::time_t changed{};
		bool compressed{};
	};

} // namespace ZipDirFs::Zip::Base

#endif // ZIPDIRFS_ZIP_BASE_STAT_H
