Lançamentos imobiliários

Um lançamento imobiliário (ou um empreendimento imobiliário) é um tipo de publicação de imóvel dentro do Mercado Livre que permite ao vendedor divulgar e vender unidades de um novo empreendimento, que pode estar na planta, em construção ou construído. A unidade pode ter várias características, conhecidas como variações. Cada variação detalha uma possível unidade a ser vendida, com seus atributos, planos, etc.

 

Pacotes

É necessário que o vendedor tenha um pacote do tipo “lançamento imobiliário”.
NOTA: Para realizar testes, você deverá enviar o seu usuário de teste para o canal de suporte para que seja ativado como real estate, e também para que eles possam associar este usuário a um pacote de lançamentos imobiliários. Para cada ticket, é possível assignar só um anuncio à vez.


Categorias

O integrador deve buscar a categoria correta dentro da árvore de categorias:

https://api.mercadolibre.com/sites/Site_id/categories

A categoria a ser enviada sempre deve ser filha. No exemplo abaixo, a categoria filha é a MLA401805, que é a categoria referente a lançamentos imobiliários. Exemplo: https://api.mercadolibre.com/sites/MLA/categories https://api.mercadolibre.com/categories/MLA1459 - Inmuebles https://api.mercadolibre.com/categories/MLA1472 - Departamentos https://api.mercadolibre.com/categories/MLA1474 - Venta https://api.mercadolibre.com/categories/MLA401805 - Emprendimientos Inmobiliarios
NOTA: Lembre-se que para Brasil, você deve usar o site MLB, e não MLA


Fotos

As fotos das variações (unidades) tem que ser enviadas na API de pictures, como mostra o exemplo mais abaixo (na mesma chamada POST, porém em um array separado). Perceba que as fotos cujos IDs estão relacionadas nas variações, não são exibidas na “home page” do anúncio. Como são fotos das variações, são exibidas na descrição do anúncio e na página de cotações. Já as fotos que não estão relacionadas nas variações, estas sim são exibidas na “home page” do anúncio, na parte superior.


Publicar um lançamento imobiliário

Um lançamento tem que ter no mínimo uma variação (unidade) e todos os atributos e combinações de variações podem ser obtidos através do recurso /attributes da categoria, conforme exemplo abaixo:

https://api.mercadolibre.com/categories/{category_id}/attributes

Uma publicação contém atributos do nível de item, que são as características próprias do empreendimento, e que são representadas dentro da tag “attributes”. O título do lançamento, por exemplo, é representado pelo atributo DEVELOPMENT_NAME. Cada variação dentro do array “variations” representa a unidade em sí. Então, uma variação contem “attribute_combinations”, que seriam a PK da unidade. Não podem existir duas variações com a mesma combinação de valores nos atributos utilizados em “attribute_combinations”. Por exemplo, o valor “UNIT_NAME” pode ser o diferencial. Cada variação tem os próprios atributos da unidade, que se somam as características do empreendimento em geral. Exemplo

curl -X POST -H "Content-Type: application/json" -d {

  "title": "Item de prueba - no ofertar - test - Domus 2222",
  "category_id": "MLA401806",
  "price": 157000,
  "currency_id": "USD",
  "available_quantity": 2,
  "buying_mode": "classified",
  "listing_type_id": "gold_premium",
  "condition": "new",
"location": {
    "address_line": "Solís 2222",
    "zip_code": "",
    "neighborhood": {
      "id": "TUxBQk9MSTgzODNa",
      "name": "Olivos"
    },
    "city": {
      "id": "TUxBQ1ZJQ2E3MTQz",
      "name": "Vicente López"
    },
    "state": {
      "id": "TUxBUEdSQWU4ZDkz",
      "name": "Bs.as. G.b.a. Norte"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    },
    "open_hours": "",
    "latitude": -34.5101161,
    "longitude": -58.4765109
  },

"description": {"plain_text": "Una descripción de prueba  \n"},
  "pictures": [
    {
      "id": "872895-MLA26491094940_122017",
      "url": "http://mla-s2-p.mlstatic.com/872895-MLA26491094940_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/872895-MLA26491094940_122017-O.jpg",
      "size": "500x312",
      "max_size": "1200x750",
      "quality": ""
    },
    {
      "id": "681776-MLA26491106096_122017",
      "url": "http://mla-s2-p.mlstatic.com/681776-MLA26491106096_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/681776-MLA26491106096_122017-O.jpg",
      "size": "500x236",
      "max_size": "1200x567",
      "quality": ""
    },
    {
      "id": "925912-MLA26491099329_122017",
      "url": "http://mla-s2-p.mlstatic.com/925912-MLA26491099329_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/925912-MLA26491099329_122017-O.jpg",
      "size": "500x236",
      "max_size": "1200x567",
      "quality": ""
    },
    {
      "id": "614472-MLA26491102287_122017",
      "url": "http://mla-s2-p.mlstatic.com/614472-MLA26491102287_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/614472-MLA26491102287_122017-O.jpg",
      "size": "500x312",
      "max_size": "1200x750",
      "quality": ""
    },
    {
      "id": "657426-MLA26491106124_122017",
      "url": "http://mla-s2-p.mlstatic.com/657426-MLA26491106124_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/657426-MLA26491106124_122017-O.jpg",
      "size": "500x312",
      "max_size": "1200x750",
      "quality": ""
    },
    {
      "id": "600555-MLA26491106130_122017",
      "url": "http://mla-s2-p.mlstatic.com/600555-MLA26491106130_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/600555-MLA26491106130_122017-O.jpg",
      "size": "500x312",
      "max_size": "1200x750",
      "quality": ""
    },
    {
      "id": "919897-MLA26491061564_122017",
      "url": "http://mla-s2-p.mlstatic.com/919897-MLA26491061564_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/919897-MLA26491061564_122017-O.jpg",
      "size": "500x353",
      "max_size": "1200x848",
      "quality": ""
    },
    {
      "id": "674837-MLA26491070000_122017",
      "url": "http://mla-s2-p.mlstatic.com/674837-MLA26491070000_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/674837-MLA26491070000_122017-O.jpg",
      "size": "500x353",
      "max_size": "1200x848",
      "quality": ""
    },
    {
      "id": "913036-MLA26491092856_122017",
      "url": "http://mla-s2-p.mlstatic.com/913036-MLA26491092856_122017-O.jpg",
      "secure_url": "https://mla-s2-p.mlstatic.com/913036-MLA26491092856_122017-O.jpg",
      "size": "500x353",
      "max_size": "1200x848",
      "quality": ""
    }
  ],
  "shipping": {
    "mode": "not_specified",
    "methods": [],
    "tags": [],
    "dimensions": null,
    "local_pick_up": false,
    "free_shipping": false,
    "logistic_type": "not_specified",
    "store_pick_up": false
  },

  "seller_address": {
    "comment": "",
    "address_line": "Av. Libertador 4189",
    "zip_code": "1636",
    "city": {
      "id": "TUxBQ1ZJQ2E3MTQz",
      "name": "Vicente López"
    },
    "state": {
      "id": "AR-B",
      "name": "Buenos Aires"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    }
    
  },

  "attributes": [
    {
      "id": "AVAILABLE_PARKING_SLOTS",
      "name": "Cocheras disponibles",
      "value_id": null,
      "value_name": "82",
      "value_struct": null,
      "attribute_group_id": "ADDITIONAL_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características adicionales del desarrollo"
    },
    {
      "id": "HAS_LIFT",
      "name": "Ascensor",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "ADDITIONAL_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características adicionales del desarrollo"
    },
    {
      "id": "PARKING_PRICE_FROM",
      "name": "Precio cochera (Desde)",
      "value_id": null,
      "value_name": "30000",
      "value_struct": null,
      "attribute_group_id": "ADDITIONAL_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características adicionales del desarrollo"
    },
    {
      "id": "HAS_BARBECUE_AREA",
      "name": "Área de parrillas",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_BUSINESS_CENTER",
      "name": "Business center",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_CINEMA_HALL",
      "name": "Área de cine",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_CISTERN",
      "name": "Cisterna",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_COMMON_LAUNDRY",
      "name": "Laundry",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_FIRE_SYSTEM",
      "name": "Sistema contra incendio",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_GUEST_PARKING",
      "name": "Estacionamiento para visitantes",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_GYM",
      "name": "Gimnasio",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_JACUZZI",
      "name": "Jacuzzi",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_JOGGING_TRACK",
      "name": "Pista de jogging",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_LOBBY",
      "name": "Lobby",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_MULTIPURPOSE_ROOM",
      "name": "Salón de usos múltiples",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_PLAYGROUND",
      "name": "Área de juegos infantiles",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_SECURITY",
      "name": "Seguridad",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_STRIP_MALL",
      "name": "Locales comerciales",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_SWIMMING_POOL",
      "name": "Pileta",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "HAS_TENNIS_COURT",
      "name": "Cancha de tenis",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "COMOYAMEN",
      "attribute_group_name": "Comodidades y amenities"
    },
    {
      "id": "MAX_BATHROOMS",
      "name": "Cantidad máxima de baños",
      "value_id": null,
      "value_name": "2",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MAX_BEDROOMS",
      "name": "Cantidad máxima de dormitorios",
      "value_id": null,
      "value_name": "3",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MAX_COVERED_AREA",
      "name": "Cantidad máxima de metros cubiertos",
      "value_id": null,
      "value_name": "176 m²",
      "value_struct": {
        "number": 176,
        "unit": "m²"
      },
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MAX_ROOMS",
      "name": "Cantidad máxima de ambientes",
      "value_id": null,
      "value_name": "4",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MAX_TOTAL_AREA",
      "name": "Cantidad máxima de metros totales",
      "value_id": null,
      "value_name": "194 m²",
      "value_struct": {
        "number": 194,
        "unit": "m²"
      },
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MIN_BATHROOMS",
      "name": "Cantidad mínima de baños",
      "value_id": null,
      "value_name": "1",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MIN_BEDROOMS",
      "name": "Cantidad mínima de dormitorios",
      "value_id": null,
      "value_name": "1",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MIN_COVERED_AREA",
      "name": "Cantidad mínima de metros cubiertos",
      "value_id": null,
      "value_name": "40.79 m²",
      "value_struct": {
        "number": 40.79,
        "unit": "m²"
      },
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MIN_ROOMS",
      "name": "Cantidad mínima de ambientes",
      "value_id": null,
      "value_name": "1",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MIN_TOTAL_AREA",
      "name": "Cantidad mínima de metros totales",
      "value_id": null,
      "value_name": "55.15 m²",
      "value_struct": {
        "number": 55.15,
        "unit": "m²"
      },
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "SELECTED_PACKAGE",
      "name": "Paquete seleccionado",
      "value_id": null,
      "value_name": "1673515",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "OPERATION",
      "name": "Operación",
      "value_id": "242075",
      "value_name": "Venta",
      "value_struct": null,
      "attribute_group_id": "MAIN",
      "attribute_group_name": "Principales"
    },
    {
      "id": "OPERATION_SUBTYPE",
      "name": "Subtipo de operación",
      "value_id": "245034",
      "value_name": "Emprendimiento inmobiliario",
      "value_struct": null,
      "attribute_group_id": "MAIN",
      "attribute_group_name": "Principales"
    },
    {
      "id": "PROPERTY_TYPE",
      "name": "Inmueble",
      "value_id": "242062",
      "value_name": "Departamento",
      "value_struct": null,
      "attribute_group_id": "MAIN",
      "attribute_group_name": "Principales"
    },
    {
      "id": "DEVELOPMENT_NAME",
      "name": "Nombre del emprendimiento",
      "value_id": null,
      "value_name": "item de test - no ofertar - DOMUS 2222",
      "value_struct": null,
      "attribute_group_id": "MAIN_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características principales del desarrollo"
    },
    {
      "id": "POSSESSION_DATE",
      "name": "Fecha de entrega",
      "value_id": null,
      "value_name": "Enero 2019",
      "value_struct": null,
      "attribute_group_id": "MAIN_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características principales del desarrollo"
    },
    {
      "id": "POSSESSION_STATUS",
      "name": "Entrega",
      "value_id": "242414",
      "value_name": "Preventa",
      "value_struct": null,
      "attribute_group_id": "MAIN_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características principales del desarrollo"
    },
    {
      "id": "SUITABLE_FOR_MORTGAGE_LOAN",
      "name": "Apto crédito",
      "value_id": "242084",
      "value_name": "No",
      "value_struct": null,
      "attribute_group_id": "MAIN_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características principales del desarrollo"
    },
    {
      "id": "UNITS",
      "name": "Unidades totales",
      "value_id": null,
      "value_name": "66",
      "value_struct": null,
      "attribute_group_id": "MAIN_CHARACTERISTICS_OF_DEVELOPMENT",
      "attribute_group_name": "Características principales del desarrollo"
    }
  ],
  "variations": [
    {
      "price": 158000,
      "attribute_combinations": [
        {
          "id": "ROOMS",
          "name": "Ambientes",
          "value_id": null,
          "value_name": "2",
          "value_struct": null
        },
        {
          "id": "FULL_BATHROOMS",
          "name": "Baños",
          "value_id": null,
          "value_name": "1",
          "value_struct": null
        },
        {
          "id": "PARKING_LOTS",
          "name": "Cocheras",
          "value_id": null,
          "value_name": "0",
          "value_struct": null
        },
        {
          "id": "BEDROOMS",
          "name": "Dormitorios",
          "value_id": null,
          "value_name": "1",
          "value_struct": null
        },
        {
          "id": "UNIT_NAME",
          "name": "Nombre de la unidad",
          "value_id": null,
          "value_name": "110",
          "value_struct": null
        },
        {
          "id": "MODEL_NAME",
          "name": "Nombre del modelo",
          "value_id": null,
          "value_name": "2 AMBIENTES",
          "value_struct": null
        },
        {
          "id": "COVERED_AREA",
          "name": "Superficie cubierta",
          "value_id": null,
          "value_name": "51 m²",
          "value_struct": {
            "number": 51,
            "unit": "m²"
          }
        },
        {
          "id": "TOTAL_AREA",
          "name": "Superficie total",
          "value_id": null,
          "value_name": "57 m²",
          "value_struct": {
            "number": 57,
            "unit": "m²"
          }
        }
      ],
      "available_quantity": 1,
      "sold_quantity": 0,
      "sale_terms": [],
      "picture_ids": [
        "674837-MLA26491070000_122017"
      ]
      
    },
    {
      "price": 161000,
      "attribute_combinations": [
        {
          "id": "ROOMS",
          "name": "Ambientes",
          "value_id": null,
          "value_name": "1",
          "value_struct": null
        },
        {
          "id": "FULL_BATHROOMS",
          "name": "Baños",
          "value_id": null,
          "value_name": "1",
          "value_struct": null
        },
        {
          "id": "PARKING_LOTS",
          "name": "Cocheras",
          "value_id": null,
          "value_name": "0",
          "value_struct": null
        },
        {
          "id": "BEDROOMS",
          "name": "Dormitorios",
          "value_id": null,
          "value_name": "1",
          "value_struct": null
        },
        {
          "id": "UNIT_NAME",
          "name": "Nombre de la unidad",
          "value_id": null,
          "value_name": "3 OESTE",
          "value_struct": null
        },
        {
          "id": "MODEL_NAME",
          "name": "Nombre del modelo",
          "value_id": null,
          "value_name": "1 AMBIENTE",
          "value_struct": null
        },
        {
          "id": "COVERED_AREA",
          "name": "Superficie cubierta",
          "value_id": null,
          "value_name": "40.79 m²",
          "value_struct": {
            "number": 40.79,
            "unit": "m²"
          }
        },
        {
          "id": "TOTAL_AREA",
          "name": "Superficie total",
          "value_id": null,
          "value_name": "55.15 m²",
          "value_struct": {
            "number": 55.15,
            "unit": "m²"
          }
        }
      ],
      "available_quantity": 1,
      
      
      "picture_ids": [
        "913036-MLA26491092856_122017"
      ]
      
      
    }
  ]
  }

https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN


Cotações

Uma cotação ocorre quando um possível comprador realiza uma cotação em um anúncio do tipo “lançamento imobiliário”. Ele escolhe a planta e a unidade, e a partir daí, pode saber o preço. Uma cotação é um documento que contem informação do vendedor, do item e do comprador, no momento que a cotação é criada. Quando o usuário solicita uma cotação, a informação do item é “congelada” e mantem assim para garantir o preço do momento em que a cotação foi realizada, caso existam alterações posteriores. Para alguns métodos abaixo, o integrador deve enviar a variável “caller.type” para identificar quem é o chamador da ação. Pode ser “seller” ou “user”. Geralmente para as aplicações de lançamentos, será o seller está pessoa.


Como seu app sabe de uma cotação?

A criação de uma cotação é um evento que se produz do lado do Mercado Livre, portanto, você deverá se cadastrar no nosso feed de quotations para saber em tempo real quando esse evento ocorre.
Vá para o nosso Gerenciador de Aplicativos e edite as Configurações de Notificações de seu aplicativo. Mais informações sobre criar e configurar um novo aplicativo neste link.
Você deve selecionar um Callback URL: configure a URL pública do domínio onde você quiser receber todas as notificações do Mercado Livre. 
Nota: Se quiser habilitar as notificações de cotações, selecione a opção “quotations”, seção “Topics”, no gerenciador de aplicativos.
Esta configuração permite que você interaja com as notificações do Mercado Livre. Todas as cotações realizadas pelos interessados nos anúncios de empreendimentos serão notificadas no seu callback URL.


Criar uma cotação

Deve ser usado um HTTP POST com os 3 parâmetros: usuário que faz a cotação (user_id), código do anúncio (item_id) e o código da variação do empreendimento (variation_id):

{
“user_id”: $buyerId
“item_id”: “$itemId”
“variation_id”:$variationId
}
htts://api.mercadolibre.com/quotations?access_token=$access_token


Buscar cotações de um seller

Para buscar, usar um HTTP GET no seguinte formato:

curl https://api.mercadolibre.com/quotations/?caller.type=seller&access_token=$access_token


Buscar uma cotação

Para buscar este número, usar um HTTP GET no seguinte formato:

curl https://api.mercadolibre.com/quotations/$quotationId?caller.type=$caller.type&access_token=$access_token’


Consultar um relatório de cotações por vendedor

Para consultar este número, usar um HTTP GET no seguinte formato:

https://api.mercadolibre.com/quotations/report?access_token=$access_token&seller.id=$seller.id

Faça parte da nossa comunidade