{ config, lib, ... }:

with lib;
let
  cfg = config.pub-solar.core;
in
{
  imports = [
    ./boot.nix
    ./hibernation.nix
    ./fonts.nix
    ./i18n.nix
    ./networking.nix
    ./nix.nix
    ./packages.nix
    ./services.nix
  ];

  options.pub-solar.core = {
    lite = mkOption {
      description = ''
        Enable a lite edition of core with less default modules and a reduced package set.
      '';
      default = false;
      type = types.bool;
    };
  };

  config = {
    pub-solar = {
      audio.enable = mkIf (!cfg.lite) (mkDefault true);
      crypto.enable = mkIf (!cfg.lite) (mkDefault true);
      devops.enable = mkIf (!cfg.lite) (mkDefault true);

      terminal-life = {
        enable = mkDefault true;
        lite = cfg.lite;
      };
    };
  };
}