# -*- mode: snippet -*-
# name: podgroup
# key: podgroup
# --
{ config, lib, ... }:
with lib;
with lib.my;

let
  dataDir = "/var/lib/${1:serviceName}";
  publicPort = ${2:port};
  cfg = config.modules.services.media.${1:serviceName};
in
{
  options.modules.services.media.${1:serviceName} = {
    enable = mkBoolOpt false;
  };

  config = mkIf cfg.enable {
    system.activationScripts.${1:serviceName} = stringAfter [ "var" ] ''
      ${3:activationScript}
    '';

    modules.podgroups.pods.${1:serviceName} = {
      port = "${toString publicPort}:2342";

      containers.${1:serviceName} = {
        ${4:containerConfig}
      };
    };

    modules.services.reverseProxy.proxies.${1:serviceName} = {
      publicPort = publicPort;
      auth = false;
    };
  };
}
