> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Organization

> Entidade base de tenant para RBAC, cooperativas e empresas

## Campos

| Campo            | Tipo                 | Descrição                                              |
| ---------------- | -------------------- | ------------------------------------------------------ |
| `organizationId` | `UUID`               | Identificador único                                    |
| `type`           | `OrganizationType`   | Tipo da organização                                    |
| `name`           | `String`             | Razão social ou nome fantasia                          |
| `document`       | `String`             | CNPJ da organização                                    |
| `documentType`   | `DocumentType`       | Tipo do documento                                      |
| `logo`           | `String?`            | Chave do objeto de armazenamento do logotipo           |
| `phoneIso`       | `String?`            | Código ISO do país do telefone                         |
| `phoneDdi`       | `String?`            | DDI do telefone                                        |
| `phoneNumber`    | `String?`            | Número do telefone                                     |
| `phoneVerified`  | `Boolean`            | Indica se o telefone foi verificado                    |
| `email`          | `String?`            | Email de contato da organização                        |
| `emailVerified`  | `Boolean`            | Indica se o email foi verificado                       |
| `status`         | `OrganizationStatus` | Status operacional da organização                      |
| `createdBy`      | `UUID?`              | Usuário que criou o registro, quando aplicável         |
| `createdAt`      | `DateTime`           | Data de criação                                        |
| `updatedBy`      | `UUID?`              | Usuário que fez a última atualização, quando aplicável |
| `updatedAt`      | `DateTime`           | Data da última atualização                             |
| `deletedBy`      | `UUID?`              | Usuário que removeu o registro, quando aplicável       |
| `deletedAt`      | `DateTime?`          | Data de remoção                                        |

## Relacionamentos

* **Has one (optional)** [Company](/data-modelling/tenant/company)
* **Has one (optional)** [Cooperative](/data-modelling/tenant/cooperative)
* **Has one (optional)** [OrganizationAddress](/data-modelling/tenant/organization-address)
* Relaciona-se com múltiplos [Role](/data-modelling/authorization/role)
* Relaciona-se com múltiplos [Membership](/data-modelling/tenant/membership)
* Relaciona-se com múltiplos [Invite](/data-modelling/tenant/invite)
* Relaciona-se com múltiplos [AuditLog](/data-modelling/observability/audit-log)
* Relaciona-se com múltiplos [Payment](/data-modelling/billing/payment) quando representa uma empresa
* Relaciona-se com múltiplos [Receivable](/data-modelling/billing/receivable) quando representa uma empresa
* Relaciona-se com múltiplos [Transfer](/data-modelling/billing/transfer) quando representa uma empresa

## Regras de Negócio

* A `Organization` é a entidade base de tenant e RBAC do sistema.
* O campo `document` (CNPJ) deve ser único.
* O campo `type` representa o tipo da organização, podendo ser `COOPERATIVE` ou `COMPANY`.
* Cooperativas administram empresas, mas não participam do fluxo de billing.
* Empresas são a unidade operacional e financeira do domínio de transporte.
* A relação Cooperativa -> Empresa é modelada em [Company.cooperativeId](/data-modelling/tenant/company), mantendo cada entidade com sua própria `Organization`.
* `status` centraliza bloqueio e inativação administrativa para Company e Cooperative.
* Organizações `BLOCKED` não devem permitir novas operações no escopo afetado.

## Enums

### OrganizationType

| Valor         | Descrição                                     |
| ------------- | --------------------------------------------- |
| `COOPERATIVE` | Cooperativa que administra empresas afiliadas |
| `COMPANY`     | Empresa de transporte                         |

### OrganizationStatus

| Valor      | Descrição                                 |
| ---------- | ----------------------------------------- |
| `ACTIVE`   | Organização ativa                         |
| `INACTIVE` | Organização inativa para operação         |
| `BLOCKED`  | Organização bloqueada administrativamente |

## Example

```json theme={null}
{
  "organizationId": "0197a7f7-7291-7a43-96db-2c8580b80c5d",
  "type": "COOPERATIVE",
  "name": "Cooperativa Metropolitana",
  "document": "12345678000190",
  "documentType": "CNPJ",
  "logo": "organizations/0197a7f7-7291-7a43-96db-2c8580b80c5d/logo.webp",
  "phoneIso": "BR",
  "phoneDdi": "55",
  "phoneNumber": "1133224455",
  "phoneVerified": true,
  "email": "contato@metropolitana.example.com",
  "emailVerified": true,
  "status": "ACTIVE",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T13:00:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T13:15:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
