{ inputs, config, pkgs, ... }:
let
    scripts = {
        disk_check = {
            when = "*-*-* *:00:00";
            script = toString (pkgs.writeShellScript "script" ''
        REPORT_EMAIL=email@thomasave.be
        ZPOOL_STATUS=$(zpool status -x)
        if [ "$ZPOOL_STATUS" = "all pools are healthy" ] || [ "$ZPOOL_STATUS" = "no pools available" ]
        then
        printf 0 > /var/db/zpool.status
        else
        if [ "$(cat /var/db/zpool.status)" -eq 0 ]
        then
        zpool status | mail -s "ZPOOL NOT HEALTHY" $REPORT_EMAIL
        printf 1 > /var/db/zpool.status
        fi
        fi
        '');
        };
        restic_etienne = {
        when = "*-*-* 01:00:00";
        script = toString (pkgs.writeShellScript "script" ''
        /Backup/Restic/Etienne/run.sh
        ${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/zGPrOi0NsJ
        '');
        };
        restic_magda_and_etienne = {
        when = "*-*-* 03:00:00";
        script = toString (pkgs.writeShellScript "script" ''
        /Backup/Restic/Magda\ and\ Etienne/run.sh
        ${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/yvBuDgduDd
        '');
        };
        restic_backblaze = {
        when = "*-*-* 02:00:00";
        script = toString (pkgs.writeShellScript "script" ''
        /Backup/Restic/BackBlaze/run.sh
        ${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/LVruVYTwTn
        '');
        };
        mail_sync = {
        when = "*-*-* 04:00:00";
        script = toString (pkgs.writeShellScript "script" ''
        cd /home/server/Containers/Mails && docker compose up sync-etienne sync-magda
        ${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/eEIPVGyrAx
        '');
        };
    };
in
    {
    home.username = "server";
    home.homeDirectory = "/home/server";
    nix = {
        package = pkgs.nix;
        settings.use-xdg-base-directories = true;
    };

    xdg.enable = true;
    imports = [
        (import ./utils/common.nix { inherit inputs config pkgs; })
        (import ./utils/services.nix { inherit pkgs; scripts = scripts; })
        ./ssh
    ];

    programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Vault/id_ed25519";

    home.sessionVariables = {
        NIX_PATH = "${config.xdg.stateHome}/nix/profiles/channels/";
        LANG = "en_US.UTF-8";
        XDG_RUNTIME_DIR = "/run/user/$(id -u)";
    };

    programs.zsh.initContent = pkgs.lib.mkAfter ''
      LOCAL_SEARCH_DIRS=(~/.dotfiles/ ~/Storage/Thomas/ ~/Storage/Etienne/ ~/Storage/Magda\ and\ Etienne/ ~/Containers/)
      REMOTE_SEARCH_DIRS=()
    '';
}
