local mirko = import "../../kube/mirko.libsonnet";
local kube = import "../../kube/kube.libsonnet";

local smsgw = import "smsgw.libsonnet";
local ldapweb = import "ldapweb.libsonnet";
local teleimg = import "teleimg.libsonnet";

{
    hswaw(name):: mirko.Environment(name) {
        local env = self,
        local cfg = self.cfg,

        cfg+: {
            smsgw: smsgw.cfg,
            ldapweb: ldapweb.cfg,
            teleimg: teleimg.cfg,
        },

        components: {
            smsgw: smsgw.component(cfg.smsgw, env),
            ldapweb: ldapweb.component(cfg.ldapweb, env),
            teleimg: teleimg.component(cfg.teleimg, env),
        },
    },

    prod: self.hswaw("hswaw-prod") {
        cfg+: {
            smsgw+: {
                secret+: {
                    twilio_token: std.base64(std.split(importstr "secrets/plain/prod-twilio-token", "\n")[0]),
                },
                webhookFQDN: "smsgw-webhook-prod.hswaw.net",
            },
            ldapweb+: {
                webFQDN: "profile.hackerspace.pl",
            },
            teleimg+: {
                webFQDN: "teleimg.hswaw.net",
                secret+: {
                    telegram_token: std.base64(std.split(importstr "secrets/plain/prod-telegram-token", "\n")[0]),
                },
            },
        },
    },
}
