Salve, Deus da beleza! Continuando nossa saga aqui no Domain Dream Design, nesse capítulo nós vamos fazer todas as integrações necessárias para que esse core esteja integrado com o framework do Nest. E o que é interessante é que durante todo o nosso módulo aqui na prática, nós não precisamos de nada dele, apesar de ele estar aqui, ele serviu apenas como referência aqui com a configuração de TypeScript, etc. Para a gente poder trabalhar em cima somente dessa pasta, mas a gente não precisou de nenhum artefato, nada do net. Então, agora vamos fazer essa integração e essa visão que a gente tem aqui do core, ela é interessante, porque é um software à parte. O nosso framework vai depender do core e não o contrário. Se eu quiser pegar esse core e jogar para um outro projeto, trabalhar com Express ou qualquer outro lib, é assim, e a gente vai ter esse mesmo comportamento para as outras linguagens. Se você está trabalhando com Java, com .NET, quando você faz essa construção aqui, você pode integrar com qualquer framework que você quiser. Então, vamos começar aqui pelo banco de dados. Eu vou usar o npx-nest, uma vez que a gente já tem lá o arroba nest.js barra cli, você pode fazer até a instalação global, se você quiser. Então, npx nest. Eu quero gerar alguns artefatos aqui. Vamos começar pelo banco de dados. Vou chamar o módulo de database, porque a gente configura ali toda a questão do microRM. Então, agora, eu tenho aqui o módulo de database e a gente vai fazer as configurações do microRM aqui. A gente pode até copiar do teste de order service, que é basicamente isso aqui. São essas configurações. Mas aqui dentro a gente vai importar, porque lá atrás a gente instalou um módulo que se integra com o Lash. Sempre que eu quero integrar alguma coisa com o Lash, é via módulo. Então, aqui vai ser micro-urm-module-or-root. ser micro-urm-module-or-root. E vou colocar aquelas configurações aqui. São as mesmas configurações. A gente vai ter o database, o host, a porta, o usuário, a senha, uma SQL e o forçamento de usar o construtor. o forçamento de usar o construtor. E aqui tem que se importar todos os esquemas. Aqui nós temos todos os esquemas relacionados. Tá? Ficou de bola. Maravilha. A gente ainda vai ter que fazer a importação dele num módulo que a gente vai determinar aqui para os eventos, que vai ser uma importação for fit. Então, essa importação aqui vai ser para toda a nossa aplicação. Eu quero ativar aqui também a questão do Unit of Work. Não tem lugar melhor do que aqui no próprio database para poder fazer essa configuração. Na parte de Providers do NET, nós configuramos ali todos os serviços, toda a malha de serviços que vão ter dentro do projeto. E como a gente não tem uma abstração concreta, ou seja, sempre ali a gente está trabalhando com a interface, nós vamos prover aqui o serviço com o mesmo nome da interface, eu não posso passar a interface aqui para falar que eu vou capturar esse serviço por ela, porque ela é descartada na compilação do TypeScript. Então, fica um nome como string. E uma boa prática com o nest é colocar alguns tokens. Eu poderia colocar isso aqui em uma variável e usar nesse lugar, porque aí eu não fico... Toda vez que eu quiser importar em outros lugares, eu utilizo também essa variável. A gente vai pegar o EntityManager, vou colocar aqui do MySQL, pode ser do MySQL, e aquele new que a gente faz naquela classe lá do microRM unit of work, ela vai vir aqui. Então, a gente recebe o em aqui, porque nós determinamos para ser injetado. Então, isso aqui é o factory method. Vou devolver um new microRM. Como que a gente colocou o nome da essa aqui, passando o em show de bola então isso aqui a gente quer que outros utilizem nós temos que habilitar isso no módulo para que outros módulos consigam utilizar o Unite of Work. E como eu não quero ficar fazendo a importação de módulos, não vou entrar em muitos detalhes de como o NET funciona, porque tudo é modular, eu teria que ficar importando esse database até em outros lugares para poder usar esse Unite of Work, vamos colocar aqui um decorator global para tornar ele global na aplicação. Quando eu criei esse módulo, há uns minutos atrás, o Ness já colocou ele aqui no módulo principal, então esse Unit of Work agora, nosso, ele está acessível a qualquer módulo do nosso sistema. Então, agora a gente consegue acessá-lo facilmente, depois nós vamos fazer os construtores também para os Application Services. Mas a gente pode até aproveitar aqui o tempo e já fazer a criação de um outro módulo. Se eu quero trabalhar ali com a parte de eventos, então eu vou criar o módulo de eventos. Não confundir o módulo de eventos do NEST com o módulo de eventos do Core. Então, dentro aqui do event module, nós vamos colocar um import também. Aí é necessário colocar o microRM module for feature. E aqui nós importamos todas as entidades, todos os esquemas no caso, que vão ser utilizados nesse módulo. Como nós temos esse core domain que vai acabar utilizando tudo, então é só copiar essas mesmas entidades para cá e fazer a importação delas. Já tem um monte de coisa. Pronto. Então, está importado. Se a gente pode fazer mais alguma coisa. Está bom essa questão aqui do banco de dados. A gente já tem algumas coisas feitas. A gente vai construindo pouco a pouco nas próximas aulas também para poder ficar bem leve, para vocês irem entendendo o que é necessário. A primeira coisa é habilitar o banco de dados. Então, pessoal, vamos continuar nossa saga. É isso aí e até a próxima.