{ lib, config, pkgs, ... }:
let
  cfg = config.users.eve;
in
{
  options.users.eve = {
    isFullUser = lib.mkEnableOption "eve";
  };

  config = {
    sops.secrets = lib.mkIf cfg.isFullUser {
      "passwords/eve" = {
        neededForUsers = true;
        # sopsFile = ../secrets.yaml;
      };
    };

    users.groups.eve = {};

    users.users.eve = lib.mkMerge [
      {
        uid = 1002;
        description = "Eve";
        group = "eve";
      }

      (
        if cfg.isFullUser then {
          isNormalUser = true;
          extraGroups = [ "networkmanager" "users" ];

          hashedPasswordFile = config.sops.secrets."passwords/eve".path;

          packages = with pkgs; [
            firefox
            bitwarden
            discord
            makemkv
            signal-desktop
          ];
        } else {
          isSystemUser = true;
        }
      )
    ];
  };
}