@vitrina/api 11.52.0 → 11.53.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -116933,6 +116933,8 @@ interface paths {
116933
116933
  * Who is waiting for this car (ADR 0109 §4)
116934
116934
  * @description Which open Búsquedas (customer wants) does THIS unit answer, graded live — `calza` (every bound holds) or `calza_parcial` (the name and years hold; the budget or the kilometres are over by no more than the workspace tolerance, with the difference stated). A want recorded AFTER the car arrived is never missed — this grades the CURRENT row on every call, not an activity log from intake.
116935
116935
  *
116936
+ * `notice` is what became of the notice about THIS car, or `null` when the customer has not heard about it yet. Búsqueda notices go out automatically. `notice.state` is `notified` or `dismissed` (the pair was considered and deliberately not sent); `notice.at` is when; `notice.channel` is the channel it went out on (`whatsapp`, `email`, `instagram`, `voice`, or `human_self` when the want was reserved by a member and only that member was told). `notice.conversation_id` + `notice.message_id` open the exact thread and message the notice went out in — both `null` when the notice has no thread of its own. `notice.replied_at` is the customer’s first message in that thread after the notice (`null` = no reply yet, or no thread to read). `already_notified` is `notice != null`.
116937
+ *
116936
116938
  * ⚠ SCOPE IS `followups:read`, not `marketplace:read` — this reports CRM demand, not stock. ⚠ TENANT-WIDE, not row-visibility-gated: a shared review sheet about a unit in the shared stock. `contact.name` / `contact.phone` are further gated on `contacts:read` — a caller without it still sees the full worklist, minus the customer’s name and phone. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
116937
116939
  */
116938
116940
  get: {
@@ -116993,11 +116995,45 @@ interface paths {
116993
116995
  * "text": "Está $900.000 sobre el presupuesto de $18.000.000"
116994
116996
  * }
116995
116997
  * ],
116996
- * "already_notified": false
116998
+ * "already_notified": false,
116999
+ * "notice": null
117000
+ * },
117001
+ * {
117002
+ * "subscription_id": "5b5b5b5b-0000-4000-8000-000000000002",
117003
+ * "contact_id": "11111111-0000-4000-8000-000000000002",
117004
+ * "contact": {
117005
+ * "id": "11111111-0000-4000-8000-000000000002",
117006
+ * "name": "Tomás Herrera",
117007
+ * "phone": "+56911112222"
117008
+ * },
117009
+ * "lead_id": null,
117010
+ * "owner": null,
117011
+ * "status": "open",
117012
+ * "trigger_key": "vehicle_in_stock",
117013
+ * "criteria": {
117014
+ * "make": "Mazda",
117015
+ * "model": "CX-30"
117016
+ * },
117017
+ * "note": null,
117018
+ * "sought_label": "Mazda CX-30",
117019
+ * "expires_at": "2026-12-01T12:00:00.000Z",
117020
+ * "days_left": 70,
117021
+ * "notice_count": 1,
117022
+ * "verdict": "calza",
117023
+ * "differences": [],
117024
+ * "already_notified": true,
117025
+ * "notice": {
117026
+ * "state": "notified",
117027
+ * "at": "2026-09-29T17:02:00.000Z",
117028
+ * "channel": "whatsapp",
117029
+ * "conversation_id": "7c7c7c7c-0000-4000-8000-000000000001",
117030
+ * "message_id": "8d8d8d8d-0000-4000-8000-000000000001",
117031
+ * "replied_at": "2026-09-29T17:10:41.000Z"
117032
+ * }
116997
117033
  * }
116998
117034
  * ],
116999
117035
  * "meta": {
117000
- * "total": 1
117036
+ * "total": 2
117001
117037
  * }
117002
117038
  * }
117003
117039
  */
@@ -131599,6 +131635,13 @@ interface components {
131599
131635
  people?: number | null;
131600
131636
  /** @description Of `people`, those with at least one outcome the attribution engine credited to an ad — «Resultados desde anuncios». On `current` only; `null` = unknown (the credit is still warming). */
131601
131637
  attributed_people?: number | null;
131638
+ /** @description The days `people` / `attributed_people` count over: the period clipped to the first recorded conversation (the conversation family). Salud’s «Resultados por origen» counts the same window. On `current` only. */
131639
+ people_window?: {
131640
+ from: string;
131641
+ to: string;
131642
+ } | null;
131643
+ /** @description Spend over exactly `people_window` — the only spend a cost per person divides. On `current` only; `null` = unknown. */
131644
+ people_spend?: number | null;
131602
131645
  /**
131603
131646
  * @description Why `attributed_pipeline`, `first_payment_attributed_revenue`, `people` and `attributed_people` are what they are: `ready` = computed; `pending` = the attribution credit is being computed right now — show «Calculando…» and read again in a few seconds (the read never waits for it); `unavailable` = unknown («—»). On `current` only.
131604
131647
  * @enum {string}
@@ -131644,6 +131687,13 @@ interface components {
131644
131687
  people?: number | null;
131645
131688
  /** @description Of `people`, those with at least one outcome the attribution engine credited to an ad — «Resultados desde anuncios». On `current` only; `null` = unknown (the credit is still warming). */
131646
131689
  attributed_people?: number | null;
131690
+ /** @description The days `people` / `attributed_people` count over: the period clipped to the first recorded conversation (the conversation family). Salud’s «Resultados por origen» counts the same window. On `current` only. */
131691
+ people_window?: {
131692
+ from: string;
131693
+ to: string;
131694
+ } | null;
131695
+ /** @description Spend over exactly `people_window` — the only spend a cost per person divides. On `current` only; `null` = unknown. */
131696
+ people_spend?: number | null;
131647
131697
  /**
131648
131698
  * @description Why `attributed_pipeline`, `first_payment_attributed_revenue`, `people` and `attributed_people` are what they are: `ready` = computed; `pending` = the attribution credit is being computed right now — show «Calculando…» and read again in a few seconds (the read never waits for it); `unavailable` = unknown («—»). On `current` only.
131649
131699
  * @enum {string}
@@ -132046,6 +132096,11 @@ interface components {
132046
132096
  signals: components["schemas"]["AdsSignalsScore"];
132047
132097
  coverage: components["schemas"]["AdsCoverage"];
132048
132098
  origins: components["schemas"]["AdsOrigins"];
132099
+ /** @description The days `origins` count over: the period clipped to the first recorded conversation — the same people window as `/ads/overview` `current.people_window`. */
132100
+ people_window?: {
132101
+ from: string;
132102
+ to: string;
132103
+ };
132049
132104
  site: components["schemas"]["AdsSite"];
132050
132105
  /** @description «La medición tiene problemas»: more than 40 % of the people measured after the measurement start (at least 10) have no origin at all. Organic channels, walk-ins and «antes de medir» are healthy. */
132051
132106
  measurement_problem: boolean;
package/dist/index.d.ts CHANGED
@@ -116933,6 +116933,8 @@ interface paths {
116933
116933
  * Who is waiting for this car (ADR 0109 §4)
116934
116934
  * @description Which open Búsquedas (customer wants) does THIS unit answer, graded live — `calza` (every bound holds) or `calza_parcial` (the name and years hold; the budget or the kilometres are over by no more than the workspace tolerance, with the difference stated). A want recorded AFTER the car arrived is never missed — this grades the CURRENT row on every call, not an activity log from intake.
116935
116935
  *
116936
+ * `notice` is what became of the notice about THIS car, or `null` when the customer has not heard about it yet. Búsqueda notices go out automatically. `notice.state` is `notified` or `dismissed` (the pair was considered and deliberately not sent); `notice.at` is when; `notice.channel` is the channel it went out on (`whatsapp`, `email`, `instagram`, `voice`, or `human_self` when the want was reserved by a member and only that member was told). `notice.conversation_id` + `notice.message_id` open the exact thread and message the notice went out in — both `null` when the notice has no thread of its own. `notice.replied_at` is the customer’s first message in that thread after the notice (`null` = no reply yet, or no thread to read). `already_notified` is `notice != null`.
116937
+ *
116936
116938
  * ⚠ SCOPE IS `followups:read`, not `marketplace:read` — this reports CRM demand, not stock. ⚠ TENANT-WIDE, not row-visibility-gated: a shared review sheet about a unit in the shared stock. `contact.name` / `contact.phone` are further gated on `contacts:read` — a caller without it still sees the full worklist, minus the customer’s name and phone. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
116937
116939
  */
116938
116940
  get: {
@@ -116993,11 +116995,45 @@ interface paths {
116993
116995
  * "text": "Está $900.000 sobre el presupuesto de $18.000.000"
116994
116996
  * }
116995
116997
  * ],
116996
- * "already_notified": false
116998
+ * "already_notified": false,
116999
+ * "notice": null
117000
+ * },
117001
+ * {
117002
+ * "subscription_id": "5b5b5b5b-0000-4000-8000-000000000002",
117003
+ * "contact_id": "11111111-0000-4000-8000-000000000002",
117004
+ * "contact": {
117005
+ * "id": "11111111-0000-4000-8000-000000000002",
117006
+ * "name": "Tomás Herrera",
117007
+ * "phone": "+56911112222"
117008
+ * },
117009
+ * "lead_id": null,
117010
+ * "owner": null,
117011
+ * "status": "open",
117012
+ * "trigger_key": "vehicle_in_stock",
117013
+ * "criteria": {
117014
+ * "make": "Mazda",
117015
+ * "model": "CX-30"
117016
+ * },
117017
+ * "note": null,
117018
+ * "sought_label": "Mazda CX-30",
117019
+ * "expires_at": "2026-12-01T12:00:00.000Z",
117020
+ * "days_left": 70,
117021
+ * "notice_count": 1,
117022
+ * "verdict": "calza",
117023
+ * "differences": [],
117024
+ * "already_notified": true,
117025
+ * "notice": {
117026
+ * "state": "notified",
117027
+ * "at": "2026-09-29T17:02:00.000Z",
117028
+ * "channel": "whatsapp",
117029
+ * "conversation_id": "7c7c7c7c-0000-4000-8000-000000000001",
117030
+ * "message_id": "8d8d8d8d-0000-4000-8000-000000000001",
117031
+ * "replied_at": "2026-09-29T17:10:41.000Z"
117032
+ * }
116997
117033
  * }
116998
117034
  * ],
116999
117035
  * "meta": {
117000
- * "total": 1
117036
+ * "total": 2
117001
117037
  * }
117002
117038
  * }
117003
117039
  */
@@ -131599,6 +131635,13 @@ interface components {
131599
131635
  people?: number | null;
131600
131636
  /** @description Of `people`, those with at least one outcome the attribution engine credited to an ad — «Resultados desde anuncios». On `current` only; `null` = unknown (the credit is still warming). */
131601
131637
  attributed_people?: number | null;
131638
+ /** @description The days `people` / `attributed_people` count over: the period clipped to the first recorded conversation (the conversation family). Salud’s «Resultados por origen» counts the same window. On `current` only. */
131639
+ people_window?: {
131640
+ from: string;
131641
+ to: string;
131642
+ } | null;
131643
+ /** @description Spend over exactly `people_window` — the only spend a cost per person divides. On `current` only; `null` = unknown. */
131644
+ people_spend?: number | null;
131602
131645
  /**
131603
131646
  * @description Why `attributed_pipeline`, `first_payment_attributed_revenue`, `people` and `attributed_people` are what they are: `ready` = computed; `pending` = the attribution credit is being computed right now — show «Calculando…» and read again in a few seconds (the read never waits for it); `unavailable` = unknown («—»). On `current` only.
131604
131647
  * @enum {string}
@@ -131644,6 +131687,13 @@ interface components {
131644
131687
  people?: number | null;
131645
131688
  /** @description Of `people`, those with at least one outcome the attribution engine credited to an ad — «Resultados desde anuncios». On `current` only; `null` = unknown (the credit is still warming). */
131646
131689
  attributed_people?: number | null;
131690
+ /** @description The days `people` / `attributed_people` count over: the period clipped to the first recorded conversation (the conversation family). Salud’s «Resultados por origen» counts the same window. On `current` only. */
131691
+ people_window?: {
131692
+ from: string;
131693
+ to: string;
131694
+ } | null;
131695
+ /** @description Spend over exactly `people_window` — the only spend a cost per person divides. On `current` only; `null` = unknown. */
131696
+ people_spend?: number | null;
131647
131697
  /**
131648
131698
  * @description Why `attributed_pipeline`, `first_payment_attributed_revenue`, `people` and `attributed_people` are what they are: `ready` = computed; `pending` = the attribution credit is being computed right now — show «Calculando…» and read again in a few seconds (the read never waits for it); `unavailable` = unknown («—»). On `current` only.
131649
131699
  * @enum {string}
@@ -132046,6 +132096,11 @@ interface components {
132046
132096
  signals: components["schemas"]["AdsSignalsScore"];
132047
132097
  coverage: components["schemas"]["AdsCoverage"];
132048
132098
  origins: components["schemas"]["AdsOrigins"];
132099
+ /** @description The days `origins` count over: the period clipped to the first recorded conversation — the same people window as `/ads/overview` `current.people_window`. */
132100
+ people_window?: {
132101
+ from: string;
132102
+ to: string;
132103
+ };
132049
132104
  site: components["schemas"]["AdsSite"];
132050
132105
  /** @description «La medición tiene problemas»: more than 40 % of the people measured after the measurement start (at least 10) have no origin at all. Organic channels, walk-ins and «antes de medir» are healthy. */
132051
132106
  measurement_problem: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrina/api",
3
- "version": "11.52.0",
3
+ "version": "11.53.1",
4
4
  "description": "Typed TypeScript SDK for the Vitrina API pública — generated from the committed openapi.public.json (ADR 0106).",
5
5
  "type": "module",
6
6
  "license": "MIT",