{"id":15233397,"url":"https://github.com/ladesa-ro/especificacao","last_synced_at":"2025-04-10T05:30:36.702Z","repository":{"id":191493033,"uuid":"683810880","full_name":"ladesa-ro/especificacao","owner":"ladesa-ro","description":"Modelagem de Dados do Ladesa.","archived":false,"fork":false,"pushed_at":"2025-03-30T15:25:24.000Z","size":3159,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-04-04T01:32:38.960Z","etag":null,"topics":["dotnet","dto","json-schema","ladesa","monorepo","npm","nuget","sisgea","sisgha","typespec"],"latest_commit_sha":null,"homepage":"https://docs.ladesa.com.br/developers/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ladesa-ro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-27T19:13:06.000Z","updated_at":"2025-02-01T18:29:41.000Z","dependencies_parsed_at":"2023-12-25T00:23:01.164Z","dependency_job_id":"9bd26178-82d8-48c8-bca7-42239a47b946","html_url":"https://github.com/ladesa-ro/especificacao","commit_stats":null,"previous_names":["sisgha/sisgha-spec","sisgha/sisgea-spec","sisgha/especificacao","sisgha/spec","ladesa-ro/especificacao"],"tags_count":228,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladesa-ro%2Fespecificacao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladesa-ro%2Fespecificacao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladesa-ro%2Fespecificacao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladesa-ro%2Fespecificacao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ladesa-ro","download_url":"https://codeload.github.com/ladesa-ro/especificacao/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248162917,"owners_count":21057835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","dto","json-schema","ladesa","monorepo","npm","nuget","sisgea","sisgha","typespec"],"created_at":"2024-09-29T05:08:29.198Z","updated_at":"2025-04-10T05:30:36.603Z","avatar_url":"https://github.com/ladesa-ro.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eEspecificação do Ladesa\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eDefinição de dados e entidades do Ladesa\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ladesa-ro/especificacao\"\u003e\n    \u003cimg alt=\"Repositório de Código no GitHub\" src=\"https://img.shields.io/badge/GitHub-Especificação-118d3b?style=for-the-badge\u0026logo=GitHub\u0026logoColor=white\u0026labelColor=18181b\u0026color=118d3b\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://docs.ladesa.com.br/developers/\"\u003e\n    \u003cimg alt=\"Documentação\" src=\"https://img.shields.io/badge/DOCS.LADESA-118d3b?style=for-the-badge\u0026logo=readme\u0026logoColor=white\u0026label=Documenta%C3%A7%C3%A3o\u0026labelColor=18181b\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## 🚀 O que você encontra aqui\n\n### Definições de Entidades\n\nTudo sobre as entidades do Ladesa, suas propriedades e como se relacionam.\n\n### Dados de Comunicação\n\nFormatos e estruturas dos dados para comunicação entre sistemas.\n\n### Artefatos de Integração\n\n[Esquemas JSON](./integrations/json-schema/lib/), pacotes para [C# (NuGet)](#integração-c--dotnet) e [JavaScript/TypeScript (NPM)](#integração-typescript--javascript), todos [gerados automaticamente][ladesa-especificacao-repo-automation].\n\n## 👽 O quê este projeto não é\n\nVocê não encontra neste repositório as informações de como consumir e integrar aos nossos serviços em si. Para isso, indicamos que você consulte a documentação [Conectar — Ladesa Dev Docs](https://docs.ladesa.com.br/developers/connect/).\n\nDessa forma, esta especificação foca em definir quais são os dados e informações pertinentes aos nossos sistemas de maneira detalhada.\n\n\u003c!--\n### 💡 Por que isso é importante?\n\nPara garantir que todos os sistemas funcionem perfeitamente, precisamos que eles se comuniquem de forma clara e padronizada.\n\nO Ladesa desenvolve diversas soluções para a comunidade acadêmica, ajudando a gerenciar informações sobre salas, laboratórios e horários de aula.\n--\u003e\n\n## 🧭 Por onde começar?\n\nPara começar a trabalhar com a Especificação do Ladesa, siga estes passos:\n\n- **Entender os sistemas do Ladesa:** Consulte a [documentação essencial para desenvolvedores][ladesa-docs-dev] para entender os conceitos fundamentais de nossos projetos.\n\n- **Consumir a especificação:** Veja como você pode integrar as modelagens das entidades em seus sistemas, consultando a seção [💖 Utilização](#-utilização).\n\n- **Obter o Código-fonte:** [Clone o repositório](#obter-o-código-fonte) e familiarize-se com a estrutura do projeto.\n\n- **Configurar o Ambiente de Desenvolvimento:** Siga as instruções na seção de [🧑‍💻 Desenvolvimento Local](#-desenvolvimento-local) para configurar seu ambiente de trabalho.\n\n- **Contribuir:** Veja como você pode ajudar a melhorar a especificação, consultando a seção [😊 Como Contribuir](#-como-contribuir).\n\n## Conteúdo\n\n\u003c!-- TOC start (generated with https://github.com/derlin/bitdowntoc) --\u003e\n\n- [💖 Utilização](#-utilização)\n  - [Integração C# / DotNet](#integração-c--dotnet)\n    - [Instalar o pacote para dotnet](#instalar-o-pacote-para-dotnet)\n    - [Utilizar o pacote para dotnet](#utilizar-o-pacote-para-dotnet)\n  - [Integração TypeScript / JavaScript](#integração-typescript--javascript)\n    - [Instalar o pacote para TypeScript / JavaScript](#instalar-o-pacote-para-typescript--javascript)\n    - [Utilizar o pacote para TypeScript / JavaScript](#utilizar-o-pacote-para-typescript--javascript)\n- [🧑‍💻 Desenvolvimento Local](#-desenvolvimento-local)\n  - [Pré-requisitos](#pré-requisitos)\n  - [Obter o código-fonte](#obter-o-código-fonte)\n  - [Instalar as dependências](#instalar-as-dependências)\n  - [Estrutura do projeto](#estrutura-do-projeto)\n  - [Gerar os artefatos da especificação](#gerar-os-artefatos-da-especificação)\n  - [Comandos](#comandos)\n- [😊 Como Contribuir](#-como-contribuir)\n  - [1. Reportar Problemas](#1-reportar-problemas)\n  - [2. Sugerir Melhorias](#2-sugerir-melhorias)\n  - [3. Fazer um Pull Request](#3-fazer-um-pull-request)\n  - [4. Revisar Pull Requests](#4-revisar-pull-requests)\n- [👋 Contato](#-contato)\n- [🤝 Licença](#-licença)\n\n\u003c!-- TOC end --\u003e\n\n## 💖 Utilização\n\nA Especificação do Ladesa pode ser utilizada por:\n\n- **Desenvolvedores:** Para criar e manter aplicações que fazem parte do ecossistema Ladesa, garantindo que os aplicativos sigam as mesmas regras de dados e integração.\n\n- **Integradores:** Para desenvolver integrações entre sistemas existentes e o Ladesa, assegurando interoperabilidade e conformidade com padrões estabelecidos.\n\n- **Analistas de Sistemas:** Para entender como os dados são modelados e gerenciados dentro do ecossistema Ladesa.\n\n### Integração C# / DotNet\n\n[![NuGet Package][nuget-package-src]][nuget-package-href] [![NuGet Stable Version][nuget-package-stable-version-src]][nuget-package-versions-href]\n\n#### Instalar o pacote para dotnet\n\n```sh\ndotnet add package Ladesa.Dtos\n```\n\n#### Utilizar o pacote para dotnet\n\n- Utilização do namespace `Ladesa.Dtos`\n\n```cs\nusing Ladesa.Dtos;\n```\n\n- Conversão de uma `string` `JSON` para uma instância de alguma das classes\n\n```cs\nArquivo arquivo = Arquivo.FromJson(jsonString);\n```\n\n### Integração TypeScript / JavaScript\n\n[![NPM Package][npm-package-src]][npm-package-href] [![NPM Stable Version][npm-package-stable-version-src]][npm-package-versions-href]\n\n#### Instalar o pacote para TypeScript / JavaScript\n\n```sh\n# npm\nnpm install @ladesa-ro/especificacao\n\n# pnpm\npnpm add @ladesa-ro/especificacao\n\n# yarn\nyarn add @ladesa-ro/especificacao\n```\n\n#### Utilizar o pacote para TypeScript / JavaScript\n\n```ts\nimport {} from \"@ladesa-ro/especificacao\";\n```\n\n## 🧑‍💻 Desenvolvimento Local\n\nPara você realizar o desenvolvimento local, preparamos o guia a seguir.\n\n### Pré-requisitos\n\nPara o desenvolvimento local, é necessário preparar o seu ambiente de trabalho para mexer com este projeto.\n\nPreparamos dicas e tutoriais para você acerca de cada pré-requisito, basta clicar nos links para saber mais.\n\n- [Acesso à Linha de Comando](https://docs.ladesa.com.br/developers/tutorials/os/command-line/);\n- [Git](https://docs.ladesa.com.br/developers/tutorials/source-code/git/);\n- [Node.js](https://docs.ladesa.com.br/developers/tutorials/platforms/node/) + Corepack;\n- dotnet.\n\n### Obter o código-fonte\n\nO primeiro passo para o desenvolvimento local é de obter uma cópia dos arquivos deste repositório. Para isso, digite:\n\n```sh\ngit clone https://github.com/ladesa-ro/especificacao.git\ncd especificacao\n```\n\n### Instalar as dependências\n\n```sh\npnpm install\n```\n\n### Estrutura do projeto\n\n\u003c!--\n\nInside of your Astro + Starlight project, you'll see the following folders and files:\n\n```txt\n.\n├── public/\n├── src/\n│   ├── assets/\n│   ├── content/\n│   │   ├── docs/\n│   │   └── config.ts\n│   └── env.d.ts\n├── astro.config.mjs\n├── package.json\n└── tsconfig.json\n```\n\nStarlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.\n\nImages can be added to `src/assets/` and embedded in Markdown with a relative link.\n\nStatic assets, like favicons, can be placed in the `public/` directory.\n\n--\u003e\n\nO projeto está organizado da seguinte forma:\n\n\u003cdetails\u003e\n\n\u003csummary\u003eVisualização em Árvore da estrutura do repositório.\u003c/summary\u003e\n\n```bash\n.\n├── .changeset/                   # Arquivos de configuração e log de mudanças\n│   ├── README.md                 # Instruções sobre changesets\n│   ├── *.md                      # Log de mudanças específico\n│   └── config.json               # Configuração de changesets\n├── .editorconfig                 # Definições de estilo de código\n├── .github/                      # Configurações e ações do GitHub\n│   ├── actions/                  # Ações personalizadas do GitHub\n│   │   ├── prepare-build/        # Preparação para build\n│   │   └── prepare-install/      # Preparação para instalação\n│   ├── workflows/                # Workflows do GitHub Actions\n│   │   ├── continuos-release-publish.yml\n│   │   ├── publish-dotnet.yml\n│   │   ├── publish-npm.yml\n│   │   ├── quality.yml\n│   │   └── release.yml\n│   └── dependabot.yml            # Configuração do Dependabot para atualizações automáticas\n├── .gitignore                    # Arquivos e diretórios ignorados pelo Git\n├── .husky/                       # Configuração de hooks do Git (ex: pre-commit)\n│   └── pre-commit\n├── .vscode/                      # Configurações do Visual Studio Code\n│   ├── extensions.json           # Extensões recomendadas\n│   └── settings.json             # Configurações de ambiente de desenvolvimento\n├── CODEOWNERS                    # Arquivo de proprietários de código\n├── LICENSE                       # Arquivo de licença (MIT)\n├── README.md                     # Arquivo de documentação principal\n├── biome.json                    # Configuração do Biome para o projeto\n├── definitions/                  # Diretório principal contendo definições\n│   ├── biome.json                # Configuração do Biome para definitions\n│   ├── package.json              # Configuração npm do módulo definitions\n│   ├── src/                      # Código-fonte das definições\n│   │   ├── .utils/               # Utilitários compartilhados\n│   │   │   ├── -index.tsp\n│   │   │   ├── common.tsp\n│   │   │   ├── entity-token.tsp\n│   │   │   └── extensions/       # Extensões para decorators\n│   │   │       ├── -index.tsp\n│   │   │       ├── decorators/\n│   │   │       │   ├── -index.tsp\n│   │   │       │   ├── entity.js\n│   │   │       │   ├── entity.tsp\n│   │   │       │   ├── entityPartialOf.js\n│   │   │       │   └── entityPartialOf.tsp\n│   │   │       └── tokens.js\n│   │   ├── autenticacao/          # Definições de autenticação\n│   │   │   ├── -index.tsp\n│   │   │   └── usuario.tsp\n│   │   ├── base/                 # Definições de entidades básicas\n│   │   │   ├── -index.tsp\n│   │   │   ├── arquivo.tsp\n│   │   │   ├── imagem-arquivo.tsp\n│   │   │   └── imagem.tsp\n│   │   └── main.tsp              # Definições principais do projeto\n│   └── tspconfig.json-schema.yaml # Configuração do TypeScript para JSON Schema\n├── integrations/                 # Diretório de artefatos de integração\n│   ├── dotnet/                   # Definições para integração com .NET (C#)\n│   │   ├── Ladesa.Dtos.Test/     # Testes unitários para .NET\n│   │   │   ├── GlobalUsings.cs\n│   │   │   ├── Ladesa.Dtos.Test.csproj\n│   │   │   └── UnitTest1.cs\n│   │   ├── Ladesa.Dtos/          # Definições principais para .NET\n│   │   │   ├── .gitignore\n│   │   │   ├── Ladesa.Dtos.cs\n│   │   │   └── Ladesa.Dtos.csproj\n│   │   ├── Ladesa.Spec.sln       # Solução do .NET para o projeto\n│   │   └── package.json          # Configurações do npm para integração dotnet\n│   ├── json-schema/              # Esquemas JSON para integração\n│   │   ├── lib/                  # Biblioteca de schemas JSON\n│   │   │   ├── Arquivo.json\n│   │   │   ├── ArquivoFindOneInputView.json\n│   │   │   ├── ArquivoFindOneResultView.json\n│   │   │   ├── ArquivoView.json\n│   │   │   ├── DatedObject.json\n│   │   │   ├── EntityToken.json\n│   │   │   ├── Imagem.json\n│   │   │   ├── ImagemArquivo.json\n│   │   │   ├── ObjectUuid.json\n│   │   │   ├── Usuario.json\n│   │   │   ├── date_time.json\n│   │   │   └── uuid.json\n│   │   └── package.json          # Configurações npm para JSON Schema\n│   └── npm/                      # Artefatos npm para integração JavaScript/TypeScript\n│       ├── especificacao/        # Pacote npm da especificação\n│       │   ├── biome.json        # Configuração do Biome para o pacote\n│       │   ├── package.json      # Configurações npm para o pacote especificacao\n│       │   └── src/              # Código-fonte do pacote especificacao\n│       │       └── schemas.ts\n├── package.json                  # Configurações gerais do projeto\n├── pnpm-lock.yaml                # Lockfile do pnpm\n└── pnpm-workspace.yaml           # Configurações do workspace para pnpm\n```\n\n\u003c/details\u003e\n\n### Gerar os artefatos da especificação\n\n```sh\npnpm run build\n```\n\n### Comandos\n\nTodos os comandos são executados a partir da raiz do projeto, em um terminal:\n\n| Comando                       | Ação                                |\n| :---------------------------- | :---------------------------------- |\n| `pnpm install`                | Instala as dependências.            |\n| `pnpm run -w build`           | Gera os artefatos da especificação. |\n| `pnpm run -w code-static:fix` | Correção de lint e formatação.      |\n\n\u003cdetails\u003e\n\n\u003csummary\u003eOutros comandos\u003c/summary\u003e\n\n| Comando                         | Ação                                                |\n| :------------------------------ | :-------------------------------------------------- |\n| `pnpm run -w lint:check`        | Checa as regras do lint.                            |\n| `pnpm run -w lint:fix`          | Corrige erros resolviveis de lint.                  |\n| `pnpm run -w format:check`      | Checa as formatações dos arquivos.                  |\n| `pnpm run -w format:fix`        | Corrige as formatações inconsistêntes dos arquivos. |\n| `pnpm run -w code-static:check` | Checagem de lint e formatação.                      |\n\n\u003c/details\u003e\n\n## 😊 Como Contribuir\n\nEste projeto é open source, e contribuições são sempre bem-vindas! Existem diversas formas de você colaborar com a Especificação do Ladesa:\n\n### 1. Reportar Problemas\n\nSe você encontrou algum problema ou erro na especificação, por favor, abra uma [issue no GitHub][ladesa-especificacao-issues]. Detalhe o máximo possível para que possamos investigar e resolver rapidamente.\n\n### 2. Sugerir Melhorias\n\nTem uma ideia para melhorar a especificação? Sinta-se à vontade para sugerir novas funcionalidades, ajustes ou correções abrindo uma [issue][ladesa-especificacao-issues] ou discutindo na [Ladesa Community][ladesa-docs-community].\n\n### 3. Fazer um Pull Request\n\nSe você já tem uma solução para um problema ou deseja propor uma melhoria no código, siga os passos abaixo para enviar um **pull request**:\n\n1. **Faça um fork** deste repositório.\n2. **Clone o repositório** em sua máquina local.\n3. Crie uma **branch** com o nome da sua funcionalidade ou correção.\n4. Faça as alterações necessárias.\n5. Envie um **pull request** detalhando o que foi alterado e por que.\n\n### 4. Revisar Pull Requests\n\nSe você tiver experiência com o projeto, pode ajudar revisando e sugerindo melhorias nos pull requests abertos por outros colaboradores. A revisão cuidadosa ajuda a garantir que o código mantido esteja sempre em alta qualidade.\n\n\u003e Lembre-se de seguir o [código de conduta][ladesa-especificacao-repo-code-of-conduct] da comunidade em todas as interações.\n\n## 👋 Contato\n\nSe você tiver dúvidas, sugestões ou precisar de ajuda, entre em contato conosco:\n\n- **Email:** `em breve`.\n- **Comunidade:** Participe de discussões e interações na comunidade do Ladesa através do [Ladesa Community][ladesa-docs-community].\n- **GitHub Issues:** Para relatar bugs ou sugerir melhorias, utilize a seção de [Issues do GitHub][ladesa-especificacao-issues].\n\n## 🤝 Licença\n\n[MIT](./LICENSE) © 2024 – presente, Ladesa.\n\n---\n\n⭐ Marque este repositório com estrela se achar útil!\n\n\u003c!-- Links --\u003e\n\n\u003c!-- Links / Docs --\u003e\n\n[ladesa-docs-community]: https://docs.ladesa.com.br/community\n[ladesa-docs-dev]: https://docs.ladesa.com.br/developers\n\n\u003c!-- Links / Especificação --\u003e\n\n[ladesa-especificacao-issues]: https://github.com/ladesa-ro/especificacao/issues\n[ladesa-especificacao-repo-automation]: https://github.com/ladesa-ro/especificacao/tree/development/.github/workflows\n[ladesa-especificacao-repo-code-of-conduct]: https://github.com/ladesa-ro/especificacao/blob/development/CODE_OF_CONDUCT.md\n\n\u003c!-- Badges --\u003e\n\n\u003c!-- Badges / Integrations / NPM --\u003e\n\n[npm-package-src]: https://img.shields.io/badge/npm-%40ladesa--ro%2Fespecificacao-18181B?style=flat\u0026logo=npm\u0026logoColor=white\u0026labelColor=%23CB3837\n[npm-package-href]: https://npmjs.com/package/@ladesa-ro/especificacao\n\n\u003c!-- Badges / Integrations / NPM / Versions --\u003e\n\n[npm-package-versions-href]: https://www.npmjs.com/package/@ladesa-ro/especificacao?activeTab=versions\n[npm-package-stable-version-src]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.npmjs.com%2F%40ladesa-ro%2Fespecificacao\u0026query=%24%5B%22dist-tags%22%5D.latest\u0026prefix=v\u0026style=flat\u0026logo=npm\u0026logoColor=white\u0026label=versão\u0026style=flat\u0026colorA=18181B\u0026colorB=white\n\n\u003c!-- Badges / Integrations / NuGet --\u003e\n\n[nuget-package-src]: https://img.shields.io/badge/nuget-Ladesa.Dtos-18181B?style=flat\u0026logo=nuget\u0026logoColor=white\u0026labelColor=%23004880\n[nuget-package-href]: https://www.nuget.org/packages/Ladesa.Dtos/\n\n\u003c!-- Badges / Integrations / NuGet / Versions --\u003e\n\n[nuget-package-versions-href]: https://www.nuget.org/packages/Ladesa.Dtos#versions-body-tab\n[nuget-package-stable-version-src]: https://img.shields.io/nuget/v/Ladesa.Dtos?style=flat\u0026style=flat\u0026logo=nuget\u0026logoColor=white\u0026label=versão\u0026style=flat\u0026colorA=18181B\u0026colorB=white\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fladesa-ro%2Fespecificacao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fladesa-ro%2Fespecificacao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fladesa-ro%2Fespecificacao/lists"}