{
    "success": true,
    "error": null,
    "table": "accommodation",
    "generated_at": "2026-04-05T21:56:24+00:00",
    "column_count": 81,
    "columns": [
        {
            "field": "id",
            "type": "int(11)",
            "null": "NO",
            "key": "PRI",
            "default": null,
            "extra": "auto_increment",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "api_id",
            "type": "varchar(128)",
            "null": "NO",
            "key": "UNI",
            "default": null,
            "extra": "",
            "comment": "Identificador API Beds (propKey \/ propId)",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_prop_key",
            "type": "varchar(128)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "PropKey longo Beds24 (getPropertyContent) se diferente de api_id",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_synced_at",
            "type": "datetime",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Última sincronização com Beds24 (import ou refresh)",
            "typically_from_channel_api": null
        },
        {
            "field": "name",
            "type": "varchar(255)",
            "null": "NO",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "listing_short_name",
            "type": "varchar(191)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Nome curto (UI interna; não substitui name)",
            "typically_from_channel_api": null
        },
        {
            "field": "typology",
            "type": "varchar(32)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Tipologia (nº quartos \/ tipo): Room, T1, V2, etc.",
            "typically_from_channel_api": null
        },
        {
            "field": "is_virtual_listing",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "1 = anúncio virtual (duplicado); calendário pode agregar membros mapeados",
            "typically_from_channel_api": null
        },
        {
            "field": "duplicated_from_accommodation_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "accommodation.id do anúncio origem da duplicação (auditoria)",
            "typically_from_channel_api": null
        },
        {
            "field": "calendar_listing_kind",
            "type": "enum('REAL','VARIANT','GROUP')",
            "null": "NO",
            "key": "MUL",
            "default": "REAL",
            "extra": "",
            "comment": "REAL=inventário canónico; VARIANT=anúncio do mesmo quarto (usa anchor); GROUP=combo resort (membros em accommodation_virtual_calendar_member)",
            "typically_from_channel_api": null
        },
        {
            "field": "calendar_inventory_anchor_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "Só VARIANT: FK lógica para accommodation.id com calendar_listing_kind=REAL",
            "typically_from_channel_api": null
        },
        {
            "field": "description_short",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Resumo\/descrição curta",
            "typically_from_channel_api": null
        },
        {
            "field": "description_long",
            "type": "text",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Descrição completa (HTML ou texto)",
            "typically_from_channel_api": null
        },
        {
            "field": "pictures",
            "type": "text",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "URLs das fotos (JSON array)",
            "typically_from_channel_api": null
        },
        {
            "field": "tags",
            "type": "text",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Etiquetas\/categorias (JSON array de strings)",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_extra",
            "type": "text",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Dados completos Beds24 (merge lista + getProperty + API V2) em JSON",
            "typically_from_channel_api": null
        },
        {
            "field": "type",
            "type": "varchar(50)",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_prop_type_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 propTypeId",
            "typically_from_channel_api": null
        },
        {
            "field": "status",
            "type": "varchar(50)",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_status",
            "type": "enum('active','inactive','suspended')",
            "null": "NO",
            "key": "MUL",
            "default": "active",
            "extra": "",
            "comment": "Estado operacional para catálogo\/ops (independente de status DELETED legado)",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_reason_code",
            "type": "varchar(64)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_reason_detail",
            "type": "varchar(1000)",
            "null": "NO",
            "key": "",
            "default": "",
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_status_changed_at",
            "type": "datetime",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_status_actor_user_id",
            "type": "varchar(64)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_status_actor_user_name",
            "type": "varchar(190)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "operational_status_change_source",
            "type": "enum('manual','auto')",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "clean",
            "type": "tinyint(1)",
            "null": "YES",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "units",
            "type": "int(11)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Número de unidades",
            "typically_from_channel_api": null
        },
        {
            "field": "subType",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "purpose",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "pricingModel",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "updatedAt",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "created_at",
            "type": "timestamp",
            "null": "NO",
            "key": "",
            "default": "current_timestamp()",
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "updated_at",
            "type": "timestamp",
            "null": "NO",
            "key": "",
            "default": "current_timestamp()",
            "extra": "on update current_timestamp()",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "capacity_maxAmount",
            "type": "int(11)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "capacity_minAmount",
            "type": "int(11)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_countryCode",
            "type": "varchar(10)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_cityName",
            "type": "varchar(150)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_resort",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_coordinates_lat",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_coordinates_lon",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_admin1",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_admin2",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "location_address",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Morada completa (Beds24 address)",
            "typically_from_channel_api": null
        },
        {
            "field": "location_postalCode",
            "type": "varchar(20)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Código postal (Beds24 postcode)",
            "typically_from_channel_api": null
        },
        {
            "field": "registry_tourismRegistrationNumber",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "registry_legalEntityId",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "owner_id",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_account_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "Conta Beds24 (reseller) responsável",
            "typically_from_channel_api": null
        },
        {
            "field": "_links_self",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Sincronizado de API: List Accommodations",
            "typically_from_channel_api": null
        },
        {
            "field": "_links_availabilities",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Sincronizado de API: List Accommodations",
            "typically_from_channel_api": null
        },
        {
            "field": "_links_gallery",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Sincronizado de API: List Accommodations",
            "typically_from_channel_api": null
        },
        {
            "field": "_links_occupation_rule",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Sincronizado de API: List Accommodations",
            "typically_from_channel_api": null
        },
        {
            "field": "_links_rate",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Sincronizado de API: List Accommodations",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_firstName",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Nome do contacto (Beds24 contactFirstName)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_lastName",
            "type": "varchar(100)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Apelido do contacto (Beds24 contactLastName)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_phone",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Telefone (Beds24 phone)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_mobile",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Telemóvel (Beds24 mobile)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_fax",
            "type": "varchar(50)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Fax (Beds24 fax)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_email",
            "type": "varchar(255)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Email (Beds24 email)",
            "typically_from_channel_api": null
        },
        {
            "field": "contact_web",
            "type": "varchar(500)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Site (Beds24 web)",
            "typically_from_channel_api": null
        },
        {
            "field": "currency",
            "type": "varchar(10)",
            "null": "YES",
            "key": "",
            "default": "EUR",
            "extra": "",
            "comment": "Moeda (Beds24 currency)",
            "typically_from_channel_api": null
        },
        {
            "field": "cutOffHour",
            "type": "tinyint(3) unsigned",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Hora limite check-in 0-24 (Beds24 cutOffHour)",
            "typically_from_channel_api": null
        },
        {
            "field": "vatRate",
            "type": "decimal(5,2)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Taxa IVA % (Beds24 vatRate)",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_control_priority",
            "type": "int(11)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 controlPriority",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_notify_url",
            "type": "varchar(512)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 notifyUrl",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_notify_data",
            "type": "varchar(64)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 notifyData",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_notify_header",
            "type": "text",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 notifyHeader",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_templates",
            "type": "longtext",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Beds24 template1..template8 (objeto JSON)",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_channel_integrations",
            "type": "longtext",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Campos Beds24 agoda*\/airbnb*\/booking*\/ical*\/etc. (objeto JSON)",
            "typically_from_channel_api": null
        },
        {
            "field": "api_map",
            "type": "longtext",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "Origem API v1\/v2, flags de import, amostra de chaves (JSON)",
            "typically_from_channel_api": null
        },
        {
            "field": "property_is_active",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "1=activa na gocore; 0 até relação\/configuração",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_property_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "Property id numérico Beds24 (espelho; alinhar com import\/API v2)",
            "typically_from_channel_api": null
        },
        {
            "field": "smoobu_apartment_id",
            "type": "int(10) unsigned",
            "null": "YES",
            "key": "MUL",
            "default": null,
            "extra": "",
            "comment": "Apartamento\/listing id Smoobu (espelho; também em channel_property_connections)",
            "typically_from_channel_api": null
        },
        {
            "field": "beds24_channel_enabled",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "0=inactivo por defeito; 1 após mapa\/relação Beds24",
            "typically_from_channel_api": null
        },
        {
            "field": "smoobu_channel_enabled",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "0=inactivo por defeito; 1 após mapa Smoobu↔Beds24",
            "typically_from_channel_api": null
        },
        {
            "field": "su_api_channel_enabled",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "avantio_channel_enabled",
            "type": "tinyint(1)",
            "null": "NO",
            "key": "",
            "default": "0",
            "extra": "",
            "comment": "",
            "typically_from_channel_api": null
        },
        {
            "field": "partner_ical_token",
            "type": "varchar(48)",
            "null": "YES",
            "key": "UNI",
            "default": null,
            "extra": "",
            "comment": "Token opaco URL feed iCal (parceiros)",
            "typically_from_channel_api": null
        },
        {
            "field": "partner_ical_import_url",
            "type": "varchar(768)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "URL iCal externo (portal) — referência \/ import futuro",
            "typically_from_channel_api": null
        },
        {
            "field": "airbnb_listing_url",
            "type": "varchar(768)",
            "null": "YES",
            "key": "",
            "default": null,
            "extra": "",
            "comment": "URL público do anúncio Airbnb (\/rooms\/id)",
            "typically_from_channel_api": null
        }
    ],
    "links": {
        "self_json": "https:\/\/www.checkinall.com\/accommodation\/docs\/accommodation_variables_list.php?table=accommodation&format=json",
        "self_html": "https:\/\/www.checkinall.com\/accommodation\/docs\/accommodation_variables_list.php?table=accommodation",
        "other_table_html": "https:\/\/www.checkinall.com\/accommodation\/docs\/accommodation_variables_list.php?table=accommodation_bedroom"
    },
    "note": "typically_from_channel_api: true = mapeamento habitual no gocore_channel_import; false = sobretudo BD\/derivado; null = não classificado neste ficheiro."
}