{ config, lib, pkgs, ...}:
let
  inherit (lib) mkEnableOption mkIf;
  cfg = config.nixfiles.programs.syncthing;
in
{
  options.nixfiles.programs.syncthing = {
    enable = mkEnableOption "Syncthing configuration";
  };

  config = mkIf cfg.enable {
    services.syncthing = {
      enable = lib.mkDefault true;
      openDefaultPorts = lib.mkDefault true;
      user = lib.mkDefault "nullbite";
      dataDir = let
        user = config.services.syncthing.user;
        dir = config.users.users.${user}.home;
      in lib.mkDefault dir;
    };
  };
}