{ config, lib, pkgs, ... }:

{
  imports = [
    ./topology.nix
    ./network/interfaces.nix
    ./network/vlans.nix
    ./bgp/default.nix
    ./routing/static.nix
  ];

  options.nix-nos = {
    enable = lib.mkEnableOption "Nix-NOS network operating system modules";

    version = lib.mkOption {
      type = lib.types.str;
      default = "0.1.0";
      readOnly = true;
      description = "Nix-NOS version";
    };
  };

  config = lib.mkIf config.nix-nos.enable {
    # Global assertions
    assertions = [
      {
        assertion = pkgs.stdenv.isLinux;
        message = "Nix-NOS is only supported on Linux systems";
      }
    ];
  };
}
