@vitrina/api 11.46.2 → 11.47.0

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
@@ -115712,7 +115712,15 @@ interface paths {
115712
115712
  *
115713
115713
  * `sin_costo` (ADR 0114 §8, «Sin costo») counts the active, non-vendido cars with NO acquisition — no nota de compra, contrato de consignación or parte de pago — so their cost is unknown. Opens with `GET /vehicles?view=sin_costo`, the same predicate. A statement about the cost basis: ABSENT (not 0) for a caller without `dealership_economics:read`.
115714
115714
  *
115715
- * `mandato_sin_firmar` (ADR 0114 §5) counts the cars whose consignación (activa, or vendida) has an emitted mandato and no signed copy filed in the expediente. Opens with `GET /vehicles?view=mandato_sin_firmar`, the same predicate. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
115715
+ * `mandato_sin_firmar` (ADR 0114 §5) counts the cars whose consignación (activa, or vendida) has an emitted mandato and no signed copy filed in the expediente. Opens with `GET /vehicles?view=mandato_sin_firmar`, the same predicate.
115716
+ *
115717
+ * The «Datos por completar» and «Pendientes» facet counts of the Stock filters (ADR 0114) — each is the length of the list it opens, built from the same predicate, over the whole lot like `total`:
115718
+ * - `needs_review` — «Revisar marca/modelo»: the marca or modelo did not match the catalogue on save and waits for a person. Opens with `GET /vehicles?active=false&needs_review=true`.
115719
+ * - `sin_sucursal` — «Sin sucursal»: no sucursal assigned. Opens with `GET /vehicles?active=false&sin_sucursal=true`. Always 0 for a member who only sees their own sucursales.
115720
+ * - `sin_estacionamiento` — «Sin estacionamiento»: no estacionamiento in the patio. Opens with `GET /vehicles?active=false&sin_estacionamiento=true`.
115721
+ * - `source_deactivated` — «Retirados del portal»: the portal withdrew the car, it is deactivated and still `disponible`, so nobody has said whether it was sold. Opens with `GET /vehicles?view=source_deactivated`.
115722
+ *
115723
+ * Every count respects the caller’s sucursal scope (ADR 0102), the same ceiling the list applies. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
115716
115724
  */
115717
115725
  get: {
115718
115726
  parameters: {
@@ -115744,6 +115752,10 @@ interface paths {
115744
115752
  * "stale": 0,
115745
115753
  * "sin_costo": 7,
115746
115754
  * "mandato_sin_firmar": 1,
115755
+ * "needs_review": 1,
115756
+ * "sin_sucursal": 2,
115757
+ * "sin_estacionamiento": 4,
115758
+ * "source_deactivated": 0,
115747
115759
  * "by_location": {
115748
115760
  * "b1b1b1b1-0000-4000-8000-000000000001": 3,
115749
115761
  * "b1b1b1b1-0000-4000-8000-000000000002": 1,
@@ -130829,6 +130841,17 @@ interface components {
130829
130841
  /** @description An `outcomes[].key` from the stages read — `ignored` for «No contar». Anything else is 422 `invalid_outcome`. */
130830
130842
  outcome: string;
130831
130843
  };
130844
+ /** @description The coverage window (see `AdsCoverage`); absent on the sample. */
130845
+ AdsCoverage: {
130846
+ /** @description The workspace’s measurement start (America/Santiago day): the earliest ad touch Vitrina holds (an imported historical touch or a conversation an ad opened) or the first day the attribution engine credited an outcome to an ad. `null` = unknown (nothing clipped). */
130847
+ measured_from: string | null;
130848
+ /** @description The day the response’s figures are counted from: the later of the requested `from` and `measured_from`. */
130849
+ from: string;
130850
+ /** @description `true` when measurement started inside the requested period: say «Medimos desde {measured_from}» next to the figures. */
130851
+ clipped: boolean;
130852
+ /** @description `false` when the comparison period was not measured from its first day: show «—» for every comparison, never a delta against it. */
130853
+ previous_measured: boolean;
130854
+ };
130832
130855
  AdsReportRow: {
130833
130856
  spend: number | null;
130834
130857
  /** @description Vitrina’s own funnel: conversations each ad OPENED in the period and the stages recorded against them (a campaign / ad set sums its ads). `null` = unknown (the read failed), never 0. */
@@ -130876,10 +130899,12 @@ interface components {
130876
130899
  AdsReport: {
130877
130900
  /** @enum {string} */
130878
130901
  level: "campaign" | "ad_set" | "ad";
130902
+ /** @description The days the rows were read over: `from` is the later of the requested `from` and the measurement start (`coverage`). */
130879
130903
  window: {
130880
130904
  from: string;
130881
130905
  to: string;
130882
130906
  };
130907
+ coverage?: components["schemas"]["AdsCoverage"];
130883
130908
  rows: components["schemas"]["AdsReportRow"][];
130884
130909
  /** @description «Sin anuncio»: the period’s conversations with no ad behind them. `null` = unknown. */
130885
130910
  tail: {
@@ -131060,6 +131085,12 @@ interface components {
131060
131085
  closed_count: number;
131061
131086
  closed_value: number;
131062
131087
  } | null;
131088
+ /** @description CASH (CLP): the period’s FIRST payments of a plan (a clinic’s first pago of an accepted presupuesto) that the attribution engine credited to an ad, at their credited share — the numerator of «Retorno en primer pago». Part of `revenue`, never added to it. On `current` only; `null` = unknown (the credit is still warming). */
131089
+ first_payment_attributed_revenue?: number | null;
131090
+ /** @description DISTINCT people behind the period’s recorded outcomes (every stage counted once per person) — the denominator of «Resultados desde anuncios». `outcomes` sums events, not people. On `current` only; `null` = unknown. */
131091
+ people?: number | null;
131092
+ /** @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). */
131093
+ attributed_people?: number | null;
131063
131094
  };
131064
131095
  previous: {
131065
131096
  spend: number | null;
@@ -131091,6 +131122,12 @@ interface components {
131091
131122
  closed_count: number;
131092
131123
  closed_value: number;
131093
131124
  } | null;
131125
+ /** @description CASH (CLP): the period’s FIRST payments of a plan (a clinic’s first pago of an accepted presupuesto) that the attribution engine credited to an ad, at their credited share — the numerator of «Retorno en primer pago». Part of `revenue`, never added to it. On `current` only; `null` = unknown (the credit is still warming). */
131126
+ first_payment_attributed_revenue?: number | null;
131127
+ /** @description DISTINCT people behind the period’s recorded outcomes (every stage counted once per person) — the denominator of «Resultados desde anuncios». `outcomes` sums events, not people. On `current` only; `null` = unknown. */
131128
+ people?: number | null;
131129
+ /** @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). */
131130
+ attributed_people?: number | null;
131094
131131
  };
131095
131132
  /** @description `grain=day` only: every day of the window, oldest first. */
131096
131133
  days?: components["schemas"]["AdsOverviewDay"][];
@@ -131098,6 +131135,7 @@ interface components {
131098
131135
  previous_days?: components["schemas"]["AdsOverviewDay"][];
131099
131136
  /** @description Measurement gaps overlapping the window (W1.1). Days inside a gap whose `metrics` list a figure carry NO measured value for it — the engine may report 0 there; render «sin datos», never the 0. */
131100
131137
  gaps: components["schemas"]["AdsGap"][];
131138
+ coverage: components["schemas"]["AdsCoverage"];
131101
131139
  };
131102
131140
  AdsMeasurementIncident: {
131103
131141
  /** Format: uuid */
@@ -131192,6 +131230,7 @@ interface components {
131192
131230
  }[] | null;
131193
131231
  conversational?: components["schemas"]["AdsConversational"];
131194
131232
  }[];
131233
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131195
131234
  /** @description Measurement gaps overlapping the window (W1.1). Days inside a gap whose `metrics` list a figure carry NO measured value for it — the engine may report 0 there; render «sin datos», never the 0. */
131196
131235
  gaps: components["schemas"]["AdsGap"][];
131197
131236
  };
@@ -131276,6 +131315,28 @@ interface components {
131276
131315
  score: number | null;
131277
131316
  components: components["schemas"]["AdsSignalComponent"][];
131278
131317
  };
131318
+ /** @description «Resultados por origen» in PEOPLE over the coverage window. `null` = unknown (the read failed). */
131319
+ AdsOrigins: {
131320
+ /** @description Distinct people with a recorded outcome in the window. */
131321
+ people_total: number;
131322
+ /** @description All seven keys, always in this order; each person in ONE. */
131323
+ buckets: {
131324
+ /**
131325
+ * @description `ads` an ad referral (click-to-WhatsApp, an Instagram / Messenger DM ad), an ad-credited outcome or an imported ad touch; `*_organic` the first conversation on that channel, no ad; `in_person` an appointment with no conversation before it (walk-in / phone); `before_measuring` first contact before the measurement start; `unknown` nothing.
131326
+ * @enum {string}
131327
+ */
131328
+ key: "ads" | "whatsapp_organic" | "instagram_organic" | "messenger_organic" | "in_person" | "before_measuring" | "unknown";
131329
+ people: number;
131330
+ }[];
131331
+ } | null;
131332
+ AdsSite: {
131333
+ /** @description Whether the account’s ads send people to the website in the window (site-destination spend or site sessions). `false` = the website tag is no measurement problem and no action. */
131334
+ relevant: boolean;
131335
+ /** @description Share (0–1) of the window’s spend on website-destination campaigns (traffic / sales objectives); `null` = unknown. */
131336
+ site_spend_share: number | null;
131337
+ /** @description Site visits the tag saw in the window; `null` = unknown. */
131338
+ sessions: number | null;
131339
+ };
131279
131340
  AdsHealth: {
131280
131341
  trust: {
131281
131342
  model: string;
@@ -131310,6 +131371,8 @@ interface components {
131310
131371
  recent_spend: number;
131311
131372
  recent_traceable_revenue: number;
131312
131373
  days_with_cash: number;
131374
+ /** @description `false` when the prior half-window started before the measurement start (`coverage.measured_from`): `prior_roas` is no comparison, show «—». */
131375
+ prior_measured: boolean;
131313
131376
  };
131314
131377
  };
131315
131378
  utm: {
@@ -131341,6 +131404,11 @@ interface components {
131341
131404
  coverage_percent: number;
131342
131405
  } | null;
131343
131406
  signals: components["schemas"]["AdsSignalsScore"];
131407
+ coverage: components["schemas"]["AdsCoverage"];
131408
+ origins: components["schemas"]["AdsOrigins"];
131409
+ site: components["schemas"]["AdsSite"];
131410
+ /** @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. */
131411
+ measurement_problem: boolean;
131344
131412
  };
131345
131413
  AdsFact: {
131346
131414
  /** @description Stable fact key (`roas`, `best_campaign_name`, …) — a vocabulary name, not a resource id. */
package/dist/index.d.ts CHANGED
@@ -115712,7 +115712,15 @@ interface paths {
115712
115712
  *
115713
115713
  * `sin_costo` (ADR 0114 §8, «Sin costo») counts the active, non-vendido cars with NO acquisition — no nota de compra, contrato de consignación or parte de pago — so their cost is unknown. Opens with `GET /vehicles?view=sin_costo`, the same predicate. A statement about the cost basis: ABSENT (not 0) for a caller without `dealership_economics:read`.
115714
115714
  *
115715
- * `mandato_sin_firmar` (ADR 0114 §5) counts the cars whose consignación (activa, or vendida) has an emitted mandato and no signed copy filed in the expediente. Opens with `GET /vehicles?view=mandato_sin_firmar`, the same predicate. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
115715
+ * `mandato_sin_firmar` (ADR 0114 §5) counts the cars whose consignación (activa, or vendida) has an emitted mandato and no signed copy filed in the expediente. Opens with `GET /vehicles?view=mandato_sin_firmar`, the same predicate.
115716
+ *
115717
+ * The «Datos por completar» and «Pendientes» facet counts of the Stock filters (ADR 0114) — each is the length of the list it opens, built from the same predicate, over the whole lot like `total`:
115718
+ * - `needs_review` — «Revisar marca/modelo»: the marca or modelo did not match the catalogue on save and waits for a person. Opens with `GET /vehicles?active=false&needs_review=true`.
115719
+ * - `sin_sucursal` — «Sin sucursal»: no sucursal assigned. Opens with `GET /vehicles?active=false&sin_sucursal=true`. Always 0 for a member who only sees their own sucursales.
115720
+ * - `sin_estacionamiento` — «Sin estacionamiento»: no estacionamiento in the patio. Opens with `GET /vehicles?active=false&sin_estacionamiento=true`.
115721
+ * - `source_deactivated` — «Retirados del portal»: the portal withdrew the car, it is deactivated and still `disponible`, so nobody has said whether it was sold. Opens with `GET /vehicles?view=source_deactivated`.
115722
+ *
115723
+ * Every count respects the caller’s sucursal scope (ADR 0102), the same ceiling the list applies. Automotive-vertical only: a workspace on another vertical gets 403 here however its scopes are set.
115716
115724
  */
115717
115725
  get: {
115718
115726
  parameters: {
@@ -115744,6 +115752,10 @@ interface paths {
115744
115752
  * "stale": 0,
115745
115753
  * "sin_costo": 7,
115746
115754
  * "mandato_sin_firmar": 1,
115755
+ * "needs_review": 1,
115756
+ * "sin_sucursal": 2,
115757
+ * "sin_estacionamiento": 4,
115758
+ * "source_deactivated": 0,
115747
115759
  * "by_location": {
115748
115760
  * "b1b1b1b1-0000-4000-8000-000000000001": 3,
115749
115761
  * "b1b1b1b1-0000-4000-8000-000000000002": 1,
@@ -130829,6 +130841,17 @@ interface components {
130829
130841
  /** @description An `outcomes[].key` from the stages read — `ignored` for «No contar». Anything else is 422 `invalid_outcome`. */
130830
130842
  outcome: string;
130831
130843
  };
130844
+ /** @description The coverage window (see `AdsCoverage`); absent on the sample. */
130845
+ AdsCoverage: {
130846
+ /** @description The workspace’s measurement start (America/Santiago day): the earliest ad touch Vitrina holds (an imported historical touch or a conversation an ad opened) or the first day the attribution engine credited an outcome to an ad. `null` = unknown (nothing clipped). */
130847
+ measured_from: string | null;
130848
+ /** @description The day the response’s figures are counted from: the later of the requested `from` and `measured_from`. */
130849
+ from: string;
130850
+ /** @description `true` when measurement started inside the requested period: say «Medimos desde {measured_from}» next to the figures. */
130851
+ clipped: boolean;
130852
+ /** @description `false` when the comparison period was not measured from its first day: show «—» for every comparison, never a delta against it. */
130853
+ previous_measured: boolean;
130854
+ };
130832
130855
  AdsReportRow: {
130833
130856
  spend: number | null;
130834
130857
  /** @description Vitrina’s own funnel: conversations each ad OPENED in the period and the stages recorded against them (a campaign / ad set sums its ads). `null` = unknown (the read failed), never 0. */
@@ -130876,10 +130899,12 @@ interface components {
130876
130899
  AdsReport: {
130877
130900
  /** @enum {string} */
130878
130901
  level: "campaign" | "ad_set" | "ad";
130902
+ /** @description The days the rows were read over: `from` is the later of the requested `from` and the measurement start (`coverage`). */
130879
130903
  window: {
130880
130904
  from: string;
130881
130905
  to: string;
130882
130906
  };
130907
+ coverage?: components["schemas"]["AdsCoverage"];
130883
130908
  rows: components["schemas"]["AdsReportRow"][];
130884
130909
  /** @description «Sin anuncio»: the period’s conversations with no ad behind them. `null` = unknown. */
130885
130910
  tail: {
@@ -131060,6 +131085,12 @@ interface components {
131060
131085
  closed_count: number;
131061
131086
  closed_value: number;
131062
131087
  } | null;
131088
+ /** @description CASH (CLP): the period’s FIRST payments of a plan (a clinic’s first pago of an accepted presupuesto) that the attribution engine credited to an ad, at their credited share — the numerator of «Retorno en primer pago». Part of `revenue`, never added to it. On `current` only; `null` = unknown (the credit is still warming). */
131089
+ first_payment_attributed_revenue?: number | null;
131090
+ /** @description DISTINCT people behind the period’s recorded outcomes (every stage counted once per person) — the denominator of «Resultados desde anuncios». `outcomes` sums events, not people. On `current` only; `null` = unknown. */
131091
+ people?: number | null;
131092
+ /** @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). */
131093
+ attributed_people?: number | null;
131063
131094
  };
131064
131095
  previous: {
131065
131096
  spend: number | null;
@@ -131091,6 +131122,12 @@ interface components {
131091
131122
  closed_count: number;
131092
131123
  closed_value: number;
131093
131124
  } | null;
131125
+ /** @description CASH (CLP): the period’s FIRST payments of a plan (a clinic’s first pago of an accepted presupuesto) that the attribution engine credited to an ad, at their credited share — the numerator of «Retorno en primer pago». Part of `revenue`, never added to it. On `current` only; `null` = unknown (the credit is still warming). */
131126
+ first_payment_attributed_revenue?: number | null;
131127
+ /** @description DISTINCT people behind the period’s recorded outcomes (every stage counted once per person) — the denominator of «Resultados desde anuncios». `outcomes` sums events, not people. On `current` only; `null` = unknown. */
131128
+ people?: number | null;
131129
+ /** @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). */
131130
+ attributed_people?: number | null;
131094
131131
  };
131095
131132
  /** @description `grain=day` only: every day of the window, oldest first. */
131096
131133
  days?: components["schemas"]["AdsOverviewDay"][];
@@ -131098,6 +131135,7 @@ interface components {
131098
131135
  previous_days?: components["schemas"]["AdsOverviewDay"][];
131099
131136
  /** @description Measurement gaps overlapping the window (W1.1). Days inside a gap whose `metrics` list a figure carry NO measured value for it — the engine may report 0 there; render «sin datos», never the 0. */
131100
131137
  gaps: components["schemas"]["AdsGap"][];
131138
+ coverage: components["schemas"]["AdsCoverage"];
131101
131139
  };
131102
131140
  AdsMeasurementIncident: {
131103
131141
  /** Format: uuid */
@@ -131192,6 +131230,7 @@ interface components {
131192
131230
  }[] | null;
131193
131231
  conversational?: components["schemas"]["AdsConversational"];
131194
131232
  }[];
131233
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131195
131234
  /** @description Measurement gaps overlapping the window (W1.1). Days inside a gap whose `metrics` list a figure carry NO measured value for it — the engine may report 0 there; render «sin datos», never the 0. */
131196
131235
  gaps: components["schemas"]["AdsGap"][];
131197
131236
  };
@@ -131276,6 +131315,28 @@ interface components {
131276
131315
  score: number | null;
131277
131316
  components: components["schemas"]["AdsSignalComponent"][];
131278
131317
  };
131318
+ /** @description «Resultados por origen» in PEOPLE over the coverage window. `null` = unknown (the read failed). */
131319
+ AdsOrigins: {
131320
+ /** @description Distinct people with a recorded outcome in the window. */
131321
+ people_total: number;
131322
+ /** @description All seven keys, always in this order; each person in ONE. */
131323
+ buckets: {
131324
+ /**
131325
+ * @description `ads` an ad referral (click-to-WhatsApp, an Instagram / Messenger DM ad), an ad-credited outcome or an imported ad touch; `*_organic` the first conversation on that channel, no ad; `in_person` an appointment with no conversation before it (walk-in / phone); `before_measuring` first contact before the measurement start; `unknown` nothing.
131326
+ * @enum {string}
131327
+ */
131328
+ key: "ads" | "whatsapp_organic" | "instagram_organic" | "messenger_organic" | "in_person" | "before_measuring" | "unknown";
131329
+ people: number;
131330
+ }[];
131331
+ } | null;
131332
+ AdsSite: {
131333
+ /** @description Whether the account’s ads send people to the website in the window (site-destination spend or site sessions). `false` = the website tag is no measurement problem and no action. */
131334
+ relevant: boolean;
131335
+ /** @description Share (0–1) of the window’s spend on website-destination campaigns (traffic / sales objectives); `null` = unknown. */
131336
+ site_spend_share: number | null;
131337
+ /** @description Site visits the tag saw in the window; `null` = unknown. */
131338
+ sessions: number | null;
131339
+ };
131279
131340
  AdsHealth: {
131280
131341
  trust: {
131281
131342
  model: string;
@@ -131310,6 +131371,8 @@ interface components {
131310
131371
  recent_spend: number;
131311
131372
  recent_traceable_revenue: number;
131312
131373
  days_with_cash: number;
131374
+ /** @description `false` when the prior half-window started before the measurement start (`coverage.measured_from`): `prior_roas` is no comparison, show «—». */
131375
+ prior_measured: boolean;
131313
131376
  };
131314
131377
  };
131315
131378
  utm: {
@@ -131341,6 +131404,11 @@ interface components {
131341
131404
  coverage_percent: number;
131342
131405
  } | null;
131343
131406
  signals: components["schemas"]["AdsSignalsScore"];
131407
+ coverage: components["schemas"]["AdsCoverage"];
131408
+ origins: components["schemas"]["AdsOrigins"];
131409
+ site: components["schemas"]["AdsSite"];
131410
+ /** @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. */
131411
+ measurement_problem: boolean;
131344
131412
  };
131345
131413
  AdsFact: {
131346
131414
  /** @description Stable fact key (`roas`, `best_campaign_name`, …) — a vocabulary name, not a resource id. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrina/api",
3
- "version": "11.46.2",
3
+ "version": "11.47.0",
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",