@vitrina/api 11.46.2 → 11.47.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
@@ -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,17 @@ 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;
131094
+ /**
131095
+ * @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.
131096
+ * @enum {string}
131097
+ */
131098
+ joins_state?: "ready" | "pending" | "unavailable";
131063
131099
  };
131064
131100
  previous: {
131065
131101
  spend: number | null;
@@ -131091,6 +131127,17 @@ interface components {
131091
131127
  closed_count: number;
131092
131128
  closed_value: number;
131093
131129
  } | null;
131130
+ /** @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). */
131131
+ first_payment_attributed_revenue?: number | null;
131132
+ /** @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. */
131133
+ people?: number | null;
131134
+ /** @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). */
131135
+ attributed_people?: number | null;
131136
+ /**
131137
+ * @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.
131138
+ * @enum {string}
131139
+ */
131140
+ joins_state?: "ready" | "pending" | "unavailable";
131094
131141
  };
131095
131142
  /** @description `grain=day` only: every day of the window, oldest first. */
131096
131143
  days?: components["schemas"]["AdsOverviewDay"][];
@@ -131098,6 +131145,7 @@ interface components {
131098
131145
  previous_days?: components["schemas"]["AdsOverviewDay"][];
131099
131146
  /** @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
131147
  gaps: components["schemas"]["AdsGap"][];
131148
+ coverage: components["schemas"]["AdsCoverage"];
131101
131149
  };
131102
131150
  AdsMeasurementIncident: {
131103
131151
  /** Format: uuid */
@@ -131192,6 +131240,7 @@ interface components {
131192
131240
  }[] | null;
131193
131241
  conversational?: components["schemas"]["AdsConversational"];
131194
131242
  }[];
131243
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131195
131244
  /** @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
131245
  gaps: components["schemas"]["AdsGap"][];
131197
131246
  };
@@ -131259,6 +131308,7 @@ interface components {
131259
131308
  }[] | null;
131260
131309
  conversational?: components["schemas"]["AdsConversational"] & unknown;
131261
131310
  }[];
131311
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131262
131312
  };
131263
131313
  AdsSignalComponent: {
131264
131314
  /** @enum {string} */
@@ -131276,6 +131326,28 @@ interface components {
131276
131326
  score: number | null;
131277
131327
  components: components["schemas"]["AdsSignalComponent"][];
131278
131328
  };
131329
+ /** @description «Resultados por origen» in PEOPLE over the coverage window. `null` = unknown (the read failed). */
131330
+ AdsOrigins: {
131331
+ /** @description Distinct people with a recorded outcome in the window. */
131332
+ people_total: number;
131333
+ /** @description All seven keys, always in this order; each person in ONE. */
131334
+ buckets: {
131335
+ /**
131336
+ * @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.
131337
+ * @enum {string}
131338
+ */
131339
+ key: "ads" | "whatsapp_organic" | "instagram_organic" | "messenger_organic" | "in_person" | "before_measuring" | "unknown";
131340
+ people: number;
131341
+ }[];
131342
+ } | null;
131343
+ AdsSite: {
131344
+ /** @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. */
131345
+ relevant: boolean;
131346
+ /** @description Share (0–1) of the window’s spend on website-destination campaigns (traffic / sales objectives); `null` = unknown. */
131347
+ site_spend_share: number | null;
131348
+ /** @description Site visits the tag saw in the window; `null` = unknown. */
131349
+ sessions: number | null;
131350
+ };
131279
131351
  AdsHealth: {
131280
131352
  trust: {
131281
131353
  model: string;
@@ -131310,6 +131382,8 @@ interface components {
131310
131382
  recent_spend: number;
131311
131383
  recent_traceable_revenue: number;
131312
131384
  days_with_cash: number;
131385
+ /** @description `false` when the prior half-window started before the measurement start (`coverage.measured_from`): `prior_roas` is no comparison, show «—». */
131386
+ prior_measured: boolean;
131313
131387
  };
131314
131388
  };
131315
131389
  utm: {
@@ -131341,6 +131415,11 @@ interface components {
131341
131415
  coverage_percent: number;
131342
131416
  } | null;
131343
131417
  signals: components["schemas"]["AdsSignalsScore"];
131418
+ coverage: components["schemas"]["AdsCoverage"];
131419
+ origins: components["schemas"]["AdsOrigins"];
131420
+ site: components["schemas"]["AdsSite"];
131421
+ /** @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. */
131422
+ measurement_problem: boolean;
131344
131423
  };
131345
131424
  AdsFact: {
131346
131425
  /** @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,17 @@ 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;
131094
+ /**
131095
+ * @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.
131096
+ * @enum {string}
131097
+ */
131098
+ joins_state?: "ready" | "pending" | "unavailable";
131063
131099
  };
131064
131100
  previous: {
131065
131101
  spend: number | null;
@@ -131091,6 +131127,17 @@ interface components {
131091
131127
  closed_count: number;
131092
131128
  closed_value: number;
131093
131129
  } | null;
131130
+ /** @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). */
131131
+ first_payment_attributed_revenue?: number | null;
131132
+ /** @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. */
131133
+ people?: number | null;
131134
+ /** @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). */
131135
+ attributed_people?: number | null;
131136
+ /**
131137
+ * @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.
131138
+ * @enum {string}
131139
+ */
131140
+ joins_state?: "ready" | "pending" | "unavailable";
131094
131141
  };
131095
131142
  /** @description `grain=day` only: every day of the window, oldest first. */
131096
131143
  days?: components["schemas"]["AdsOverviewDay"][];
@@ -131098,6 +131145,7 @@ interface components {
131098
131145
  previous_days?: components["schemas"]["AdsOverviewDay"][];
131099
131146
  /** @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
131147
  gaps: components["schemas"]["AdsGap"][];
131148
+ coverage: components["schemas"]["AdsCoverage"];
131101
131149
  };
131102
131150
  AdsMeasurementIncident: {
131103
131151
  /** Format: uuid */
@@ -131192,6 +131240,7 @@ interface components {
131192
131240
  }[] | null;
131193
131241
  conversational?: components["schemas"]["AdsConversational"];
131194
131242
  }[];
131243
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131195
131244
  /** @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
131245
  gaps: components["schemas"]["AdsGap"][];
131197
131246
  };
@@ -131259,6 +131308,7 @@ interface components {
131259
131308
  }[] | null;
131260
131309
  conversational?: components["schemas"]["AdsConversational"] & unknown;
131261
131310
  }[];
131311
+ coverage?: components["schemas"]["AdsCoverage"] & unknown;
131262
131312
  };
131263
131313
  AdsSignalComponent: {
131264
131314
  /** @enum {string} */
@@ -131276,6 +131326,28 @@ interface components {
131276
131326
  score: number | null;
131277
131327
  components: components["schemas"]["AdsSignalComponent"][];
131278
131328
  };
131329
+ /** @description «Resultados por origen» in PEOPLE over the coverage window. `null` = unknown (the read failed). */
131330
+ AdsOrigins: {
131331
+ /** @description Distinct people with a recorded outcome in the window. */
131332
+ people_total: number;
131333
+ /** @description All seven keys, always in this order; each person in ONE. */
131334
+ buckets: {
131335
+ /**
131336
+ * @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.
131337
+ * @enum {string}
131338
+ */
131339
+ key: "ads" | "whatsapp_organic" | "instagram_organic" | "messenger_organic" | "in_person" | "before_measuring" | "unknown";
131340
+ people: number;
131341
+ }[];
131342
+ } | null;
131343
+ AdsSite: {
131344
+ /** @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. */
131345
+ relevant: boolean;
131346
+ /** @description Share (0–1) of the window’s spend on website-destination campaigns (traffic / sales objectives); `null` = unknown. */
131347
+ site_spend_share: number | null;
131348
+ /** @description Site visits the tag saw in the window; `null` = unknown. */
131349
+ sessions: number | null;
131350
+ };
131279
131351
  AdsHealth: {
131280
131352
  trust: {
131281
131353
  model: string;
@@ -131310,6 +131382,8 @@ interface components {
131310
131382
  recent_spend: number;
131311
131383
  recent_traceable_revenue: number;
131312
131384
  days_with_cash: number;
131385
+ /** @description `false` when the prior half-window started before the measurement start (`coverage.measured_from`): `prior_roas` is no comparison, show «—». */
131386
+ prior_measured: boolean;
131313
131387
  };
131314
131388
  };
131315
131389
  utm: {
@@ -131341,6 +131415,11 @@ interface components {
131341
131415
  coverage_percent: number;
131342
131416
  } | null;
131343
131417
  signals: components["schemas"]["AdsSignalsScore"];
131418
+ coverage: components["schemas"]["AdsCoverage"];
131419
+ origins: components["schemas"]["AdsOrigins"];
131420
+ site: components["schemas"]["AdsSite"];
131421
+ /** @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. */
131422
+ measurement_problem: boolean;
131344
131423
  };
131345
131424
  AdsFact: {
131346
131425
  /** @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.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",