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
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
link | reviews.entity-link | yes | ||
entity | reviews.entity | yes | ||
into | reviews.entity | yes | ||
signals | array of string | yes |
|
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 }] }