. $PSScriptRoot\configuracoesMicrouniversoWeb.ps1
. $PSScriptRoot\validacoes\executarValidacoes.ps1
. $PSScriptRoot\configurarMuDllRest.ps1
. $PSScriptRoot\executarScriptPython.ps1
. $PSScriptRoot\_echo.ps1



function global:mu.executarInstalacaoLinux() {
    param(
        [Parameter(Mandatory = $true)]
        [string]
        $enderecoArquivoConfiguracao,

        [Parameter(Mandatory = $true)]
        [bool]
        $suprimirConfirmacoes,

        [Parameter(Mandatory = $false)]
        $enderecoChavePublica,

        [Parameter(Mandatory = $false)]
        $senha
    )

    $diretorioScriptsImplantacao = $PSScriptRoot
    $python = "c:\microuniversoWeb\python\python.exe"

    _echo "Carregando configuracoes"

    $configuracoes = mu.configuracoesMicrouniversoWeb.obter $enderecoArquivoConfiguracao -senha $senha

    _echo "Configuracoes carregadas"

    _echo "Executando validacoes"

    mu.executarValidacoes $configuracoes $enderecoArquivoConfiguracao $diretorioScriptsImplantacao

    _echo "Validacoes executadas"


    _echo "Enterprise"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_api_enterprise.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Enterprise: $LastExitCode"
        exit $exitCode
    }


    _echo "Microkafka"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_microkafka.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Microkafka: $LastExitCode"
        exit $exitCode
    }


    _echo "MuDllRest"

    mu.muDllRest.configurarMuDllRest $configuracoes $enderecoArquivoConfiguracao $diretorioScriptsImplantacao


    _echo "CentralDeCadastros"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_central_de_cadastros.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Central De Cadastros: $LastExitCode"
        exit $exitCode
    }


    _echo "API Gateway"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_api_gateway.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode API Gateway: $LastExitCode"
        exit $exitCode
    }


    _echo "Intercompany"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_intercompany.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Intercompany: $LastExitCode"
        exit $exitCode
    }


    _echo "Coleta Preco"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_coleta_preco.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Coleta Preco: $LastExitCode"
        exit $exitCode
    }


    _echo "Cassini"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_cassini.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Cassini: $LastExitCode"
        exit $exitCode
    }


    _echo "Storybooks"

    _echo "Storybook do Vendas"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_storybook_vendas.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Storybook do Vendas: $LastExitCode"
        exit $exitCode
    }

    _echo "Storybook da Central de Cadastros"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_storybook_central_de_cadastros.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Storybook da Central de Cadastros: $LastExitCode"
        exit $exitCode
    }


    _echo "Pesquisa De Produto"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_pesquisa_de_produto.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Pesquisa De Produto: $LastExitCode"
        exit $exitCode
    }


    _echo "Storybook da Pesquisa de Produto"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_storybook_pesquisa_de_produto.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Storybook da Pesquisa de Produtos: $LastExitCode"
        exit $exitCode
    }


    _echo "Storybook Intercompany"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_storybook_intercompany.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Storybook Intercompany: $LastExitCode"
        exit $exitCode
    }


    _echo "Central de Relatorios"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_central_de_relatorios.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Central de Relatorios: $LastExitCode"
        exit $exitCode
    }


    _echo "Storybook da Central de Relatorios"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_storybook_central_de_relatorios.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Storybook da Central de Relatorios: $LastExitCode"
        exit $exitCode
    }


    _echo "Api MuWhatsapp"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_mu_whatsapp_api.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Api MuWhatsapp: $LastExitCode"
        exit $exitCode
    }


    _echo "Proxy Https Linux"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_proxyHttpsLinux.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Proxy Https Linux: $LastExitCode"
        exit $exitCode
    }


    _echo "Configuracoes Web"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_configuracoes_web.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Configuracoes Web: $LastExitCode"
        exit $exitCode
    }


    _echo "Limpeza Imagens Docker"

    $exitCode = mu.executarScriptPython -script "$diretorioScriptsImplantacao\scriptsPython\configurar_limpeza_imagens_docker.py" -argumentos "$enderecoArquivoConfiguracao $diretorioScriptsImplantacao"

    if ($exitCode -ne 0) {
        _echo "exitCode Limpeza Imagens Docker: $LastExitCode"
        exit $exitCode
    }

    _echo "FIM (Linux)"
}


function global:mu.executarInstalacaoLinux.test() {
    $ErrorActionPreference = 'Stop'

    $enderecoArquivoConfiguracao = "C:\microuniversoWeb\microuniversoWeb.yaml"
    $senha = "123"
    $enderecoChavePublica = "C:\TrabalhoWeb\ScriptsDeploy\scripts_implantacao\microuniverso.pubkey"

    mu.executarInstalacaoLinux  -enderecoArquivoConfiguracao $enderecoArquivoConfiguracao `
                                -suprimirConfirmacoes $true `
                                -enderecoChavePublica $enderecoChavePublica `
                                -senha $senha
}
