ReviewsEntityMergeResult reviews.entity-merge-result@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
reviews
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/reviews/entity-merge-result.v1.json

reviews.entity-merge-result@1: the answer of reviews.entity.merge on OpenVibe.Reviews: POST /api/v1/entities/:ref/merge → { link, entity, into, signals } — the merged_into link, the merged entity, the entity it now lives under (its aggregate recomputed over both) and the ids of the active signals that now count there. Emits reviews.entity.merged.

Fields

FieldTypeRequiredDescriptionConstraints
linkreviews.entity-linkyes
entityreviews.entityyes
intoreviews.entityyes
signalsarray of stringyes
  • items: pattern ^sig_[0-9A-HJKMNP-TV-Z]{26}$

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: merged
{
  "link": {
    "id": "lnk_01JAC5M6N7P8Q9R0S1T2V3W4X5",
    "from_entity": "ent_01JAC1E3N3T4V5W6X7Y8Z9A0B1",
    "to_entity": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "type": "merged_into",
    "ref": null,
    "note": "Same headphones, regional name",
    "created_by": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "created_at": 1790241000000,
    "ended_at": null,
    "ended_by": null,
    "end_note": null
  },
  "entity": {
    "id": "ent_01JAC1E3N3T4V5W6X7Y8Z9A0B1",
    "slug": "lumen-x2-headphones",
    "name": "Lumen X2 Headphones",
    "kind": "product",
    "description": null,
    "state": "merged",
    "merged_into": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "canonical_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "noindex": false,
    "url": "https://openvibe.reviews/e/lumen-x2-headphones",
    "created_at": "2026-09-24T08:15:00.000Z",
    "updated_at": "2026-09-24T09:40:12.000Z"
  },
  "into": {
    "id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "slug": "lumen-x2-headphones",
    "name": "Lumen X2 Headphones",
    "kind": "product",
    "description": null,
    "state": "active",
    "merged_into": null,
    "canonical_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "noindex": false,
    "url": "https://openvibe.reviews/e/lumen-x2-headphones",
    "created_at": "2026-09-24T08:15:00.000Z",
    "updated_at": "2026-09-24T09:40:12.000Z"
  },
  "signals": [
    "sig_01JAC2S4G4H5J6K7M8N9P0Q1R2"
  ]
}
Rejected: signals-as-count
{
  "link": {
    "id": "lnk_01JAC5M6N7P8Q9R0S1T2V3W4X5",
    "from_entity": "ent_01JAC1E3N3T4V5W6X7Y8Z9A0B1",
    "to_entity": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "type": "merged_into",
    "ref": null,
    "note": "Same headphones, regional name",
    "created_by": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "created_at": 1790241000000,
    "ended_at": null,
    "ended_by": null,
    "end_note": null
  },
  "entity": {
    "id": "ent_01JAC1E3N3T4V5W6X7Y8Z9A0B1",
    "slug": "lumen-x2-headphones",
    "name": "Lumen X2 Headphones",
    "kind": "product",
    "description": null,
    "state": "active",
    "merged_into": null,
    "canonical_id": "ent_01JAC1E3N3T4V5W6X7Y8Z9A0B1",
    "noindex": false,
    "url": "https://openvibe.reviews/e/lumen-x2-headphones",
    "created_at": "2026-09-24T08:15:00.000Z",
    "updated_at": "2026-09-24T09:40:12.000Z"
  },
  "into": {
    "id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "slug": "lumen-x2-headphones",
    "name": "Lumen X2 Headphones",
    "kind": "product",
    "description": null,
    "state": "active",
    "merged_into": null,
    "canonical_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
    "noindex": false,
    "url": "https://openvibe.reviews/e/lumen-x2-headphones",
    "created_at": "2026-09-24T08:15:00.000Z",
    "updated_at": "2026-09-24T09:40:12.000Z"
  },
  "signals": 1
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('reviews.entity-merge-result@1', value);   // { valid, errors: [{ path, message }] }