rapida-partner 1.16.3 → 1.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rapida-partner",
3
- "version": "1.16.3",
3
+ "version": "1.16.4",
4
4
  "main": "dist/index.js",
5
5
  "module": "index.ts",
6
6
  "files": [
package/rapidaObject.json CHANGED
@@ -1 +1 @@
1
- {"id":"movieBackoffice","title":"Movie Backoffice","description":"Sistema de gerenciamento para filmes e personagens.","flow":"backofficeOpenedWithoutPermissions","businessPlan":{"businessValue":"Gerenciar e otimizar as operações do Movie.","targetMarket":"Empresas que utilizam o Movie para gerenciar sugestões e feedbacks.","benchmarkings":"Análise de sistemas de gerenciamento de feedbacks.","legalIssues":"Conformidade com leis de proteção de dados.","ethicalIssues":"Garantir a privacidade dos usuários.","afterSales":"Suporte contínuo e atualizações regulares.","monetization":"Assinaturas mensais para acesso ao sistema."},"frontend":{"framework":"react","uiKit":"flowbite"},"backend":{"framework":"nest","jwtSecret":"Kunl4t3kw1llN3v3rD13M0th3rFudg3r","database":{"provider":"mongodb","connectionString":"mongodb+srv://kunlatek:Kunl4t3kw1llN3v3rD132025@cluster0.b0pfr.mongodb.net/movie-v1","credentials":{"databaseName":"movie-v1","username":"kunlatek","password":"Kunl4t3kw1llN3v3rD132025","host":"cluster0.b0pfr.mongodb.net"}},"storage":{"provider":"gcs","credentials":{"clientEmail":"rapida-personal@rapida-personal-projects.iam.gserviceaccount.com","privateKey":"-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCDEQRUfKKxYUj\nVorX+aiEHhPRrrcNHVw40qq517wP7IgIp2UlA5uf0rV2cdn1njA9RMQxp6l7Qt+0\nBZg1JZM8l9Uv1SckRlkKST4k2B3MDOEl1riAPxIE/jBCUT9l2DCbir0Nu+CqGhGD\nUXOMpF0XWYL9GIBRo8Paf//yU0b86VBDfQGgnFkMKFq3bVDkPd8hQTBgTFT5F1Rh\nDcoUpAp/n3SYxkAK1V7Je+fnChF1DQPj8Nd5CLm4DsCM1B+HtaegsaE1ulXwhi1J\nlIFFGv49g0f2qOs3hytTPt0d8UpxFd9/Oq0tmcjuzK4bYzJdVZZPf+4xflHz+6R8\n2o7grTeDAgMBAAECggEABHdsz6s/tnMCdARHcN41w0i/8wke/IXK/CHZPSrakNFE\ndlKIEPiKyfx7Ic1QE4e/G4HsNCpkS8qHxKiGTt7dCz2BcjbpTjvyS7rQ298/nFVF\nj23oVEdfXk8NhFFDcNAvmjzwyhKjgrbT5V5oFvonjGSKj9HTDk4DMZHVrdm93g9k\nZ9XJBVeLh14/rkZLMDZ9DVjUMiQ6xElMH3IQD4MwEcul9eqM8bs2APgZlzzfO76m\nAuq20l4JqOcJJl8wzC7z12eNDNJrQNh2sHsT9zV5PabfNoQhnU6fDvKr0PG0PGRR\nS5PTDeiMY47rJVPgwxthSke3abtdgA9SNie8OqZl6QKBgQD+yFT+ndFYKvHg2WNi\ns0jK0QqFQB84LQtOX2YhQ0137mtSv0z7wO90e28dfUqsjax4DxPMp+AW0cC3SBEv\n2T8/rJrgzGucPt4Jzml5HYl2NgCkNAtHIJ1vtXJdX5d3WmYhH7cUTPmV6nMS8OlF\nheSyfudCiOo89phQf0pI6lhQKwKBgQDC+aOU2cxMVA5VH0txX0G9tPQjBvzY09ev\nVLGrxlmdAcQVXYCWdoESEfTv3E4JPklAz5B2/XnALxM5ewJgjoP6buOCJrQcgJNC\nSsG9Ll3zF4c+opFmaYTzcAY9HWHa4Pc+GAxFrrcPGzVBLjSrl7FPdykkPiBNxNJa\nnOzzrL4yCQKBgQC7b/pHjycx6/YiawuY0zjcLMnGmhPdqhXFRJ3IHtFhR/+g0qf6\nFkiTszNdyI0lQNz/PmhciaxsXUegDt7GCtdjKsKOWxVXz1BeeoJR3g8A7l2ub7NU\nUoRAaIaIdwjhf5nfCIwR3UdIqUCbUKzsvsIvJvlPk5Zv3yLTJbIqzmzGHQKBgBiQ\nnUSGwE+pk3i0DaxGBSFiqBO1sKuc3SLQ9+WdgvLeIxdSBX5vhcmCC6sgxZAykcYh\noKDtRKarB7AJSH5j1kr6J53hRHYG2QbUJl6wddPH1hlVIB6YEtEc/xw6FHcgOuZO\n31T0M0oq8mW47Zfk78kESWGwlh9WOe6CsPPugrQJAoGBAP3o8DqH1Pb7vlowsz78\n8fsCuydEJgsPSwHHqBveeUHBQLGSiGIIKRXWR1a13mWXQTqQkROZCwvVCMX6FHZZ\nKv3rzgsTkaaoqM0RVLcQSSDoyu2yP/JJv+VYsvMf2S3dUkDAeYDZFizPeFF42t92\n+MSId41OkBvJ/JvqsBWlWFYK\n-----END PRIVATE KEY-----\n","projectId":"rapida-personal-projects"},"publicBucketName":"rapida-public-files","privateBucketName":"rapida-private-files"},"logging":{"discordWebhookUrl":"https://discord.com/api/webhooks/1370095507959054429/Ay8pIM-sinbjsLMAAWGrRDFT-oyBD3xu7yB2Ke0Bx6RxpKN882taB4_tkD2xsdk8MirZ"},"email":{"smtpUser":"noreply.rapida@gmail.com","smtpPass":"ekgwxlazvjjllfxf","smtpFrom":"noreply@kunlatek.com"},"baseUrl":"http://localhost:5173"},"modules":[{"id":"movieModule","title":"Filme","icon":"movie","components":[{"title":"Gerenciar filme","userStory":"Como um usuário autorizado, eu quero usar o formulário de gerenciamento de filmes para cadastrar e editar filmes, incluindo a foto, o nome, a descrição, a data de lançamento, a pontuação no IMDb e os gêneros associados. Quero também ter a opção de adicionar e gerenciar episódios, incluindo seus títulos, descrições, datas de lançamento e personagens relacionados. Isso me permite manter um registro completo e detalhado do conteúdo audiovisual no sistema.","componentType":"form","id":"movieForm","guards":"isAuthorized","elements":[{"type":"tab","id":"movieTab","tabs":[{"id":"mainTab","title":"Principal","elements":[{"label":"Foto","type":"file","dataType":"text","name":"pictureFile","storageConfig":{"fileNameStrategy":"uuid","path":"movies","visibility":"public"}},{"type":"input","dataType":"text","label":"Nome","name":"name","isRequired":true},{"type":"input","dataType":"wysiwyg","label":"Descrição","name":"description","isRequired":true},{"type":"input","dataType":"date","label":"Data de lançamento","name":"releaseDate","isRequired":true},{"type":"input","name":"imdbRating","label":"Pontuação do IMDb","dataType":"number","isRequired":true},{"type":"autocomplete","dataType":"text","label":"Gêneros","name":"movieGenres","optionsApi":{"endpoint":"/api/movie-genres","labelField":["name"],"valueField":"_id","paramsToFilter":["name"],"paramType":"query","relatedEntity":"MovieGenre"},"isMultiple":true,"isRequired":true},{"type":"input","name":"link1","label":"Link 1","dataType":"text","isRequired":true},{"type":"input","name":"link2","label":"Link 2","dataType":"text"},{"type":"input","name":"link3","label":"Link 3","dataType":"text"}]},{"id":"castTab","title":"Elenco","elements":[{"label":"Ator / Atriz","type":"array","name":"actors","elements":[{"label":"Ator","type":"autocomplete","dataType":"uniqueidentifier","name":"actorId","optionsApi":{"endpoint":"/actors","labelField":["name"],"valueField":"_id","paramsToFilter":["name"],"paramType":"query","relatedEntity":"Actor"},"isRequired":true},{"label":"Personagem","type":"autocomplete","dataType":"uniqueidentifier","name":"charactersId","isMultiple":true,"optionsApi":{"endpoint":"/characters","labelField":["characterName"],"valueField":"_id","paramsToFilter":["characterName"],"paramType":"query","relatedEntity":"Character"},"isRequired":true}]}]}]}],"contracts":[{"id":"movies","endpoint":"/movies","actions":["create","update","getById","get","softDelete"],"request":{"entity":"Movie","description":"Represents a movie or TV series in the system.","fields":[{"name":"id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"pictureFile","dataType":"nvarchar","isRequired":false},{"name":"name","dataType":"nvarchar","isRequired":true},{"name":"description","dataType":"longtext","isRequired":true},{"name":"releaseDate","dataType":"date","isRequired":true},{"name":"imdbRating","dataType":"decimal","isRequired":true},{"name":"movieGenres","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"MovieGenre","connectionAttribute":"_id","relationship":"many-to-many"}},{"name":"link1","dataType":"nvarchar","isRequired":true},{"name":"link2","dataType":"nvarchar","isRequired":false},{"name":"link3","dataType":"nvarchar","isRequired":false}]}}],"flowChart":{"actors":[{"name":"Usuário","actionsWithElements":[{"verb":"create"},{"verb":"update"},{"verb":"get"},{"verb":"getById"},{"verb":"softDelete"}]}]}},{"componentType":"list","id":"movieList","title":"Lista de filmes","guards":["isAuthorized"],"dataSource":{"endpoint":"/movies","paramType":"query","hasAuthentication":true},"listItems":[{"property":"pictureFile","type":"image","label":"Cartaz","dataType":"nvarchar"},{"property":"name","type":"title","label":"Nome","dataType":"nvarchar"},{"property":"releaseDate","type":"subtitle","label":"Data de lançamento","dataType":"datetime2"},{"property":"movieGenres.name","type":"subtitle","label":"Gênero","dataType":"nvarchar"},{"property":"description","type":"description","label":"Descrição","isHtml":true,"dataType":"longtext"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/movie-form","propertiesAsQueryParam":["_id"]}}},{"label":"Excluir","icon":"delete","action":{"link":{"endpoint":"/movie-list"},"request":{"endpoint":"/movies","verb":"softDelete","propertiesAsPathParam":["_id"],"dialog":{"title":"Excluir conteúdo","message":"Deseja realmente excluir esse conteúdo?"}}}}],"contracts":[{"id":"movies","endpoint":"/movies","actions":["create","update","getById","get","softDelete"],"request":{"entity":"Movie","description":"Represents a movie or TV series in the system.","fields":[{"name":"id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"pictureFile","dataType":"nvarchar","isRequired":false},{"name":"name","dataType":"nvarchar","isRequired":true},{"name":"description","dataType":"longtext","isRequired":true},{"name":"releaseDate","dataType":"datetime2","isRequired":true},{"name":"imdbRating","dataType":"float","isRequired":true},{"name":"movieGenres","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"MovieGenre","connectionAttribute":"_id","relationship":"many-to-many"}},{"name":"link1","dataType":"nvarchar","isRequired":true},{"name":"link2","dataType":"nvarchar","isRequired":false},{"name":"link3","dataType":"nvarchar","isRequired":false}]}}]},{"title":"Gerenciar gênero de filme","userStory":"Como um usuário autorizado, eu quero usar o formulário de gerenciamento de gênero de filme para criar e editar gêneros de filmes, fornecendo um nome e uma descrição para cada um. Isso me permite organizar e categorizar filmes de forma precisa no sistema.","componentType":"form","id":"movieGenreForm","guards":"isAuthorized","elements":[{"type":"input","dataType":"text","label":"Nome","name":"name","isRequired":true},{"type":"input","dataType":"wysiwyg","label":"Descrição","name":"description","isRequired":true}],"contracts":[{"id":"movieGenres","endpoint":"/movie-genres","actions":["create","get","getById","update","softDelete"],"request":{"entity":"movieGenres","description":"","fields":[{"name":"name","dataType":"text","isRequired":true,"maxSize":255},{"name":"description","dataType":"text","isRequired":true,"maxSize":255}]}}]},{"componentType":"list","id":"movieGenreList","title":"Lista de gêneros de filmes","guards":["isAuthorized"],"dataSource":{"endpoint":"/movie-genres","paramType":"query","hasAuthentication":true},"listItems":[{"property":"name","type":"title","label":"Nome","dataType":"nvarchar"},{"property":"description","type":"description","label":"Descrição","isHtml":true,"dataType":"longtext"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/movie-genre-form","propertiesAsQueryParam":["_id"]}}},{"label":"Excluir","icon":"delete","action":{"link":{"endpoint":"/movie-genre-list"},"request":{"endpoint":"/movie-genres","verb":"softDelete","propertiesAsPathParam":["_id"],"dialog":{"title":"Excluir conteúdo","message":"Deseja realmente excluir esse conteúdo?"}}}}],"contracts":[{"id":"movieGenres","endpoint":"/movie-genres","actions":["create","get","getById","update","softDelete"],"request":{"entity":"movieGenres","description":"","fields":[{"name":"name","dataType":"text","isRequired":true,"maxSize":255},{"name":"description","dataType":"text","isRequired":true,"maxSize":255}]}}]},{"title":"Gerenciar episódio","componentType":"form","id":"movieEpisodeForm","elements":[{"label":"Episódio","name":"episodes","type":"array","elements":[{"label":"Título do episódio","name":"episodeTitle","type":"input","dataType":"text","isRequired":true},{"label":"Descrição do episódio","name":"episodeDescription","type":"input","dataType":"wysiwyg"},{"label":"Data de lançamento do episódio","name":"episodeReleaseDate","type":"input","dataType":"date"},{"name":"charactersId","label":"Personagens no episódio","type":"autocomplete","dataType":"text","optionsApi":{"endpoint":"/characters","labelField":["name"],"valueField":"_id","paramsToFilter":["name"],"paramType":"query","relatedEntity":"Character"}}]}],"contracts":[{"id":"moviesEpisodes","endpoint":"/movies-episodes","actions":["create","get","getById","update","softDelete"],"request":{"entity":"MovieEpisode","description":"Represents an episode of a TV series or show.","fields":[{"name":"_id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"movieId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"Movie","connectionAttribute":"_id","relationship":"one-to-many"}},{"name":"title","dataType":"nvarchar","isRequired":true},{"name":"description","dataType":"longtext","isRequired":true},{"name":"releaseDate","dataType":"datetime2","isRequired":true},{"name":"characters","dataType":"uniqueidentifier","isRequired":false,"foreignKey":{"entity":"Character","connectionAttribute":"_id","relationship":"many-to-many"}}]}}]},{"componentType":"list","id":"movieEpisodeList","title":"Lista de episódios de filmes","guards":["isAuthorized"],"dataSource":{"endpoint":"/movies-episodes","paramType":"query","hasAuthentication":true},"listItems":[{"property":"episodeTitle","type":"title","label":"Título","dataType":"nvarchar"},{"property":"episodeDescription","type":"description","label":"Descrição","isHtml":true,"dataType":"longtext"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/movie-episode-form","propertiesAsQueryParam":["_id"]}}},{"label":"Excluir","icon":"delete","action":{"link":{"endpoint":"/movie-episode-list"},"request":{"endpoint":"/movies-episodes","verb":"softDelete","propertiesAsPathParam":["_id"],"dialog":{"title":"Excluir conteúdo","message":"Deseja realmente excluir esse conteúdo?"}}}}],"contracts":[{"id":"moviesEpisodes","endpoint":"/movies-episodes","actions":["create","get","getById","update","softDelete"],"request":{"entity":"MovieEpisode","description":"Represents an episode of a TV series or show.","fields":[{"name":"_id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"movieId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"Movie","connectionAttribute":"_id","relationship":"one-to-many"}},{"name":"title","dataType":"nvarchar","isRequired":true},{"name":"description","dataType":"longtext","isRequired":true},{"name":"releaseDate","dataType":"datetime2","isRequired":true},{"name":"characters","dataType":"uniqueidentifier","isRequired":false,"foreignKey":{"entity":"Character","connectionAttribute":"_id","relationship":"many-to-many"}}]}}]}]},{"id":"actorModule","title":"Ator / Atriz","icon":"actor","components":[{"title":"Gerenciar ator / atriz","id":"actorForm","componentType":"form","guards":"isAuthorized","elements":[{"label":"Nome","name":"name","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Nome social","name":"socialName","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Data de nascimento","name":"birthDate","type":"input","dataType":"datetime2","isRequired":true},{"label":"Foto","name":"pictureFile","type":"file","dataType":"nvarchar","storageConfig":{"fileNameStrategy":"uuid","path":"actors","visibility":"public"}},{"label":"Biografia","name":"biography","type":"input","dataType":"longtext"}],"contracts":[{"id":"actors","endpoint":"/actors","actions":["create","get","getById","update","softDelete"],"request":{"entity":"Actor","description":"Represents an actor or actress in the system.","fields":[{"name":"id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"name","dataType":"nvarchar","isRequired":true},{"name":"socialName","dataType":"nvarchar","isRequired":true},{"name":"birthDate","dataType":"datetime2","isRequired":true},{"name":"pictureFile","dataType":"nvarchar"},{"name":"biography","dataType":"longtext"}]}}]},{"title":"Lista de atores / atrizes","componentType":"list","id":"actorList","guards":["isAuthorized"],"dataSource":{"endpoint":"/actors","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Nome","property":"name","type":"title","dataType":"nvarchar"},{"label":"Descrição","property":"biography","type":"description","isHtml":true,"dataType":"longtext"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/actor-form","propertiesAsQueryParam":["_id"]}}},{"label":"Excluir","icon":"delete","action":{"link":{"endpoint":"/actor-list"},"request":{"endpoint":"/actors","verb":"softDelete","propertiesAsPathParam":["_id"],"dialog":{"title":"Excluir projeto","message":"Deseja realmente excluir essa projeto?"}}}}],"contracts":[]}]},{"id":"characterModule","title":"Personagem","icon":"character","components":[{"title":"Personagem","userStory":"Como um usuário autorizado, quero usar o formulário de personagem para criar e editar personagens, fornecendo um nome, uma descrição, um tipo (como \"protagonista\" ou \"antagonista\") e um gênero para cada um. Isso me permite manter um registro detalhado e organizado dos personagens no sistema.","componentType":"form","id":"characterForm","guards":"isAuthorized","elements":[{"type":"input","dataType":"text","label":"Nome do personagem","name":"characterName","isRequired":true},{"label":"Foto do personagem","type":"file","dataType":"text","name":"characterImage","storageConfig":{"fileNameStrategy":"uuid","path":"characters","visibility":"public"}},{"type":"input","dataType":"wysiwyg","label":"Descrição do personagem","name":"characterDescription"},{"type":"select","label":"Tipo de personagem","name":"characterType","dataType":"text","options":[{"value":"protagonist","label":"Protagonista"},{"value":"antagonist","label":"Antagonista"},{"value":"hero","label":"Herói"},{"value":"villain","label":"Vilão"},{"value":"sidekick","label":"Ajudante"},{"value":"supporting","label":"Secundário"}]},{"type":"select","label":"Gênero do personagem","name":"characterGender","dataType":"text","options":[{"value":"male","label":"Masculino"},{"value":"female","label":"Feminino"},{"value":"other","label":"Outro"}]}],"contracts":[{"id":"characters","endpoint":"/characters","actions":["create","get","getById","update","softDelete"],"request":{"entity":"characters","description":"Represents a character in a story or narrative.","fields":[{"name":"id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"characterName","dataType":"nvarchar","isRequired":true},{"name":"characterImage","dataType":"nvarchar","isRequired":false},{"name":"characterDescription","dataType":"longtext","isRequired":false},{"name":"characterType","dataType":"nvarchar","enum":["protagonist","antagonist","hero","villain","sidekick","supporting"],"isRequired":false},{"name":"characterGender","dataType":"nvarchar","enum":["male","female","other"],"isRequired":false}]}}]},{"title":"Lista de personagens","componentType":"list","id":"characterList","guards":["isAuthorized"],"dataSource":{"endpoint":"/characters","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Nome","property":"characterName","type":"title","dataType":"nvarchar"},{"label":"Descrição","property":"characterDescription","type":"description","isHtml":true,"dataType":"longtext"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/character-form","propertiesAsQueryParam":["_id"]}}},{"label":"Excluir","icon":"delete","action":{"link":{"endpoint":"/character-list"},"request":{"endpoint":"/characters","verb":"softDelete","propertiesAsPathParam":["_id"],"dialog":{"title":"Excluir projeto","message":"Deseja realmente excluir essa projeto?"}}}}],"contracts":[{"id":"characters","endpoint":"/characters","actions":["get","getById"],"request":{"entity":"characters","description":"Represents a character in a story or narrative.","fields":[{"name":"id","dataType":"uniqueidentifier","isRequired":true,"isPrimaryKey":true},{"name":"characterName","dataType":"nvarchar","isRequired":true},{"name":"characterImage","dataType":"nvarchar","isRequired":false},{"name":"characterDescription","dataType":"longtext","isRequired":false},{"name":"characterType","dataType":"nvarchar","enum":["protagonist","antagonist","hero","villain","sidekick","supporting"],"isRequired":false},{"name":"characterGender","dataType":"nvarchar","enum":["male","female","other"],"isRequired":false}]}}]}]}],"styles":[{"themeName":"light","main":{"headerHeight":"60px","typography":{"fontFamily":"Arial, sans-serif","fontSize":"16px"},"colors":{"primary":"#4F46E5","primaryContrast":"#FFFFFF","secondary":"#6B7280","secondaryContrast":"#FFFFFF","background":"#FFFFFF","error":"#DC2626","success":"#16A34A","warning":"#D97706"},"shadows":{"boxShadow":"0 1px 3px rgba(0, 0, 0, 0.1)"},"borders":{"radius":"4px"},"components":{"input":{"text":"#111827","background":"#F9FAFB","border":"#D1D5DB","borderRadius":"4px","focusBorder":"#4F46E5","placeholder":"#9CA3AF","width":"248px"}},"spacing":"8px","maxWidth":"1200px","footerHeight":"60px"}}]}
1
+ {"title":"Rapida Backoffice","id":"rapidaBackoffice","flow":"backofficeOpenedAndPermissionsByComponent","description":"\n O projeto Rapida representa uma solução revolucionária no campo do desenvolvimento de software, atuando como uma ferramenta de automação para a geração de código. Projetado para facilitar e agilizar a criação de aplicações web e mobile, o Rapida permite que desenvolvedores e equipes de TI gerem rapidamente projetos completos, módulos específicos e componentes de interface do usuário, como listagens, formulários e dashboards com gráficos. Através da montagem de um objeto json bem estruturado que serve como combustível da \"engine\" que monta o código, podendo ser feito manualmente ou com uma simples requisição à Inteligência Artificial, descrevendo brevemente o produto que deseja, deixando por conta da ferramenta montar o \"objeto combustível\" ou de forma gráfica, através de sketches resultados de Design Sprint com símbolos nos elementos que ajudam a montar o \"objeto combustível\". \n\n Sua compatibilidade com diversas tecnologias, incluindo frameworks populares como Flutter e Angular no front-end, e NestJS e Spring Boot no back-end, torna a Rapida uma ferramenta versátil e adaptável, ideal para uma ampla gama de projetos de desenvolvimento.\n\n A principal inovação do Rapida reside em sua capacidade de reduzir drasticamente o tempo de desenvolvimento, promovendo uma padronização consistente e reduzindo os erros humanos no processo de codificação. Isso é especialmente valioso em um mercado onde a rapidez no lançamento de produtos e a eficiência operacional são cruciais para o sucesso comercial. Para startups e empreendedores, a Rapida oferece a capacidade de prototipar e testar ideias rapidamente, enquanto agências digitais e grandes corporações podem utilizar a ferramenta para acelerar a entrega de projetos complexos, mantendo a alta qualidade e a escalabilidade.\n\n Do ponto de vista comercial, o Rapida se posiciona em um mercado em expansão de automação de desenvolvimento de software, com um potencial significativo de crescimento. O aumento da demanda por soluções que permitem o desenvolvimento rápido e eficiente de aplicações posiciona o Rapida como um produto altamente atraente para investidores. Além disso, a tendência crescente em direção ao desenvolvimento de software low-code/no-code sugere um futuro promissor para a ferramenta, que poderia se estabelecer como líder nesse espaço inovador.\n\n Para investidores, a Rapida oferece uma oportunidade de investimento estratégico em uma ferramenta com potencial de alto retorno, dada sua relevância e necessidade no mercado atual de desenvolvimento de software. Com investimento e apoio, a Rapida tem potencial não apenas para capturar uma parcela significativa do mercado, mas também para influenciar a maneira como o software é desenvolvido globalmente, beneficiando-se da crescente busca por eficiência, rapidez e qualidade no desenvolvimento de software.\n ","businessPlan":{"businessValue":"\n - **Automatização do Desenvolvimento:** Rapida resolve o problema da lentidão e da complexidade no desenvolvimento de software, especialmente para projetos que seguem padrões ou estruturas semelhantes.\n \n - **Consistência e Padronização:** Ajuda a manter a consistência e a padronização em projetos de desenvolvimento, reduzindo erros humanos e variações indesejadas no código.\n \n - **Redução de Custo e Tempo:** Diminui significativamente o tempo e o custo associados ao desenvolvimento de novas funcionalidades, módulos ou mesmo projetos inteiros, agilizando o processo de ida ao mercado.\n \n - **Escalabilidade e Flexibilidade:** Facilita a escalabilidade e a flexibilidade no desenvolvimento de software, permitindo a rápida adaptação a novas tecnologias e requisitos.\n \n - **Geração Automatizada de Código:** Rapida oferece uma solução de geração de código automatizada, capaz de criar rapidamente projetos inteiros, módulos, componentes de UI como listas e formulários, e muito mais, com base em especificações definidas.\n \n - **Suporte a Múltiplas Tecnologias:** A ferramenta suporta diversas tecnologias populares, como Flutter e Angular, permitindo que os desenvolvedores gerem projetos em seus frameworks preferidos.\n \n - **Modularidade e Reusabilidade:** Promove a reusabilidade e modularidade, permitindo que componentes e módulos sejam facilmente adaptados e reutilizados em diferentes projetos.\n \n - **Interface Intuitiva e Configurável:** A interface e a configuração da ferramenta são projetadas para serem intuitivas, facilitando o uso por desenvolvedores com diferentes níveis de experiência.\n ","targetMarket":"\n - **Startups:** O Rapida é perfeito para startups que buscam desenvolver suas soluções de maneira eficiente e rápida. Como essas empresas geralmente operam com recursos e tempo limitados, a plataforma ajuda a acelerar o tempo de chegada ao mercado e a validar as ideias mais rapidamente. \n - **Desenvolvedores e equipes de desenvolvimento:** Para os desenvolvedores individuais e equipes que buscam otimizar seu fluxo de trabalho, o Rapida pode fornecer as ferramentas necessárias para automatizar partes do processo de codificação. Isso permite que eles se concentrem em aspectos mais complexos do desenvolvimento, melhorando a qualidade do produto final. \n - **Agências digitais:** As agências que desenvolvem uma grande quantidade de sites ou aplicações web para seus clientes podem se beneficiar do Rapida para acelerar o processo de desenvolvimento, mantendo um alto nível de qualidade.\n - **Empresas de médio e grande porte:** Empresas com projetos de software maiores e mais complexos podem usar o Rapida para garantir consistência de código e eficiência no desenvolvimento. Ele ajuda a minimizar erros e a manter a qualidade do código ao longo do tempo, mesmo à medida que as equipes crescem e mudam. \n - **Educadores e estudantes:** No ambiente acadêmico, o Rapida pode ser uma ferramenta útil para ensinar os princípios do desenvolvimento de software e para permitir que os alunos criem seus próprios projetos com facilidade. \n - **Desenvolvedores Freelancers:** O Rapida pode permitir que desenvolvedores freelancers atendam a mais clientes e entreguem seus projetos mais rapidamente, aumentando assim a sua capacidade de ganho. \n - **Prototipadores e Designers de UX/UI:** Profissionais que trabalham com prototipagem rápida e design de experiência do usuário podem se beneficiar da plataforma para tornar seus designs interativos e testar ideias de forma eficiente.\n ","benchmarkings":"\n - **Ferramentas de Geração de Código**: Avaliar outras ferramentas de geração de código, como Yeoman, JHipster ou Rails Scaffold, para entender suas funcionalidades, limitações e como o Rapida-x se compara a eles.\n - **IDEs e Extensões de Desenvolvimento**: Investigar as funcionalidades oferecidas por ambientes de desenvolvimento integrado (IDEs) e suas extensões, que também visam aumentar a produtividade dos desenvolvedores.\n - **Frameworks e Bibliotecas Populares**: Analisar como frameworks populares (como React, Vue.js) e bibliotecas (como Bootstrap, Material-UI) são utilizados no desenvolvimento atual e como o Rapida pode complementar ou integrar-se a esses ecossistemas.\n - **Tendências de Desenvolvimento de Software**: Ficar atento às tendências emergentes no desenvolvimento de software, como desenvolvimento low-code/no-code, para alinhar o Rapida às necessidades futuras do mercado.\n ","legalIssues":"\n - **Direitos Autorais e Licenciamento**: Deve-se considerar a natureza do código gerado pelo Rapida em termos de direitos autorais. Isso inclui decidir sobre as licenças sob as quais o código gerado será distribuído, e garantir que não haja violação dos direitos autorais de terceiros.\n - **Proteção de Propriedade Intelectual**: A tecnologia e metodologia empregadas no Rapida podem ser protegidas por direitos de propriedade intelectual, como patentes ou direitos autorais, dependendo da jurisdição e da natureza da inovação.\n - **Conformidade com Normas de Software**: Garantir que o código gerado esteja em conformidade com normas e regulamentos locais e internacionais, especialmente em setores regulados como financeiro, saúde e telecomunicações.\n - **Privacidade e Proteção de Dados**: Se o Rapida processar dados pessoais, deve estar em conformidade com leis de proteção de dados como GDPR na Europa, LGPD no Brasil, ou CCPA na Califórnia.\n ","ethicalIssues":"\n - **Transparência no Uso de Dados**: Se houver coleta de dados dos usuários, deve-se ser transparente sobre como esses dados são usados, armazenados e protegidos.\n - **Qualidade e Segurança do Código Gerado**: Garantir que o código gerado seja não apenas funcional, mas também seguro, evitando vulnerabilidades que possam ser exploradas maliciosamente.\n - **Responsabilidade pelo Uso do Software**: Definir claramente as responsabilidades legais e éticas relacionadas ao uso do software gerado, especialmente em contextos críticos onde falhas podem ter consequências sérias.\n - **Acessibilidade e Inclusão**: Considerar a acessibilidade e a inclusão na geração de código, assegurando que os aplicativos e sites sejam acessíveis a todos os usuários, incluindo pessoas com deficiências.\n ","afterSales":"\n - **Documentação e Suporte**: Fornecer documentação abrangente e suporte para os usuários, ajudando-os a entender e modificar o código gerado, se necessário.\n - **Atualizações e Manutenção**: Estabelecer um plano para atualizações regulares e manutenção do software, garantindo que ele permaneça compatível com novas versões de sistemas operacionais, frameworks e bibliotecas.\n - **Feedback e Melhoria Contínua**: Criar um canal de feedback para os usuários e implementar um processo de melhoria contínua baseado nas sugestões e necessidades dos usuários.\n - **Treinamento e Recursos Educacionais**: Oferecer treinamento e recursos educacionais para auxiliar os desenvolvedores a entenderem melhor como trabalhar com o código gerado e como integrá-lo em seus próprios projetos.\n ","monetization":"\n - **Modelos de Assinatura:** Oferecer planos de assinatura mensal ou anual, com diferentes níveis de acesso e funcionalidades, para desenvolvedores individuais, equipes e empresas.\n - **Licenciamento por Projeto:** Cobrar uma taxa fixa ou variável por projeto gerado, dependendo da complexidade e do tamanho do projeto.\n - **Serviços Adicionais:** Oferecer serviços adicionais, como suporte técnico premium, consultoria personalizada, treinamento e workshops para equipes de desenvolvimento.\n - **Marketplace de Componentes:** Criar um marketplace onde desenvolvedores possam comprar e vender componentes adicionais, templates ou módulos que podem ser integrados ao Rapida.\n "},"flowChart":{"actors":[{"name":"Desenvolvedor","actionsWithElements":[{"verb":"create","elements":[{"name":"Documento de especificação do projeto","businessRules":[{"rule":{"description":"Documento de especificação do projeto baseado em json schemas fortemente tipados (chamado rapida-partner)"}}]}]},{"verb":"use","elements":[{"name":"Engine de geração de código","businessRules":[{"rule":{"description":"Engine de geração de código (chamado rapida-v) para geração automática de código a partir do documento de especificação (rapida-partner)","subrules":[{"description":"Passo 0: Checagem do documento gerado pelo rapida-partner para garantir que todas as informações necessárias estão presentes e corretas"},{"description":"Passo 1: Clone do esqueleto do projeto: `git clone --depth 1 --branch ${project.flow} https://github.com/kunlatek/${project.frontend.framework}-${project.frontend.uiKit}.git`"},{"description":""}]}}]}]},{"verb":"test","elements":[{"name":"Código de frontend, backend, banco de dados e integração gerado"}]},{"verb":"deploy","elements":[{"name":"Código gerado para ambientes de desenvolvimento, teste e produção"}]}]}]},"businessRules":[{"rule":{"description":"Regras de nomenclatura para mongodb","subrules":[{"description":"Nomes de bancos de dados devem estar no singular e em camelCase"},{"description":"Nomes de collections devem estar no plural e em camelCase"},{"description":"Nomes de campos devem estar no singular e em camelCase"}]}},{"rule":{"description":"Regras gerais para código frontend react gerado pelo rapida-v","subrules":[{"description":"Utilizar apenas componentes presentes no esqueleto padrão do projeto"},{"description":"Os `modules`que serão definidos no rapida-partner darão nome às pastas principais dentro da pasta `features` no esqueleto"}]}},{"rule":{"description":"Regras de nomenclatura para código frontend react criado pelo rapida-v","subrules":[{"description":"Nomes de todos os arquivos devem estar em kebab-case"},{"description":"Nomes de componentes devem estar em PascalCase"},{"description":"Nomes de variáveis e funções devem estar em camelCase"}]}},{"rule":{"description":"Regras de nomenclatura para backend nodejs","subrules":[{"description":"Nomes de classes devem estar em PascalCase"},{"description":"Nomes de arquivos devem estar em kebab-case"},{"description":"Nomes de variáveis e funções devem estar em camelCase"}]}},{"rule":{"description":"Regras para API RESTful","subrules":[{"description":"Endpoints devem estar em plural e em kebab-case"},{"description":"Métodos HTTP devem seguir as convenções REST (GET, POST, PUT, DELETE)"},{"description":"Respostas devem estar em JSON"},{"description":"Utilizar códigos de status HTTP apropriados"}]}}],"modules":[{"id":"projectModule","title":"Gerenciamento de projetos","icon":"tactic","components":[{"title":"Gerenciamento de projeto","id":"projectForm","componentType":"form","guards":"isAuthorized","elements":[{"type":"tab","id":"projectTab","tabs":[{"title":"Dados principais","id":"projectMainDataTab","elements":[{"label":"Título do projeto","name":"title","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Identificador do projeto","name":"identifier","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Descrição do projeto","name":"description","type":"input","dataType":"longtext"},{"label":"Tipo de projeto","name":"projectsTypes","type":"select","dataType":"nvarchar","options":[{"label":"Arquitetura","value":"architecture"},{"label":"Marketing","value":"marketing"},{"label":"Desenvolvimento de software","value":"softwareDevelopment"},{"label":"Consultoria","value":"consulting"},{"label":"Educação","value":"education"},{"label":"Pesquisa","value":"research"},{"label":"Outros","value":"others"}],"isRequired":true,"isMultiple":true},{"label":"Adicionar pessoa relacionada ao projeto","name":"projectsPeople","type":"array","elements":[{"label":"Pessoa","name":"personId","type":"autocomplete","dataType":"uniqueidentifier","optionsApi":{"relatedEntity":"people","labelField":["name","cpf"],"valueField":"id","paramsToFilter":["name","cpf"],"paramType":"query","endpoint":"/people"}},{"label":"Relacionamentos","name":"projectsPeopleRelationships","type":"select","dataType":"nvarchar","options":[{"label":"Cliente","value":"customer"},{"label":"Fornecedor","value":"supplier"}],"isMultiple":true}]},{"label":"Adicionar empresa relacionada ao projeto","name":"projectsCompanies","type":"array","elements":[{"label":"Empresa","name":"companyId","type":"autocomplete","dataType":"uniqueidentifier","optionsApi":{"relatedEntity":"companies","labelField":["name","cnpj"],"valueField":"id","paramsToFilter":["name","cnpj"],"paramType":"query","endpoint":"/companies"}},{"label":"Relacionamentos","name":"projectsCompaniesRelationships","type":"select","dataType":"nvarchar","options":[{"label":"Cliente","value":"customer"},{"label":"Fornecedor","value":"supplier"}],"isMultiple":true}]}]},{"id":"businessTab","title":"Dados de negócio","elements":[{"label":"Valor do negócio","name":"businessValue","type":"input","dataType":"longtext"},{"label":"Público-alvo","name":"targetMarket","type":"input","dataType":"longtext"},{"label":"Benchmarkings","name":"benchmarkings","type":"input","dataType":"longtext"},{"label":"Legalidades","name":"legalIssues","type":"input","dataType":"longtext"},{"label":"Questões éticas","name":"ethicalIssues","type":"input","dataType":"longtext"},{"label":"Pós-venda","name":"afterSales","type":"input","dataType":"longtext"},{"label":"Monetização","name":"monetization","type":"input","dataType":"longtext"}]},{"id":"projectFilesTab","title":"Arquivos do projeto","elements":[{"label":"Adicionar arquivo do projeto","name":"projectsFiles","type":"array","elements":[{"label":"Nome do arquivo","name":"fileName","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Descrição do arquivo","name":"fileDescription","type":"input","dataType":"longtext"},{"label":"Arquivo do projeto","name":"fileUrl","dataType":"nvarchar","type":"file","storageConfig":{"fileNameStrategy":"uuid","path":"projects/files","visibility":"private"}}]}]},{"title":"Frameworks","id":"softwareDevelopmentFrameworksTab","elements":[{"label":"Padrão do projeto de desenvolvimento de software","name":"flow","type":"select","dataType":"nvarchar","options":[{"label":"Backoffice por convite sem permissões","value":"backofficeByInvitationWithoutPermissions"},{"label":"Backoffice por convite e permissões por componente","value":"backofficeByInvitationAndPermissionsByComponent"},{"label":"Backoffice aberto sem permissões","value":"backofficeOpenedWithoutPermissions"},{"label":"Backoffice aberto e permissões por componente","value":"backofficeOpenedAndPermissionsByComponent"},{"label":"Marketplace","value":"marketplace"},{"label":"Landing page","value":"landingPage"},{"label":"Rede social","value":"socialNetwork"}]},{"label":"URL base do frontend","name":"baseUrl","type":"input","dataType":"nvarchar"},{"title":"Frontend","id":"frontendFieldset","type":"fieldset","elements":[{"name":"frontendFramework","label":"Framework de Frontend","type":"select","dataType":"nvarchar","options":[{"label":"Angular","value":"angular"},{"label":"React","value":"react"},{"label":"Svelte","value":"svelte"},{"label":"Vue.js","value":"vuejs"}]},{"name":"frontendUiKit","label":"UI Kit de Frontend","type":"select","dataType":"nvarchar","options":[{"label":"Ant Design","value":"antdesign"},{"label":"Bootstrap","value":"bootstrap"},{"label":"Flowbite","value":"flowbite"},{"label":"Material UI","value":"materialUi"}]}]},{"title":"Backend","id":"backendFieldset","type":"fieldset","elements":[{"name":"backendFramework","label":"Framework de Backend","type":"select","dataType":"nvarchar","options":[{"label":"Django","value":"django"},{"label":"Express","value":"express"},{"label":"Laravel","value":"laravel"},{"label":"Nest.js","value":"nestjs"},{"label":"Spring","value":"spring"}]},{"title":"Banco de dados","type":"fieldset","id":"databaseFieldset","elements":[{"label":"Tipo","name":"provider","type":"select","dataType":"nvarchar","options":[{"label":"MySQL","value":"mysql"},{"label":"PostgreSQL","value":"postgresql"},{"label":"MongoDB","value":"mongodb"},{"label":"SQLite","value":"sqlite"},{"label":"MariaDB","value":"mariadb"}]},{"label":"String de conexão","name":"connectionString","type":"input","dataType":"nvarchar"},{"label":"Nome da base de dados","name":"databaseName","type":"input","dataType":"nvarchar"},{"label":"Usuário","name":"username","type":"input","dataType":"nvarchar"},{"label":"Senha","name":"password","type":"input","dataType":"nvarchar"},{"label":"Host","name":"host","type":"input","dataType":"nvarchar"},{"label":"Porta","name":"port","type":"input","dataType":"integer"}]},{"title":"Armazenamento","id":"storageFieldset","type":"fieldset","elements":[{"label":"Tipo","name":"type","type":"select","dataType":"nvarchar","options":[{"label":"AWS S3","value":"s3"},{"label":"Google Cloud Storage","value":"gcs"},{"label":"Azure Blob Storage","value":"azure"}]},{"label":"Bucket/Container público","name":"publicBucketName","type":"input","dataType":"nvarchar"},{"label":"Bucket/Container privado","name":"privateBucketName","type":"input","dataType":"nvarchar"},{"label":"Chave de acesso","name":"privateKey","type":"input","dataType":"nvarchar"}]},{"title":"E-mail","id":"emailFieldset","type":"fieldset","elements":[{"label":"Usuário SMTP","name":"smtpUser","type":"input","dataType":"nvarchar"},{"label":"Senha SMTP","name":"smtpPass","type":"input","dataType":"nvarchar"},{"label":"Host SMTP","name":"smtpHost","type":"input","dataType":"nvarchar"},{"label":"Porta SMTP","name":"smtpPort","type":"input","dataType":"integer"},{"label":"Usar SSL/TLS","name":"smtpSecure","type":"select","dataType":"boolean","options":[{"label":"Sim","value":true},{"label":"Não","value":false,"isSelected":true}]},{"label":"E-mail de envio padrão","name":"smtpFrom","type":"input","dataType":"nvarchar"}]}]}],"conditions":[{"type":"form","elements":[{"key":"projectsTypes","comparisonOperator":"===","value":"softwareDevelopment"}]}]},{"title":"Módulos","id":"softwareDevelopmentModulesTab","elements":[{"label":"Adicionar módulo","name":"projectsModules","type":"array","elements":[{"label":"Módulo de projeto","name":"moduleId","type":"autocomplete","dataType":"uniqueidentifier","optionsApi":{"relatedEntity":"modules","endpoint":"/modules","labelField":["idenifier","title"],"valueField":"id","paramsToFilter":["identifier","title"],"paramType":"query"}}]}],"conditions":[{"type":"form","elements":[{"key":"projectsTypes","comparisonOperator":"===","value":"softwareDevelopment"}]}]},{"title":"Regras de negócio","id":"softwareDevelopmentBusinessRulesTab","elements":[{"label":"Adicionar regra de negócio","name":"projectsBusinessRules","type":"array","elements":[{"label":"Descrição","name":"ruleDescription","type":"input","dataType":"longtext"},{"label":"Adicionar subregra de negócio","name":"projectsBusinessRulesSubrules","type":"array","elements":[{"label":"Descrição","name":"subruleDescription","type":"input","dataType":"longtext"}]}]}]},{"title":"Links técnicos","id":"softwareDevelopmentLinksTab","elements":[{"label":"Link para o Design System do projeto","name":"linkToProjectDesignSystem","type":"input","dataType":"nvarchar"},{"label":"Link para o Design do projeto vinculado aos Sprints","name":"linkToProjectDesignToSprints","type":"input","dataType":"nvarchar"},{"label":"Link para o Design do projeto vinculado à Descoberta","name":"linkToProjectDesignDiscovery","type":"input","dataType":"nvarchar"},{"label":"Link para o repositório Git do Backend","name":"linkToBackendGitRepository","type":"input","dataType":"nvarchar"},{"label":"Link para o repositório Git do Frontend","name":"linkToFrontendGitRepository","type":"input","dataType":"nvarchar"},{"label":"Link para os Sprints do projeto","name":"linkToSprints","type":"input","dataType":"nvarchar"},{"label":"Link para a ferramenta de gerenciamento de projetos","name":"linkToProjectManagementTool","type":"input","dataType":"nvarchar"},{"label":"Link para a documentação técnica do projeto","name":"linkToProjectTechnicalDocumentation","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem do frontend","name":"linkToCloudComputingFrontendProvider","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem do backend","name":"linkToCloudComputingBackendProvider","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem do banco de dados","name":"linkToCloudComputingDatabaseProvider","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem de armazenamento","name":"linkToCloudComputingStorageProvider","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem de monitoramento","name":"linkToCloudComputingMonitoringProvider","type":"input","dataType":"nvarchar"},{"label":"Link para o provedor de computação em nuvem de implantação","name":"linkToCloudComputingDeploymentProvider","type":"input","dataType":"nvarchar"},{"label":"Link para usuários e senhas","name":"linkToUsersAndPasswords","type":"input","dataType":"nvarchar"}],"conditions":[{"type":"form","elements":[{"key":"projectsTypes","comparisonOperator":"===","value":"softwareDevelopment"}]}]}]}],"contracts":[{"id":"projects","endpoint":"/projects","actions":["create","update","get","getById","softDelete"],"request":{"entity":"projects","fields":[{"name":"title","dataType":"nvarchar","isRequired":true},{"name":"identifier","dataType":"nvarchar","isRequired":true},{"name":"description","dataType":"longtext"},{"name":"businessValue","dataType":"longtext"},{"name":"targetMarket","dataType":"longtext"},{"name":"benchmarkings","dataType":"longtext"},{"name":"legalIssues","dataType":"longtext"},{"name":"ethicalIssues","dataType":"longtext"},{"name":"afterSales","dataType":"longtext"},{"name":"monetization","dataType":"longtext"},{"name":"flow","dataType":"nvarchar"},{"name":"baseUrl","dataType":"nvarchar"},{"name":"frontendFramework","dataType":"nvarchar"},{"name":"frontendUiKit","dataType":"nvarchar"},{"name":"backendFramework","dataType":"nvarchar"},{"name":"smtpUser","dataType":"nvarchar"},{"name":"smtpPass","dataType":"nvarchar"},{"name":"smtpHost","dataType":"nvarchar"},{"name":"smtpPort","dataType":"integer"},{"name":"smtpSecure","dataType":"boolean"},{"name":"smtpFrom","dataType":"nvarchar"},{"name":"linkToProjectDesignSystem","dataType":"nvarchar"},{"name":"linkToProjectDesignToSprints","dataType":"nvarchar"},{"name":"linkToBackendGitRepository","dataType":"nvarchar"},{"name":"linkToFrontendGitRepository","dataType":"nvarchar"},{"name":"linkToSprints","dataType":"nvarchar"},{"name":"linkToProjectManagementTool","dataType":"nvarchar"},{"name":"linkToProjectTechnicalDocumentation","dataType":"nvarchar"},{"name":"linkToCloudComputingFrontendProvider","dataType":"nvarchar"},{"name":"linkToCloudComputingBackendProvider","dataType":"nvarchar"},{"name":"linkToCloudComputingDatabaseProvider","dataType":"nvarchar"},{"name":"linkToCloudComputingStorageProvider","dataType":"nvarchar"},{"name":"linkToCloudComputingMonitoringProvider","dataType":"nvarchar"},{"name":"linkToCloudComputingDeploymentProvider","dataType":"nvarchar"},{"name":"linkToUsersAndPasswords","dataType":"nvarchar"},{"name":"projectsTypes","dataType":"nvarchar"},{"name":"projectsPeople","dataType":"array"}]}},{"id":"projectsTypes","endpoint":"/projects/{projectId}/types","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsTypes","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"type","dataType":"nvarchar","isRequired":true}]}},{"id":"projectsPeople","endpoint":"/projects/{projectId}/people","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsPeople","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"personId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"people","connectionAttribute":"id","relationship":"one-to-many"}}],"uniqueConstraints":[{"identificator":"uniqueProjectPerson","fields":["projectId","personId"]}]}},{"id":"projectsPeopleRelationships","endpoint":"/projects/{projectId}/people/{personId}/relationships","actions":["update","getById","softDelete"],"request":{"entity":"projectsPeople","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"personId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"people","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true}]}},{"id":"projectsCompanies","endpoint":"/projects/{projectId}/companies","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsCompanies","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"companyId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"companies","connectionAttribute":"id","relationship":"one-to-many"}}],"uniqueConstraints":[{"identificator":"uniqueProjectCompany","fields":["projectId","companyId"]}]}},{"id":"projectsCompaniesRelationships","endpoint":"/projects/{projectId}/companies/{companyId}/relationships","actions":["update","getById"],"request":{"entity":"projectsCompanies","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"companyId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"companies","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"companiesRelationships","dataType":"nvarchar"}]}},{"id":"projectsModules","endpoint":"/projects/{projectId}/modules","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsModules","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"moduleId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"modules","connectionAttribute":"id","relationship":"one-to-many"}}],"uniqueConstraints":[{"identificator":"uniqueProjectModule","fields":["projectId","moduleId"]}]}},{"id":"projectsBusinessRules","endpoint":"/projects/{projectId}/rules","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsBusinessRules","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"ruleDescription","dataType":"longtext"}]}},{"id":"projectsBusinessRulesSubrules","endpoint":"/projects/{projectId}/rules/{ruleId}/subrules","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsBusinessRulesSubrules","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"ruleId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projectsBusinessRules","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"subruleDescription","dataType":"longtext"}]}},{"id":"projectsFiles","endpoint":"/projects/{projectId}/files","actions":["create","softDelete","get","getById","update"],"request":{"entity":"projectsFiles","fields":[{"name":"projectId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projects","connectionAttribute":"id","relationship":"one-to-many"},"isHidden":true},{"name":"fileName","dataType":"nvarchar","isRequired":true},{"name":"fileDescription","dataType":"longtext"},{"name":"fileUrl","dataType":"nvarchar"}]}}]},{"componentType":"list","id":"projectList","title":"Lista de projetos","guards":["isAuthorized"],"dataSource":{"endpoint":"/projects","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Nome","property":"projectName","type":"title","dataType":"nvarchar"},{"label":"Descrição","property":"projectDescription","type":"description","dataType":"longtext"},{"label":"Usuários compartilhando o projeto","property":"usersSharingProject","type":"subtitle","dataType":"array"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/project-form","propertiesAsQueryParam":["id"]}}},{"label":"Excluir","icon":"trash","action":{"link":{"endpoint":"/project-list"},"request":{"endpoint":"/projects","verb":"softDelete","propertiesAsPathParam":["id"],"dialog":{"title":"Excluir projeto","message":"Deseja realmente excluir essa projeto?"}}}}],"contracts":[]},{"componentType":"form","id":"projectModuleForm","title":"Gerenciamento de módulo projeto","guards":"isAuthorized","elements":[{"type":"tab","id":"projectModuleTab","tabs":[{"title":"Dados principais","id":"mainDataTab","elements":[{"type":"input","name":"title","label":"Título do módulo","dataType":"nvarchar","isRequired":true},{"type":"input","name":"identifier","label":"ID do módulo","dataType":"nvarchar","isRequired":true},{"type":"input","name":"icon","label":"Nome de ícone do módulo","dataType":"nvarchar"}]},{"title":"Regras de negócio","id":"softwareDevelopmentBusinessRulesTab","elements":[{"label":"Regra de negócio","name":"projectModulesBusinessRules","type":"array","elements":[{"label":"Descrição","name":"ruleDescription","type":"input","dataType":"longtext"},{"label":"Subregra de negócio","name":"projectModulesBusinessRulesSubrules","type":"array","elements":[{"label":"Descrição","name":"subruleDescription","type":"input","dataType":"longtext"}]}]}]}]}],"contracts":[{"id":"projectModules","endpoint":"/project-modules","actions":["create","update","get","getById","softDelete"],"request":{"entity":"projectModules","fields":[]}}]},{"componentType":"list","id":"projectModuleList","title":"Lista de módulos de projetos","guards":["isAuthorized"],"dataSource":{"endpoint":"/projects-modules","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Nome","property":"moduleTitle","type":"title","dataType":"nvarchar"},{"label":"Identificador","property":"moduleIdentifier","type":"subtitle","dataType":"nvarchar"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/project-module-form","propertiesAsQueryParam":["id"]}}},{"label":"Excluir","icon":"trash","action":{"link":{"endpoint":"/project-module-list"},"request":{"endpoint":"/projects-modules","verb":"softDelete","propertiesAsPathParam":["id"],"dialog":{"title":"Excluir módulo de projeto","message":"Deseja realmente excluir essa módulo de projeto?"}}}}],"contracts":[]},{"componentType":"form","id":"projectStepForm","title":"Gerenciamento de etapa de projeto","guards":"isAuthorized","elements":[{"label":"Título da etapa","name":"stepTitle","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Descrição da etapa","name":"stepDescription","type":"input","dataType":"longtext"},{"label":"Projeto","name":"projectId","type":"autocomplete","dataType":"uniqueidentifier","optionsApi":{"relatedEntity":"projects","endpoint":"/projects","labelField":["projectName","projectIdentifier"],"valueField":"id","paramsToFilter":["projectName","projectIdentifier"],"paramType":"query"},"isRequired":true},{"label":"Adicionar módulo","name":"projectsModules","type":"array","elements":[{"type":"autocomplete","name":"projectModuleId","label":"Módulo de projeto","dataType":"longtext","optionsApi":{"relatedEntity":"projectModules","endpoint":"/projects-modules","labelField":["moduleIdentifier","moduleTitle"],"valueField":"id","paramsToFilter":["moduleIdentifier","moduleTitle"],"paramType":"query"}}]},{"label":"Adicionar status","name":"projectStepsStatuses","type":"array","elements":[{"label":"Status da etapa","name":"stepStatus","type":"select","dataType":"nvarchar","options":[{"label":"Aguardando BDD","value":"waitingForBdd"},{"label":"Em BDD","value":"bdd"},{"label":"Aguardando correção/melhoria de BDD","value":"waitingForBddImprovement"},{"label":"Em correção/melhoria de BDD","value":"bddImprovement"},{"label":"Aguardando design","value":"waitingForDesign"},{"label":"Em design","value":"design"},{"label":"Aguardando aprovação de design","value":"waitingForDesignApproval"},{"label":"Aguardando correção/melhoria em design","value":"waitingForDesignImprovement"},{"label":"Em correção/melhoria de design","value":"designImprovement"},{"label":"Design bloqueado","value":"blockedInDesign"},{"label":"Aguardando TDD","value":"waitingForTdd"},{"label":"Em TDD","value":"tdd"},{"label":"Aguardando correção/melhoria de TDD","value":"waitingForTddImprovement"},{"label":"Em correção de TDD","value":"tddImprovement"},{"label":"Aguardando desenvolvimento","value":"waitingForDevelopment"},{"label":"Em desenvolvimento","value":"development"},{"label":"Aguardando correção/melhoria de desenvolvimento","value":"waitingForDevelopmentImprovement"},{"label":"Em correção/melhoria de desenvolvimento","value":"developmentImprovement"},{"label":"Desenvolvimento bloqueado","value":"blockedInDevelopment"},{"label":"Aguardando garantia de qualidade","value":"waitingForQualityAssurance"},{"label":"Em garantia de qualidade","value":"qualityAssurance"},{"label":"Aguardando homologação","value":"waitingForHomologation"},{"label":"Em homologação","value":"homologation"},{"label":"Aguardando produção","value":"waitingForProduction"},{"label":"Em produção","value":"production"},{"label":"Cancelada","value":"cancelled"}]},{"label":"Data de início do status da etapa","name":"stepStatusStartDate","type":"input","dataType":"datetime2"},{"label":"Data de fim do status da etapa","name":"stepStatusEndDate","type":"input","dataType":"datetime2"},{"label":"Pessoa responsável","name":"stepStatusResponsiblePersonId","type":"autocomplete","dataType":"longtext","optionsApi":{"relatedEntity":"people","labelField":["name","cpf"],"valueField":"id","paramsToFilter":["name","cpf"],"paramType":"query","endpoint":"/people"}},{"label":"Empresa responsável","name":"stepStatusResponsibleCompanyId","type":"autocomplete","dataType":"longtext","optionsApi":{"relatedEntity":"companies","labelField":["name","cnpj"],"valueField":"id","paramsToFilter":["name","cnpj"],"paramType":"query","endpoint":"/companies"}},{"label":"Comentários do status da etapa","name":"stepStatusCommments","type":"input","dataType":"longtext"},{"label":"Arquivos relacionados ao status da etapa","name":"projectStepsStatusesFileUrls","type":"file","dataType":"nvarchar","storageConfig":{"fileNameStrategy":"uuid","path":"step-status-related-files","visibility":"private"},"isMultiple":true}]}],"contracts":[{"id":"projectSteps","endpoint":"/project-steps","actions":["create","update","softDelete","get","getById"],"request":{"entity":"projectSteps","fields":[{"name":"stepTitle","dataType":"nvarchar","isRequired":true},{"name":"stepDescription","dataType":"longtext"},{"name":"projectId","dataType":"uniqueidentifier","isRequired":true}]}},{"id":"projectStepsModules","endpoint":"/project-steps/{projectStepId}/modules","actions":["create","softDelete","get","getById"],"request":{"entity":"projectStepsModules","fields":[{"name":"projectStepId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projectSteps","connectionAttribute":"id","relationship":"one-to-many"}},{"name":"projectModuleId","dataType":"longtext"}]}},{"id":"projectStepsStatuses","endpoint":"/project-steps/{projectStepId}/statuses","actions":["create","update","softDelete","get","getById"],"request":{"entity":"projectStepsStatuses","fields":[{"name":"projectStepId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projectSteps","connectionAttribute":"id","relationship":"one-to-many"}},{"name":"stepStatus","dataType":"nvarchar","enum":["waitingForBdd","bdd","waitingForBddImprovement","bddImprovement","waitingForDesign","design","waitingForDesignApproval","waitingForDesignImprovement","designImprovement","blockedInDesign","waitingForTdd","tdd","waitingForTddImprovement","tddImprovement","waitingForDevelopment","development","waitingForDevelopmentImprovement","developmentImprovement","blockedInDevelopment","waitingForQualityAssurance","qualityAssurance","waitingForHomologation","homologation","waitingForProduction","production","cancelled"]},{"name":"stepStatusStartDate","dataType":"datetime2"},{"name":"stepStatusEndDate","dataType":"datetime2"},{"name":"stepStatusResponsiblePersonId","dataType":"longtext"},{"name":"stepStatusResponsibleCompanyId","dataType":"longtext"},{"name":"stepStatusCommments","dataType":"longtext"}]}},{"id":"projectStepsStatusesFileUrls","endpoint":"/project-steps-statuses/{projectStepsStatusId}/files","actions":["create","softDelete","get","getById"],"request":{"entity":"projectStepsStatusesFileUrls","fields":[{"name":"projectStepsStatusId","dataType":"uniqueidentifier","isRequired":true,"foreignKey":{"entity":"projectStepsStatuses","connectionAttribute":"id","relationship":"one-to-many"}},{"name":"fileUrl","dataType":"nvarchar"}]}}]},{"componentType":"list","id":"projectStepList","title":"Lista de estapas do projeto","guards":["isAuthorized"],"dataSource":{"endpoint":"/projects-steps","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Nome","property":"projectStepName","type":"title","dataType":"nvarchar"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/project-step-form","propertiesAsQueryParam":["id"]}}},{"label":"Excluir","icon":"trash","action":{"link":{"endpoint":"/project-step-list"},"request":{"endpoint":"/projects-steps","verb":"softDelete","propertiesAsPathParam":["id"],"dialog":{"title":"Excluir etapa do projeto","message":"Deseja realmente excluir essa etapa do projeto?"}}}}],"contracts":[]}]},{"id":"projectComponentModule","title":"Gerenciamento de componentes de projetos","icon":"tactic","components":[{"title":"Gerenciar componentes do projeto","id":"projectComponentForm","componentType":"form","elements":[{"type":"tab","id":"projectComponentTabs","tabs":[{"title":"Dados principais","id":"mainDataTab","elements":[{"label":"Título","name":"title","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Identificador","name":"identifier","type":"input","dataType":"nvarchar","isRequired":true,"isUnique":true,"tooltip":"Identificador único do componente no sistema (ex: userList, productForm)"},{"label":"Tipo de componente","name":"componentType","type":"select","dataType":"nvarchar","options":[{"label":"Formulário","value":"form"},{"label":"Lista","value":"list"},{"label":"Gráfico","value":"chart"}],"isRequired":true},{"label":"Estória de usuário","name":"userStory","type":"input","dataType":"longtext"}]},{"title":"Elementos de formulário","id":"formElementsTab","elements":[{"label":"Elemento de formulário","name":"projectComponentsElements","type":"array","elements":[{"label":"Tipo de elemento","dataType":"nvarchar","name":"formElementType","type":"select","isRequired":true,"options":[{"label":"Input","value":"input"},{"label":"Select","value":"select"},{"label":"Autocomplete","value":"autocomplete"},{"label":"Array","value":"array"},{"label":"Tab","value":"tab"},{"label":"Fieldset","value":"fieldset"},{"label":"Button","value":"button"},{"label":"File","value":"file"},{"label":"DatePicker","value":"datepicker"},{"label":"Inheritance","value":"inheritance"}]},{"label":"Nome do campo","name":"formElementName","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"tab"}]},{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"fieldset"}]}]},{"label":"Rótulo","name":"formElementLabel","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"array"}]},{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"tab"}]},{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"fieldset"}]}]},{"label":"Título","name":"formElementTitle","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"===","value":"array"},{"key":"formElementType","comparisonOperator":"===","value":"fieldset"}]}]},{"label":"Tipo de dado","name":"formElementDataType","type":"select","dataType":"nvarchar","isRequired":true,"options":[{"label":"NODATA","value":"nodata"},{"label":"TEXT","value":"text"},{"label":"NUMBER","value":"number"},{"label":"PASSWORD","value":"password"},{"label":"EMAIL","value":"email"},{"label":"COLOR","value":"color"},{"label":"DATE","value":"date"},{"label":"WYSIWYG","value":"wysiwyg"},{"label":"TIME","value":"time"},{"label":"FILE","value":"file"},{"label":"ARRAY","value":"array"},{"label":"CHAR","value":"char"},{"label":"NCHAR","value":"nchar"},{"label":"VARCHAR","value":"varchar"},{"label":"VARCHAR2","value":"varchar2"},{"label":"NVARCHAR","value":"nvarchar"},{"label":"LONGTEXT","value":"longtext"},{"label":"CLOB","value":"clob"},{"label":"NCLOB","value":"nclob"},{"label":"DECIMAL","value":"decimal"},{"label":"NUMERIC","value":"numeric"},{"label":"INTEGER","value":"integer"},{"label":"FLOAT","value":"float"},{"label":"DOUBLE","value":"double"},{"label":"REAL","value":"real"},{"label":"TIMESTAMP","value":"timestamp"},{"label":"DATETIME","value":"datetime"},{"label":"DATETIME2","value":"datetime2"},{"label":"UNIQUEIDENTIFIER","value":"uniqueidentifier"},{"label":"BOOLEAN","value":"boolean"}],"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"tab"},{"key":"formElementType","comparisonOperator":"!==","value":"fieldset"},{"key":"formElementType","comparisonOperator":"!==","value":"button"},{"key":"formElementType","comparisonOperator":"!==","value":"inheritance"},{"key":"formElementType","comparisonOperator":"!==","value":"array"},{"key":"formElementType","comparisonOperator":"!==","value":"datepicker"},{"key":"formElementType","comparisonOperator":"!==","value":"inheritance"}]}]},{"label":"É obrigatório?","name":"formElementIsRequired","type":"select","dataType":"boolean","options":[{"label":"Sim","value":true},{"label":"Não","value":false,"isSelected":true}],"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"!==","value":"tab"},{"key":"formElementType","comparisonOperator":"!==","value":"fieldset"},{"key":"formElementType","comparisonOperator":"!==","value":"button"},{"key":"formElementType","comparisonOperator":"!==","value":"inheritance"}]}]},{"label":"Opção para select","name":"formElementOptions","type":"array","elements":[{"label":"Rótulo da opção","name":"formElementOptionsLabel","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Valor da opção","name":"formElementOptionsValue","type":"input","dataType":"nvarchar","isRequired":true}],"conditions":[{"type":"form","elements":[{"key":"formElementType","comparisonOperator":"===","value":"select"}]}]},{"title":"API para autocomplete","id":"formElementApiOptionsFieldset","type":"fieldset","elements":[{"label":"Endpoint da API","name":"formElementEndpoint","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Campo base da integração","name":"formElementValueField","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Campo de rótulo do autocomplete","type":"array","name":"formElementLabelFields","elements":[{"label":"Nome","name":"formElementLabelField","type":"input","dataType":"nvarchar","isRequired":true}]},{"label":"Parâmetros para filtro","name":"formElementParamsToFilters","type":"array","elements":[{"label":"Nome","dataType":"nvarchar","name":"formElementParamToFilter","type":"input","isRequired":true}]},{"label":"Tipo de parâmetro","name":"formElementParamType","type":"select","dataType":"nvarchar","options":[{"label":"Query","value":"query","isSelected":true},{"label":"Path","value":"path"}]},{"label":"Entidade relacionada (para campos de relacionamento)","name":"formElementRelatedEntity","type":"input","dataType":"nvarchar","placeholder":"entities"}],"conditions":[{"type":"form","elements":[{"key":"type","comparisonOperator":"===","value":"autocomplete"}]}]},{"label":"Condição de exibição","name":"formElementConditions","type":"array","elements":[{"label":"Origem da condição","name":"formElementConditionType","type":"select","dataType":"nvarchar","isRequired":true,"options":[{"label":"Propriedade do próprio campo","value":"property"},{"label":"Enumeração (valores pré-definidos)","value":"enum"},{"label":"Outro campo do formulário","value":"form"},{"label":"Código customizado","value":"code"},{"label":"Campo de array","value":"array"},{"label":"Botão","value":"button"}]},{"label":"Name do campo (para condição de outro campo do formulário)","name":"formElementConditionKey","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"===","value":"form"}]},{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"===","value":"array"}]}]},{"label":"Operador de comparação","name":"formElementComparisonOperator","type":"select","dataType":"nvarchar","isRequired":true,"options":[{"label":"Igual a (===)","value":"==="},{"label":"Diferente de (!==)","value":"!=="},{"label":"Maior que (>)","value":">"},{"label":"Maior ou igual a (>=)","value":">="},{"label":"Menor que (<)","value":"<"},{"label":"Menor ou igual a (<=)","value":"<="},{"label":"Está em (in)","value":"in"},{"label":"Não está em (nin)","value":"nin"}],"conditions":[{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"!==","value":"code"}]}]},{"label":"Valor para comparação","name":"formElementConditionValue","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"conditionType","comparisonOperator":"!==","value":"code"}]}]},{"label":"Operador lógico (para múltiplas condições)","name":"formElementConditionLogicalOperator","type":"select","dataType":"nvarchar","options":[{"label":"E (&&)","value":"&&","isSelected":true},{"label":"OU (||)","value":"||"},{"label":"NÃO (!)","value":"!"},{"label":"NEM (nor)","value":"nor"}],"conditions":[{"type":"form","elements":[{"key":"conditionType","comparisonOperator":"!==","value":"code"}]}]},{"label":"Name do campo de array (para condição em campo de array)","name":"formElementConditionArray","type":"input","dataType":"nvarchar","isRequired":true,"conditions":[{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"===","value":"array"}]}]},{"label":"Código customizado (para condição via código)","name":"formElementConditionCode","type":"input","dataType":"longtext","isRequired":true,"placeholder":"// Exemplo de código:\n// if (value === 'something') {\n// return true;\n// } else {\n// return false;\n// }","conditions":[{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"===","value":"code"}]}]},{"label":"Disparar condição ao alterar o campo","name":"formElementConditionTriggerField","type":"input","dataType":"nvarchar","conditions":[{"type":"form","elements":[{"key":"formElementConditionType","comparisonOperator":"===","value":"code"}]}]},{"label":"Ação ao atender a condição","name":"formElementConditionResponse","type":"select","dataType":"nvarchar","options":[{"label":"Exibir campo","value":"show"},{"label":"Ocultar campo","value":"hide"},{"label":"Habilitar campo","value":"enable"},{"label":"Desabilitar campo","value":"disable"},{"label":"Preencher campo(s)","value":"fillFields"}]},{"label":"Campos a preencher (para ação preencher campo)","name":"formElementConditionFillFields","type":"array","elements":[{"label":"Nome do campo a preencher","name":"formElementConditionFieldKey","type":"input","dataType":"nvarchar","isRequired":true},{"label":"Valor para preencher","name":"formElementConditionFieldValue","type":"input","dataType":"nvarchar","isRequired":true}],"conditions":[{"type":"form","elements":[{"key":"formElementConditionResponse","comparisonOperator":"===","value":"fillFields"}]}]}]}]}],"conditions":[{"type":"form","elements":[{"key":"componentType","comparisonOperator":"===","value":"form"}]}]},{"title":"Regras de negócio","id":"businessRulesTab","elements":[{"label":"Regra de negócio","name":"businessRules","type":"array","elements":[{"label":"Descrição","name":"ruleDescription","type":"input","dataType":"longtext"},{"label":"Subregra de negócio","name":"businessRulesSubrules","type":"array","elements":[{"label":"Descrição","name":"subruleDescription","type":"input","dataType":"longtext"}]}]}]}]}],"contracts":[{"id":"projectComponents","endpoint":"/project-components","actions":["get","create","update","softDelete","getById"],"request":{"entity":"projectComponents","fields":[]}}]},{"componentType":"list","id":"projectComponentList","title":"Lista de componentes de projetos","guards":["isAuthorized"],"dataSource":{"endpoint":"/project-components","paramType":"query","hasAuthentication":true},"listItems":[{"label":"Tipo","type":"title","dataType":"nvarchar"},{"label":"Título","property":"title","type":"title","dataType":"nvarchar"},{"label":"Identificador","property":"identifier","type":"subtitle","dataType":"nvarchar"}],"callsToActionMenu":[{"label":"Editar","icon":"pencil","action":{"link":{"endpoint":"/project-component-form","propertiesAsQueryParam":["id"]}}},{"label":"Excluir","icon":"trash","action":{"link":{"endpoint":"/project-component-list"},"request":{"endpoint":"/project-components","verb":"softDelete","propertiesAsPathParam":["id"],"dialog":{"title":"Excluir projeto","message":"Deseja realmente excluir essa projeto?"}}}}],"contracts":[]}]}]}
@@ -15,7 +15,6 @@ export const characterForm: IForm = {
15
15
  name: "characterName",
16
16
  isRequired: true,
17
17
  },
18
- // file - Foto do personagem
19
18
  {
20
19
  label: "Foto do personagem",
21
20
  type: "file",
@@ -47,6 +46,35 @@ export const characterForm: IForm = {
47
46
  { value: "supporting", label: "Secundário" },
48
47
  ],
49
48
  },
49
+ {
50
+ type: "select",
51
+ label: "Raça",
52
+ name: "characterBreed",
53
+ dataType: EDataType.TEXT,
54
+ options: [
55
+ { value: "human", label: "Humana", isSelected: true, },
56
+ { value: "other", label: "Outra" },
57
+ ],
58
+ },
59
+ {
60
+ label: "Outra raça",
61
+ name: "characterOtherBreed",
62
+ type: "input",
63
+ dataType: EDataType.NVARCHAR,
64
+ isRequired: true,
65
+ conditions: [
66
+ {
67
+ type: "form",
68
+ elements: [
69
+ {
70
+ key: "characterBreed",
71
+ value: "other",
72
+ comparisonOperator: "==="
73
+ }
74
+ ]
75
+ }
76
+ ]
77
+ },
50
78
  {
51
79
  type: "select",
52
80
  label: "Gênero do personagem",
@@ -36,6 +36,16 @@ export interface IFormButton {
36
36
  actionButtonBusinessRules?: IBusinessRule[];
37
37
  conditions: IFormCondition[];
38
38
  },
39
+ toast?: {
40
+ id: string;
41
+ title: string;
42
+ subtitle?: string;
43
+ icon: string;
44
+ size?: "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl";
45
+ type: "success" | "error" | "warning" | "info";
46
+ businessRules?: IBusinessRule[];
47
+ conditions: IFormCondition[];
48
+ },
39
49
  link?: {
40
50
  url: string;
41
51
  openInNewTab?: boolean;
@@ -67,6 +67,36 @@
67
67
  }
68
68
  }
69
69
  },
70
+ "toast": {
71
+ "type": "object",
72
+ "properties": {
73
+ "id": { "type": "string" },
74
+ "title": { "type": "string" },
75
+ "subtitle": { "type": "string" },
76
+ "icon": { "type": "string" },
77
+ "size": {
78
+ "type": "string",
79
+ "enum": [
80
+ "sm",
81
+ "md",
82
+ "lg",
83
+ "xl",
84
+ "2xl",
85
+ "3xl",
86
+ "4xl",
87
+ "5xl",
88
+ "6xl",
89
+ "7xl"
90
+ ]
91
+ },
92
+ "type": {
93
+ "type": "string",
94
+ "enum": ["success", "error", "warning", "info"]
95
+ },
96
+ "businessRules": { "$ref": "business-rules.ref.json" },
97
+ "conditions": { "$ref": "condition.ref.json" }
98
+ }
99
+ },
70
100
  "modal": {
71
101
  "type": "object",
72
102
  "properties": {