{
  lib,
  config,
  pkgs,
  inputs,
  ...
}:
with lib;
with lib.custom; let
  cfg = config.sites.cv;
in {
  options.sites.cv = with types; {
    enable = mkBoolOpt false "Enable CV site";

    domain = mkStringOpt "cv.zackster.zip" "The domain for the site";
  };

  config = mkIf cfg.enable {
    warnings =
      lib.optional (!config.services.nginx.enable)
      "CV site is enabled, but it depends on Nginx which is not enabled.";

    services.nginx.virtualHosts.${cfg.domain} = {
      forceSSL = true;
      enableACME = true;
      locations."/" = {
        root = "${inputs.resume.packages.${pkgs.system}.default}";
      };
      extraConfig = ''
        index resume.pdf;
      '';
    };
  };
}
