{
  inputs,
  config,
  lib,
  pkgs,
  system,
  ...
}:
let
  cfg = config.suites.nas;
in
{
  imports = [
    ./jellyfin.nix
    ./kavita.nix
  ];
  options.suites.nas.enable = lib.mkOption {
    type = with lib.types; uniq bool;
    default = false;
    description = "Enable Preconfigured NAS Config";
  };
  options.suites.nas.domain = lib.mkOption {
    type = with lib.types; string;
    default = "localhost";
    description = "NAS Reachable Domain Name";
  };
  options.suites.nas.media.enable = lib.mkOption {
    type = with lib.types; uniq bool;
    default = true;
    description = "Enable Media Servers";
  };
  options.suites.nas.media.folder = lib.mkOption {
    type = with lib.types; str;
    default = "/home/media/media";
    description = "Media Root Directory";
  };

  # Media Config
  config = lib.mkIf (cfg.enable && cfg.media.enable) {

    # Media Defaults
    suites.nas.media.jellyfin.enable = true;
    suites.nas.media.kavita.enable = false;

    # Create Media User
    users.groups.media = {};
    users.users.media = {
      isSystemUser = true;
      createHome = true;
      description = "Media User";
      group = "media";
      home = "/home/media";
    };

  };


}