{ config, lib, pkgs, ... }:

{
 # ZFS automatic backup solution
  services.znapzend = {
    enable = true;
    autoCreation = true;
    features = {
      compressed = true;
      recvu = true;
    };
    zetup = {
      "syscea/state/root" = {
        plan = "1d=>1h,1m=>1d,1y=>1m";
        recursive = true;
        mbuffer = true;
        destinations.remote = {
          host = "coolneng@zion";
          dataset = "syscea/root";
        };
      }; 

      "syscea/state/home" = {
        plan = "1d=>1h,1m=>1d,1y=>1m";
        recursive = true;
        mbuffer = true;
        destinations.remote = {
          host = "coolneng@zion";
          dataset = "syscea/home";
        };
      }; 
    };
  };

  # Syncthing configuration
  services.syncthing = {
    enable = true;
    dataDir = "/home/coolneng";
    declarative = {
      devices = {
        zion = { id = "XABIMVG-K5RKMAF-KNC33AR-TDAVEGK-GHUIVFD-NIFCX6L-6PQXRM5-KLK2PAU"; };
      };
      folders = {
        Documents = {
          id = "wusdj-bfjkr";
          path = "/home/coolneng/Documents";
          devices = [ "zion" ];
          versioning = {
            type = "simple";
            params = {
              keep = "5";
            };
          };
        };

        Notes = {
          id = "kafhz-bfmzm";
          path = "/home/coolneng/Notes";
          devices = [ "zion" ];
          versioning = {
            type = "simple";
            params = {
              keep = "5";
            };
          };
        };

        Music = {
          id = "2aqt7-vpprc";
          path = "/home/coolneng/Music";
          devices = [ "zion" ];
        };

        Photos = {
          id = "mjibc-ustcg";
          path = "/home/coolneng/Photos";
          devices = [ "zion" ];
        };

        Projects = {
          id = "cjhmu-avy9v";
          type = "sendonly";
          path = "/home/coolneng/Projects";
          devices = [ "zion" ];
        };
      };
    };
  };
}