#pragma once #include #include #include namespace roro::storage { // Makes one path component safe for FAT: forbidden characters become '_', never empty or a dot name. std::string sanitize(const std::string& name); // "/irc/libera/#roro/2026-10-02.log" from {"irc", "libera", "#roro"} and a local date // ("YYYY-MM-DD"); an empty date (clock not set yet) gives "undated.log". std::string dailyLogPath(std::initializer_list folders, const std::string& date); // Day number (days since 1970-01-01) encoded in a Log ("2026-10-02.log") or Capture // ("20261002-144500.pcap") file name, or -1 if the name carries no valid date. int fileDay(const std::string& fileName); int dayFromUtc(int64_t utcSeconds); } // namespace roro::storage