# ============================================================================
# NixOS Modules Export
# ============================================================================
# This file exposes host types and software configurations as reusable NixOS
# modules that can be imported by external flakes or configurations.
#
# Usage in another flake:
#   # Full host type configurations (includes hardware + software + system config)
#   inputs.athenix.nixosModules.nix-desktop
#   inputs.athenix.nixosModules.nix-laptop
#
#   # Software-only configuration (for custom hardware setups)
#   inputs.athenix.nixosModules.sw

{ inputs }:
# Expose hardware type modules from hw/ directory
# This returns an attribute set like: { nix-desktop = ...; nix-laptop = ...; nix-lxc = ...; }
let
  hostTypes = import ../hw { inherit inputs; };
in
{
  # Software configuration module - main module with all athenix.sw options
  # Use athenix.sw.type to select profile: "desktop", "tablet-kiosk", "headless", "stateless-kiosk"
  hw = hostTypes;
  sw =
    {
      inputs,
      ...
    }@args:
    (import ../sw/default.nix (args // { inherit inputs; }));
}
