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

let 
  cfg = config.jade.desktop.mail;
  imap = {
    host = "imap.migadu.com";
    port = 993;
  };
  smtp = {
    host = "smtp.migadu.com";
    port = 465;
    tls.enable = true;
  };
in with lib; {
  options.jade.desktop.mail = {
    enable = mkEnableOption "Enable thunderbird mail stuff";
  };
  config = mkIf cfg.enable {
    home-manager.users.jade = { pkgs, ... }: {
      accounts.email.accounts = {
        "Jade" = rec {
          inherit imap smtp;
          address = "jade@schrottkatze.de";
          userName = address;
          realName = "Jade";
          thunderbird.enable = true;
          primary = true;
        };
        "Logins" = rec {
          inherit imap smtp;
          address = "logins@schrottkatze.de";
          userName = address;
          realName = "Logins";
          thunderbird.enable = true;
        };
        "Contact" = rec {
          inherit imap smtp;
          address = "contact@schrottkatze.de";
          userName = address;
          realName = "Jade";
          thunderbird.enable = true;
        };
        "Schule" = rec {
          inherit imap smtp;
          address = "schule@schrottkatze.de";
          userName = address;
          realName = "Jade";
          thunderbird.enable = true;
        };
        "Admin" = rec {
          inherit imap smtp;
          address = "admin@schrottkatze.de";
          userName = address;
          realName = "admin";
          thunderbird.enable = true;
        };
        "CatchAll" = rec {
          inherit imap smtp;
          address = "catchall@schrottkatze.de";
          userName = address;
          realName = "Catch all";
          thunderbird.enable = true;
        };
      };
      programs.thunderbird = {
        enable = true;
        profiles.jade = {
          isDefault = true;
        };
      };
    };
  };
}
