# SPDX-FileCopyrightText: 2024 Ryan Lahfa <ryan.lahfa@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2

{
  modulesPath,
  sourcePkgs,
  ...
}:
{
  imports = [
    "${modulesPath}/wlan.nix"
    "${modulesPath}/network"
    "${modulesPath}/hostapd"
    "${modulesPath}/ssh"
    "${modulesPath}/ntp"
    "${modulesPath}/vlan"
    "${modulesPath}/bridge"
    "${modulesPath}/jitter-rng"
    "${modulesPath}/pki"
    "${modulesPath}/ubus"
    # System-level configuration
    ./system.nix
    # Configures our own WLAN.
    ./wlan.nix
    # Configures our LAN interfaces, e.g. bridge + VLANs.
    ./lan.nix
    # Configures our IPv4/IPv6 addresses, e.g. DHCPv4 on VLAN 0, SLAAC on VLAN 3001.
    ./addresses.nix
    # Configures a basic local DNS.
    ./dns.nix
    # Configures our management layer, e.g. SSH server + DGNum FAI keys.
    ./management.nix
    # Configures our recovery system, e.g. a levitation script.
    ./recovery.nix
    # Metadata on the system for field recovery.
    ./metadata.nix
    # TODO: god that's so a fucking hack.
    (import "${modulesPath}/../devices/zyxel-nwa50ax").module
  ];

  hostname = "ap01-prototype";
  nixpkgs.source = sourcePkgs.path;
}