{ config, lib, ... }:
let
  cfg = config.mj.services.minidlna;
in
{
  options.mj.services.minidlna = with lib.types; {
    enable = lib.mkEnableOption "Enable minidlna";
    paths = lib.mkOption { type = listOf path; };
  };

  config = lib.mkIf cfg.enable {
    services.minidlna = {
      enable = true;
      openFirewall = true;
      settings = {
        media_dir = cfg.paths;
        friendly_name = "${config.networking.hostName}.${config.networking.domain}";
        inotify = "yes";
      };
    };

    systemd.services.minidlna = {
      serviceConfig = {
        ProtectSystem = "strict";
        ProtectHome = "tmpfs";
        BindReadOnlyPaths = cfg.paths;
      };
    };

  };

}