@beechcms/api 0.6.6 → 0.6.7

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.
Files changed (34) hide show
  1. package/assets/dashboard/assets/{chart-DA5IFPWq.js → chart-D_uST30B.js} +1 -1
  2. package/assets/dashboard/assets/{index-CM0tZF7n.js → index-DjniT5Z9.js} +35 -35
  3. package/assets/dashboard/assets/{pie-chart-recharts-BiqT5XVc.js → pie-chart-recharts-CnVomiSi.js} +1 -1
  4. package/assets/dashboard/assets/{timeseries-chart-recharts-B6lrNF3r.js → timeseries-chart-recharts-CTqi8qnV.js} +1 -1
  5. package/assets/dashboard/index.html +1 -1
  6. package/dist/auth/constants.d.ts +10 -0
  7. package/dist/auth/utils/refresh-token.d.ts +1 -0
  8. package/dist/features/automations/api/automations.schema.d.ts +16 -16
  9. package/dist/features/automations/engine/cron-runner.utils.d.ts +1 -0
  10. package/dist/features/content/constants.d.ts +12 -0
  11. package/dist/features/rotate-field/rotate-field.schema.d.ts +11 -0
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +107 -95
  14. package/dist/public/access-policy.d.ts +1 -1
  15. package/dist/public/api-key-middleware.d.ts +6 -0
  16. package/dist/public/cache-utils.d.ts +10 -0
  17. package/dist/public/problem-details.d.ts +32 -0
  18. package/dist/public/public-errors.d.ts +13 -0
  19. package/dist/public/response-builder.d.ts +22 -0
  20. package/dist/shared/db/fixtures/demo-data.fixtures.d.ts +12 -0
  21. package/dist/shared/db/repositories/content.repository.d1.d.ts +4 -3
  22. package/dist/shared/db/repositories/d1-setup-checklist.repository.d.ts +12 -0
  23. package/dist/shared/db/repositories/demo-data.repository.d1.d.ts +1 -1
  24. package/dist/shared/demo-data-sql.d.ts +1 -0
  25. package/dist/shared/email/email.types.d.ts +79 -0
  26. package/dist/shared/email/templates/automation-mail.d.ts +7 -0
  27. package/dist/shared/email/templates/password-changed.d.ts +15 -0
  28. package/dist/shared/email/templates/password-reset.d.ts +18 -0
  29. package/dist/shared/email/templates/shell.d.ts +58 -0
  30. package/dist/shared/jobs/fts-sync.d.ts +1 -0
  31. package/dist/shared/storage/upload.d.ts +7 -0
  32. package/dist/shared/utils/request-utils.d.ts +13 -0
  33. package/dist/shared/utils/storage-utils.d.ts +7 -0
  34. package/package.json +2 -2
@@ -211,7 +211,8 @@ export declare class D1ContentRepository extends BaseD1Repository implements Con
211
211
  /**
212
212
  * Promotes a draft to the live entry: validates all relation targets referenced by the
213
213
  * draft still exist, copies the draft's scalar fields into the live row, replaces the
214
- * live junction rows with the draft's, and deletes the draft — all as one batch.
214
+ * live junction rows with the draft's, sets status to 'published', and deletes the draft — all as one batch.
215
+ * If no mirror draft row exists but the live entry has status = 'draft', updates status to 'published'.
215
216
  * A no-op if `seed.allowDrafts` is false.
216
217
  *
217
218
  * @throws EntryNotFoundError if no draft row exists for `entryId`.
@@ -234,8 +235,8 @@ export declare class D1ContentRepository extends BaseD1Repository implements Con
234
235
  deleteDraft(seed: Seed, entryId: string): Promise<void>;
235
236
  /**
236
237
  * Finds every pending draft across the given seeds, `UNION ALL`-ing one query per seed
237
- * so results span heterogeneous `content_{slug}_drafts` tables, then left-joins each
238
- * against `activity_logs` to attribute the most recent "draft saved" action.
238
+ * so results span heterogeneous `content_{slug}_drafts` tables and live draft entries,
239
+ * then left-joins each against `activity_logs` to attribute the most recent action.
239
240
  *
240
241
  * @param seeds Seeds to search; drafts are looked up per-seed since draft tables aren't unified.
241
242
  * @returns Draft summaries ordered by most-recently-updated first. `title` falls back to the
@@ -0,0 +1,12 @@
1
+ export interface ISetupChecklistRepository {
2
+ getExistingTableNames(): Promise<Set<string>>;
3
+ countAdmins(): Promise<number>;
4
+ countEntriesInSeed(slug: string): Promise<number>;
5
+ }
6
+ export declare class D1SetupChecklistRepository implements ISetupChecklistRepository {
7
+ private readonly db;
8
+ constructor(db: D1Database);
9
+ getExistingTableNames(): Promise<Set<string>>;
10
+ countAdmins(): Promise<number>;
11
+ countEntriesInSeed(slug: string): Promise<number>;
12
+ }
@@ -1,7 +1,7 @@
1
1
  import type { IDemoDataRepository, ContentRepository, Seed } from '@beechcms/core';
2
2
  export declare class D1DemoDataRepository implements IDemoDataRepository {
3
3
  private readonly _db?;
4
- constructor(_db?: unknown);
4
+ constructor(_db?: unknown | undefined);
5
5
  /**
6
6
  * Loads structured demo datasets using ContentRepository domain methods.
7
7
  * This guarantees full compliance with field validation, privacy encryption (AES-256-GCM),
@@ -0,0 +1 @@
1
+ export declare const DEMO_DATA_SQL = "\nINSERT OR IGNORE INTO content_clienti (id, slug, status, name, email, company, tier, account_status, mrr, created_at, updated_at)\nVALUES\n('86956f7b-499f-497b-93b5-6538a6168aec', 'sophia-harris', 'published', 'Sophia Harris', 'sophia.harris@sunriseanalytics.com', 'Sunrise Analytics', 'pro', 'active', 130, 1784140971, 1784140971),\n('fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 'abigail-perez', 'published', 'Abigail Perez', 'abigail.perez@nextgenit.com', 'NextGen IT', 'pro', 'active', 105, 1784206486, 1784206486),\n('46dfdcb5-4503-482d-91cb-bcab3a568b18', 'alexander-garcia', 'published', 'Alexander Garcia', 'alexander.garcia@globalnet.io', 'GlobalNet', 'enterprise', 'active', 2117, 1784297288, 1784297288),\n('24f33d39-8b51-4cb7-ad73-6994694f3b5f', 'joseph-lopez', 'published', 'Joseph Lopez', 'joseph.lopez@novalabs.dev', 'Nova Labs', 'free', 'active', 0, 1784455423, 1784455423),\n('0775b814-49ef-49dc-8a4e-db66721b6032', 'liam-brown', 'published', 'Liam Brown', 'liam.brown@bluepeaksystems.io', 'BluePeak Systems', 'pro', 'active', 174, 1784446103, 1784446103),\n('e45769ad-f005-4d29-840a-9d0457648c4e', 'henry-lopez', 'published', 'Henry Lopez', 'henry.lopez@globalnet.io', 'GlobalNet', 'enterprise', 'active', 2315, 1784483312, 1784483312),\n('2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 'emily-lee', 'published', 'Emily Lee', 'emily.lee@datasync.com', 'DataSync', 'free', 'active', 0, 1784514157, 1784514157),\n('56c858bb-8431-4587-8034-6f10194be6c3', 'samuel-smith', 'published', 'Samuel Smith', 'samuel.smith@datasync.com', 'DataSync', 'pro', 'active', 119, 1784577160, 1784577160),\n('011f6686-2dfd-4b50-9326-d30d17a065f0', 'isabella-martin', 'published', 'Isabella Martin', 'isabella.martin@acmecorp.io', 'Acme Corp', 'pro', 'active', 102, 1784689462, 1784689462),\n('dbc10e4a-3a5d-4631-bf77-b1a941ee4fed', 'elizabeth-brown', 'published', 'Elizabeth Brown', 'elizabeth.brown@cobaltworks.dev', 'Cobalt Works', 'pro', 'active', 143, 1784647701, 1784647701),\n('91c21780-65b6-4558-b4dc-44623456ba39', 'emily-johnson', 'published', 'Emily Johnson', 'emily.johnson@orbitcommerce.com', 'Orbit Commerce', 'pro', 'active', 149, 1784749535, 1784749535),\n('675dbcf8-3d5f-4a01-ab62-8dfce65bf11a', 'sofia-white', 'published', 'Sofia White', 'sofia.white@skylineventures.com', 'Skyline Ventures', 'free', 'active', 0, 1784793111, 1784793111),\n('29745b07-52a8-4360-aaf5-499ee2b362c9', 'elizabeth-davis', 'published', 'Elizabeth Davis', 'elizabeth.davis@sunriseanalytics.com', 'Sunrise Analytics', 'free', 'active', 0, 1784796332, 1784796332),\n('3b4b5680-2184-43d1-8911-e76ea15512af', 'william-williams', 'published', 'William Williams', 'william.williams@cloudbase.app', 'CloudBase', 'pro', 'active', 124, 1784866074, 1784866074),\n('c8768659-30fc-4942-a35f-7d1e792b9c88', 'henry-martin', 'published', 'Henry Martin', 'henry.martin@novalabs.dev', 'Nova Labs', 'free', 'active', 0, 1784815981, 1784815981),\n('8b2e0b72-624a-495e-b709-e56d56fd81a2', 'james-rodriguez', 'published', 'James Rodriguez', 'james.rodriguez@evergreentech.com', 'Evergreen Tech', 'free', 'active', 0, 1784973874, 1784973874),\n('47a97931-da67-4f95-b76e-1cbb2864f40d', 'james-moore', 'published', 'James Moore', 'james.moore@meridianlabs.dev', 'Meridian Labs', 'enterprise', 'active', 2125, 1784935171, 1784935171),\n('3f6e670c-506d-43c4-80d4-03c62d651fd1', 'olivia-martin', 'published', 'Olivia Martin', 'olivia.martin@alphadynamics.io', 'Alpha Dynamics', 'free', 'churned', 0, 1784996168, 1784996168),\n('839fc67c-8c30-4150-a38f-f31341f6fdfb', 'abigail-williams', 'published', 'Abigail Williams', 'abigail.williams@silverlinegroup.io', 'Silverline Group', 'pro', 'active', 131, 1785023228, 1785023228),\n('1c6db09f-c257-4d4d-a0c8-da36eecd24dc', 'sofia-miller', 'published', 'Sofia Miller', 'sofia.miller@nextgenit.com', 'NextGen IT', 'enterprise', 'active', 514, 1785076051, 1785076051),\n('b772541b-2a0b-4161-95a3-c567626127c7', 'abigail-thompson', 'published', 'Abigail Thompson', 'abigail.thompson@silverlinegroup.io', 'Silverline Group', 'free', 'active', 0, 1785096156, 1785096156),\n('a727135a-cd8a-4c9a-98af-285351bbf6ba', 'daniel-rodriguez', 'published', 'Daniel Rodriguez', 'daniel.rodriguez@forgeandco.io', 'Forge & Co', 'enterprise', 'active', 1757, 1785140347, 1785140347),\n('327f229f-d73d-4ce5-8728-39dae0c723d2', 'benjamin-taylor', 'published', 'Benjamin Taylor', 'benjamin.taylor@silverlinegroup.io', 'Silverline Group', 'enterprise', 'active', 624, 1785227034, 1785227034),\n('546bf0ce-1b10-4570-a348-7df0cb9e5450', 'liam-williams', 'published', 'Liam Williams', 'liam.williams@novalabs.dev', 'Nova Labs', 'pro', 'active', 53, 1785200781, 1785200781),\n('ac246f17-ccc2-481e-a57a-8b68f9951965', 'alexander-gonzalez', 'published', 'Alexander Gonzalez', 'alexander.gonzalez@bluepeaksystems.io', 'BluePeak Systems', 'free', 'churned', 0, 1785209921, 1785209921),\n('8cf01d5b-9536-480f-a0d0-17422e0eaeed', 'abigail-jones', 'published', 'Abigail Jones', 'abigail.jones@silverlinegroup.io', 'Silverline Group', 'pro', 'active', 168, 1785241778, 1785241778),\n('641e007b-1b3f-4c13-a4ef-4d4af45acf9b', 'william-gonzalez', 'published', 'William Gonzalez', 'william.gonzalez@silverlinegroup.io', 'Silverline Group', 'pro', 'active', 98, 1785251537, 1785251537),\n('3b057092-3e81-4e32-a955-9ecd32bed03d', 'michael-garcia', 'published', 'Michael Garcia', 'michael.garcia@pixelforge.studio', 'Pixel Forge', 'enterprise', 'active', 549, 1785253385, 1785253385),\n('19ce5fd0-b4c8-4dac-b3d8-19fce684cedb', 'michael-wilson', 'published', 'Michael Wilson', 'michael.wilson@novalabs.dev', 'Nova Labs', 'free', 'active', 0, 1785241684, 1785241684),\n('db0d6c0c-434f-46b3-b412-7863cd2e57b4', 'sofia-white-1', 'published', 'Sofia White', 'sofia.white@orbitcommerce.com', 'Orbit Commerce', 'pro', 'active', 66, 1785366149, 1785366149),\n('012cdcd3-a64f-400c-a6df-9a38688363f8', 'noah-williams', 'published', 'Noah Williams', 'noah.williams@forgeandco.io', 'Forge & Co', 'pro', 'active', 71, 1785320114, 1785320114),\n('3ab3e042-703e-433c-b228-052f999ad025', 'matthew-lee', 'published', 'Matthew Lee', 'matthew.lee@skylineventures.com', 'Skyline Ventures', 'free', 'active', 0, 1785405618, 1785405618),\n('68c58d9f-bdc0-449b-81e1-93c0f26c35f4', 'henry-perez', 'published', 'Henry Perez', 'henry.perez@betasystems.com', 'Beta Systems', 'free', 'active', 0, 1785441660, 1785441660),\n('49f4367f-9cf6-4106-97fe-1190a3b49e7a', 'james-lee', 'published', 'James Lee', 'james.lee@globalnet.io', 'GlobalNet', 'pro', 'active', 105, 1785455090, 1785455090),\n('f87452b7-f35a-41ac-9303-343538ec48e5', 'evelyn-jones', 'published', 'Evelyn Jones', 'evelyn.jones@bluepeaksystems.io', 'BluePeak Systems', 'free', 'active', 0, 1785470648, 1785470648),\n('b17d3a98-0697-4b61-99aa-f6797ac8d7ac', 'noah-brown', 'published', 'Noah Brown', 'noah.brown@quantumreach.io', 'Quantum Reach', 'free', 'active', 0, 1785576175, 1785576175),\n('8cea6d8d-97b2-4a3a-9af8-3016fe2a2035', 'olivia-williams', 'published', 'Olivia Williams', 'olivia.williams@brightlinemedia.com', 'Brightline Media', 'free', 'active', 0, 1785510479, 1785510479),\n('2ccf3282-5549-4d63-bc4f-0dff608ca130', 'harper-white', 'published', 'Harper White', 'harper.white@bluepeaksystems.io', 'BluePeak Systems', 'free', 'active', 0, 1785574453, 1785574453),\n('9c0216b0-4d17-4937-9d85-7595f3a57c52', 'henry-lopez-1', 'published', 'Henry Lopez', 'henry.lopez@novalabs.dev', 'Nova Labs', 'pro', 'active', 86, 1785507988, 1785507988),\n('6210c771-c442-413c-93f5-281688cc442a', 'alexander-miller', 'published', 'Alexander Miller', 'alexander.miller@lumendigital.com', 'Lumen Digital', 'pro', 'active', 109, 1785603909, 1785603909),\n('87c18066-44c6-459d-85b3-38d1fef67a0f', 'avery-taylor', 'published', 'Avery Taylor', 'avery.taylor@evergreentech.com', 'Evergreen Tech', 'pro', 'churned', 0, 1785598945, 1785598945),\n('a780a77a-129b-4c29-83f5-4a9952dc6aeb', 'amelia-lopez', 'published', 'Amelia Lopez', 'amelia.lopez@techflow.dev', 'TechFlow', 'pro', 'active', 91, 1785595399, 1785595399),\n('6d917de8-841f-4b4f-bbd9-6fd7b0e75b21', 'charlotte-moore', 'published', 'Charlotte Moore', 'charlotte.moore@innovasolutions.io', 'Innova Solutions', 'free', 'active', 0, 1785695006, 1785695006),\n('fd97c732-834d-45a7-bda6-7ee78bfa9e0a', 'elizabeth-johnson', 'published', 'Elizabeth Johnson', 'elizabeth.johnson@lumendigital.com', 'Lumen Digital', 'pro', 'churned', 0, 1785740248, 1785740248),\n('d392e28b-4e8b-4eab-8be0-e2249e8af94b', 'emily-brown', 'published', 'Emily Brown', 'emily.brown@meridianlabs.dev', 'Meridian Labs', 'free', 'active', 0, 1785739417, 1785739417),\n('79ff5463-d2be-4466-b3a7-65813d80420f', 'noah-taylor', 'published', 'Noah Taylor', 'noah.taylor@datasync.com', 'DataSync', 'free', 'active', 0, 1785747642, 1785747642),\n('b7dde577-a9c2-4c42-9485-89aa41aa0e9f', 'evelyn-hernandez', 'published', 'Evelyn Hernandez', 'evelyn.hernandez@cobaltworks.dev', 'Cobalt Works', 'free', 'active', 0, 1785760211, 1785760211),\n('319cd19e-fd9b-40fa-8964-9d494b5d3542', 'john-jones', 'published', 'John Jones', 'john.jones@sunriseanalytics.com', 'Sunrise Analytics', 'pro', 'churned', 0, 1785751577, 1785751577),\n('8011a1c5-5247-4249-8ee3-fcefc43790f5', 'william-gonzalez-1', 'published', 'William Gonzalez', 'william.gonzalez@cloudbase.app', 'CloudBase', 'pro', 'active', 142, 1785809651, 1785809651),\n('9beced05-50f3-4d8c-8ef2-06f7a17cc4a5', 'amelia-anderson', 'published', 'Amelia Anderson', 'amelia.anderson@techflow.dev', 'TechFlow', 'pro', 'active', 155, 1785760589, 1785760589),\n('cf4731ae-9e72-4c27-99ef-4b6910c74249', 'lucas-lopez', 'published', 'Lucas Lopez', 'lucas.lopez@betasystems.com', 'Beta Systems', 'pro', 'active', 127, 1785825442, 1785825442),\n('996f1baa-90ad-45fd-b49d-320badf52097', 'william-harris', 'published', 'William Harris', 'william.harris@innovasolutions.io', 'Innova Solutions', 'free', 'active', 0, 1785920706, 1785920706),\n('3806c24e-948b-441f-9283-3db85a67cc40', 'emily-brown-1', 'published', 'Emily Brown', 'emily.brown@quantumreach.io', 'Quantum Reach', 'pro', 'active', 88, 1785889391, 1785889391),\n('76bdce62-0dc1-4ce4-8703-079eb2c7247b', 'david-jones', 'published', 'David Jones', 'david.jones@alphadynamics.io', 'Alpha Dynamics', 'enterprise', 'active', 1525, 1785865798, 1785865798),\n('c86bd16a-3fc0-46ac-bdc4-01ddd9ed361d', 'olivia-lee', 'published', 'Olivia Lee', 'olivia.lee@pixelforge.studio', 'Pixel Forge', 'pro', 'churned', 0, 1785845453, 1785845453),\n('fa495e8f-c2ae-4c1d-98a0-309d946e105a', 'david-garcia', 'published', 'David Garcia', 'david.garcia@bluepeaksystems.io', 'BluePeak Systems', 'free', 'active', 0, 1785901715, 1785901715),\n('ba00331c-daac-49a6-a2d8-c734a0057770', 'sofia-miller-1', 'published', 'Sofia Miller', 'sofia.miller@silverlinegroup.io', 'Silverline Group', 'pro', 'active', 171, 1785925023, 1785925023),\n('21b4db7d-1d38-46f9-9446-cae75c20e6de', 'alexander-thompson', 'published', 'Alexander Thompson', 'alexander.thompson@techflow.dev', 'TechFlow', 'pro', 'active', 68, 1785954554, 1785954554),\n('776315b3-a71a-4d6b-a851-481590615fa0', 'noah-gonzalez', 'published', 'Noah Gonzalez', 'noah.gonzalez@skylineventures.com', 'Skyline Ventures', 'free', 'active', 0, 1785944137, 1785944137),\n('59fe1e06-a275-4393-a909-407a0f2f2ce1', 'isabella-thomas', 'published', 'Isabella Thomas', 'isabella.thomas@brightlinemedia.com', 'Brightline Media', 'enterprise', 'active', 978, 1785951367, 1785951367),\n('98f7e420-a134-4a28-9ce1-1a6f7e4b5e1c', 'david-moore', 'published', 'David Moore', 'david.moore@bluepeaksystems.io', 'BluePeak Systems', 'free', 'active', 0, 1786090550, 1786090550),\n('9c6a55b2-bc20-465d-889f-6f6ec7f9e1b3', 'isabella-rodriguez', 'published', 'Isabella Rodriguez', 'isabella.rodriguez@northwindsoftware.io', 'Northwind Software', 'free', 'active', 0, 1786027620, 1786027620),\n('690dbba1-4417-40e4-9ebf-9a4c25f6a91f', 'daniel-harris', 'published', 'Daniel Harris', 'daniel.harris@sunriseanalytics.com', 'Sunrise Analytics', 'free', 'active', 0, 1786042066, 1786042066),\n('413ab5c9-135d-4ed8-b735-24936c2699af', 'lucas-garcia', 'published', 'Lucas Garcia', 'lucas.garcia@brightlinemedia.com', 'Brightline Media', 'free', 'active', 0, 1786021235, 1786021235),\n('83ae0bbe-584c-4067-8e78-b7dd9109f0ae', 'james-jones', 'published', 'James Jones', 'james.jones@cloudbase.app', 'CloudBase', 'free', 'active', 0, 1786126136, 1786126136),\n('020addcd-01b8-468b-9bbd-a9b3c148c96e', 'william-davis', 'published', 'William Davis', 'william.davis@techflow.dev', 'TechFlow', 'free', 'active', 0, 1786115258, 1786115258),\n('d9f1f324-36f2-4385-a90d-cce1f0c30ab9', 'emily-martinez', 'published', 'Emily Martinez', 'emily.martinez@globalnet.io', 'GlobalNet', 'enterprise', 'active', 2131, 1786167138, 1786167138),\n('040986d9-2e6b-4099-8d2b-992016581c75', 'james-smith', 'published', 'James Smith', 'james.smith@nextgenit.com', 'NextGen IT', 'enterprise', 'active', 1969, 1786117540, 1786117540),\n('ad9e6ee8-37b8-431b-933a-068c03f9c7f7', 'daniel-thomas', 'published', 'Daniel Thomas', 'daniel.thomas@quantumreach.io', 'Quantum Reach', 'free', 'active', 0, 1786120319, 1786120319),\n('88bfb39f-bc27-4cb1-99e2-7b57270629cb', 'isabella-wilson', 'published', 'Isabella Wilson', 'isabella.wilson@cobaltworks.dev', 'Cobalt Works', 'free', 'active', 0, 1786232111, 1786232111),\n('1cdea95f-e05e-4b81-a775-0b0c807ddc2d', 'liam-smith', 'published', 'Liam Smith', 'liam.smith@lumendigital.com', 'Lumen Digital', 'pro', 'active', 116, 1786200052, 1786200052),\n('9f5a6de6-6830-4c6b-925e-eda15f1b3250', 'amelia-brown', 'published', 'Amelia Brown', 'amelia.brown@pixelforge.studio', 'Pixel Forge', 'free', 'active', 0, 1786212500, 1786212500),\n('403e755e-ca35-45e9-9093-8e5971451db5', 'emma-jackson', 'published', 'Emma Jackson', 'emma.jackson@skylineventures.com', 'Skyline Ventures', 'free', 'active', 0, 1786205096, 1786205096),\n('c0ab6263-34ab-4eaa-95fd-8b24d09a753e', 'henry-rodriguez', 'published', 'Henry Rodriguez', 'henry.rodriguez@techflow.dev', 'TechFlow', 'pro', 'active', 119, 1786188449, 1786188449),\n('a7e016ad-12dd-4c06-a98e-27eeff38fbdd', 'john-smith', 'published', 'John Smith', 'john.smith@datasync.com', 'DataSync', 'free', 'active', 0, 1786297990, 1786297990),\n('5a2fa125-5367-4292-a16c-70be78feb374', 'john-lee', 'published', 'John Lee', 'john.lee@orbitcommerce.com', 'Orbit Commerce', 'pro', 'active', 114, 1786309182, 1786309182),\n('ce43c602-8735-4e2a-a153-5077a46912b7', 'harper-jackson', 'published', 'Harper Jackson', 'harper.jackson@globalnet.io', 'GlobalNet', 'free', 'active', 0, 1786314080, 1786314080),\n('81e0df2a-2d80-48ee-9c67-f5136c735edc', 'amelia-taylor', 'published', 'Amelia Taylor', 'amelia.taylor@skylineventures.com', 'Skyline Ventures', 'enterprise', 'active', 609, 1786350661, 1786350661),\n('f5fa14e5-01d1-40fc-914c-824e6854dfb2', 'sophia-thomas', 'published', 'Sophia Thomas', 'sophia.thomas@pixelforge.studio', 'Pixel Forge', 'enterprise', 'active', 543, 1786302506, 1786302506),\n('8e9fd6d5-651f-4d8a-b6ce-0ff24e59ee37', 'olivia-white', 'published', 'Olivia White', 'olivia.white@techflow.dev', 'TechFlow', 'pro', 'active', 78, 1786403308, 1786403308),\n('351d6b8d-6dff-4a23-8b8e-ce352c665abe', 'abigail-garcia', 'published', 'Abigail Garcia', 'abigail.garcia@skylineventures.com', 'Skyline Ventures', 'free', 'active', 0, 1786359976, 1786359976),\n('05aac3c7-945f-4f5b-b8e9-28a79a351067', 'emma-gonzalez', 'published', 'Emma Gonzalez', 'emma.gonzalez@silverlinegroup.io', 'Silverline Group', 'free', 'active', 0, 1786437616, 1786437616),\n('0bf5a7ce-a215-4890-b6c6-324e7606d605', 'alexander-rodriguez', 'published', 'Alexander Rodriguez', 'alexander.rodriguez@acmecorp.io', 'Acme Corp', 'free', 'active', 0, 1786380497, 1786380497),\n('3854ba57-eb06-4fbd-8546-b9457f8712d7', 'evelyn-johnson', 'published', 'Evelyn Johnson', 'evelyn.johnson@meridianlabs.dev', 'Meridian Labs', 'pro', 'active', 176, 1786432701, 1786432701),\n('d669c598-c11c-472c-8489-0a69efa76645', 'noah-hernandez', 'published', 'Noah Hernandez', 'noah.hernandez@acmecorp.io', 'Acme Corp', 'pro', 'churned', 0, 1786375310, 1786375310),\n('9d06be72-24b9-4b9f-850a-b76d54946297', 'elizabeth-lee', 'published', 'Elizabeth Lee', 'elizabeth.lee@techflow.dev', 'TechFlow', 'pro', 'active', 84, 1786461015, 1786461015),\n('c94e7d0b-28d3-4b44-b681-d6034ed58e64', 'daniel-martinez', 'published', 'Daniel Martinez', 'daniel.martinez@novalabs.dev', 'Nova Labs', 'enterprise', 'churned', 0, 1786515536, 1786515536),\n('9f6801b6-8fb6-4dbc-98ff-1872eb7db2e3', 'sofia-martinez', 'published', 'Sofia Martinez', 'sofia.martinez@novalabs.dev', 'Nova Labs', 'enterprise', 'active', 671, 1786465402, 1786465402),\n('367cd7bc-c36e-4f79-baef-1788b2c4fbfc', 'john-lee-1', 'published', 'John Lee', 'john.lee@innovasolutions.io', 'Innova Solutions', 'pro', 'active', 61, 1786494060, 1786494060),\n('b695fcdf-5338-4069-a43a-53ed9b7af754', 'abigail-anderson', 'published', 'Abigail Anderson', 'abigail.anderson@datasync.com', 'DataSync', 'enterprise', 'active', 831, 1786498421, 1786498421),\n('3941f76a-2462-4a6b-9ced-5c11c875ea25', 'noah-lee', 'published', 'Noah Lee', 'noah.lee@datasync.com', 'DataSync', 'pro', 'active', 87, 1786476256, 1786476256),\n('3fb7d58b-6f45-424c-bc1d-4ed2f6473e45', 'olivia-taylor', 'published', 'Olivia Taylor', 'olivia.taylor@globalnet.io', 'GlobalNet', 'free', 'active', 0, 1786597402, 1786597402),\n('dbc0dafd-0bad-453c-9f28-4cc65725f755', 'ava-gonzalez', 'published', 'Ava Gonzalez', 'ava.gonzalez@acmecorp.io', 'Acme Corp', 'free', 'active', 0, 1786567456, 1786567456),\n('bee2ebda-13ab-4f54-8dde-4675ed79b982', 'michael-garcia-1', 'published', 'Michael Garcia', 'michael.garcia@globalnet.io', 'GlobalNet', 'pro', 'active', 42, 1786608753, 1786608753),\n('6c745cf1-eb92-449b-a9ff-807f219fb52a', 'evelyn-anderson', 'published', 'Evelyn Anderson', 'evelyn.anderson@brightlinemedia.com', 'Brightline Media', 'pro', 'active', 68, 1786562566, 1786562566),\n('0afeb4de-64bb-4204-93f0-724cc3a6dffa', 'james-davis', 'published', 'James Davis', 'james.davis@nextgenit.com', 'NextGen IT', 'pro', 'active', 179, 1786556073, 1786556073),\n('949f22b1-3856-46b1-b89d-0d46f2b3e986', 'liam-martinez', 'published', 'Liam Martinez', 'liam.martinez@northwindsoftware.io', 'Northwind Software', 'free', 'active', 0, 1786624486, 1786624486),\n('f2cbbeed-17c5-4b09-ad2d-3b2ef4c40908', 'joseph-perez', 'published', 'Joseph Perez', 'joseph.perez@forgeandco.io', 'Forge & Co', 'pro', 'active', 142, 1786661134, 1786661134),\n('2ffce829-b023-4b00-b9b6-d829670eeb4f', 'sophia-harris-1', 'published', 'Sophia Harris', 'sophia.harris@bluepeaksystems.io', 'BluePeak Systems', 'free', 'active', 0, 1786666000, 1786666000),\n('d6eb79fb-c18c-43cf-9f0c-c80717878460', 'sofia-taylor', 'published', 'Sofia Taylor', 'sofia.taylor@acmecorp.io', 'Acme Corp', 'pro', 'churned', 0, 1786682252, 1786682252),\n('0e1706ae-81bc-4e18-a906-f0e5691868af', 'sofia-lee', 'published', 'Sofia Lee', 'sofia.lee@cobaltworks.dev', 'Cobalt Works', 'free', 'active', 0, 1786668940, 1786668940),\n('aad870df-a969-4770-b186-e9e5a2c858b1', 'isabella-anderson', 'published', 'Isabella Anderson', 'isabella.anderson@datasync.com', 'DataSync', 'pro', 'churned', 0, 1786622251, 1786622251);\n\nINSERT OR IGNORE INTO content_abbonamenti (id, slug, status, customer_id, amount, billing_cycle, payment_status, created_at, updated_at)\nVALUES\n('3af27200-53fe-4949-9bcb-357e57f085fc', 'sub-1', 'published', '86956f7b-499f-497b-93b5-6538a6168aec', 101, 'monthly', 'active', 1784324949, 1784324949),\n('49832427-b7d5-437a-87e8-3d45412971b3', 'sub-2', 'published', '86956f7b-499f-497b-93b5-6538a6168aec', 123, 'annual', 'active', 1784749205, 1784749205),\n('f64d749b-7111-473d-a074-0d7ea5cabd3b', 'sub-3', 'published', 'fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 65, 'monthly', 'active', 1784300743, 1784300743),\n('9a30ffe9-c79f-49a2-80d5-b00780c1a845', 'sub-4', 'published', '46dfdcb5-4503-482d-91cb-bcab3a568b18', 1465, 'monthly', 'active', 1784394249, 1784394249),\n('fde01127-2f40-45cc-bede-ff59423e2d4e', 'sub-5', 'published', '46dfdcb5-4503-482d-91cb-bcab3a568b18', 747, 'monthly', 'active', 1784741873, 1784741873),\n('74e0f355-1b83-4903-abf1-919a85b16619', 'sub-6', 'published', '24f33d39-8b51-4cb7-ad73-6994694f3b5f', 0, 'monthly', 'active', 1784635856, 1784635856),\n('8f40809c-69dc-4ce3-bef3-6a39d2e226de', 'sub-7', 'published', '0775b814-49ef-49dc-8a4e-db66721b6032', 116, 'monthly', 'active', 1784446128, 1784446128),\n('35ef1789-b21e-4057-a559-faea7454e4f5', 'sub-8', 'published', 'e45769ad-f005-4d29-840a-9d0457648c4e', 539, 'monthly', 'active', 1784486334, 1784486334),\n('b072f6a8-4675-4740-8f3b-818775c5217d', 'sub-9', 'published', '2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 0, 'annual', 'active', 1784519702, 1784519702),\n('e5f62c9c-a4c0-400d-99d2-ba8fb98a0948', 'sub-10', 'published', '2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 0, 'monthly', 'active', 1784861847, 1784861847),\n('3e05ab98-03b2-4ff7-938a-b0c1145f22e1', 'sub-11', 'published', '56c858bb-8431-4587-8034-6f10194be6c3', 72, 'monthly', 'active', 1784757309, 1784757309),\n('ce9ea2e7-c0a4-41ab-a9a3-be5ec7eab336', 'sub-12', 'published', '011f6686-2dfd-4b50-9326-d30d17a065f0', 176, 'monthly', 'active', 1784780513, 1784780513),\n('14a4f995-7c5f-4391-b6d7-62a5d8c0449a', 'sub-13', 'published', '011f6686-2dfd-4b50-9326-d30d17a065f0', 126, 'annual', 'active', 1785387536, 1785387536),\n('ad7e7895-975d-4a1e-ba89-8ec624c42d6e', 'sub-14', 'published', 'dbc10e4a-3a5d-4631-bf77-b1a941ee4fed', 123, 'monthly', 'active', 1784822132, 1784822132),\n('37ad7a12-6bff-425f-be01-6c53ff68cb4c', 'sub-15', 'published', 'dbc10e4a-3a5d-4631-bf77-b1a941ee4fed', 58, 'monthly', 'active', 1785168294, 1785168294),\n('b0b401b0-2d2d-402c-bade-86a0f7f6c266', 'sub-16', 'published', '91c21780-65b6-4558-b4dc-44623456ba39', 143, 'monthly', 'active', 1784928789, 1784928789),\n('7700f5ff-24d2-4885-961b-9ed108d532bb', 'sub-17', 'published', '91c21780-65b6-4558-b4dc-44623456ba39', 121, 'annual', 'active', 1785107168, 1785107168),\n('0a1270ee-9e1e-45ff-b763-e6751cc6a96a', 'sub-18', 'published', '675dbcf8-3d5f-4a01-ab62-8dfce65bf11a', 0, 'monthly', 'past_due', 1784796587, 1784796587),\n('8a025991-6fa1-490c-9a1c-9b176539911e', 'sub-19', 'published', '29745b07-52a8-4360-aaf5-499ee2b362c9', 0, 'annual', 'active', 1784979892, 1784979892),\n('1eecda2f-7bcf-496c-b1cb-632db0b3aa86', 'sub-20', 'published', '29745b07-52a8-4360-aaf5-499ee2b362c9', 0, 'annual', 'active', 1785143705, 1785143705),\n('39c28ea0-30d5-4c31-8890-bd28032bfd51', 'sub-21', 'published', '3b4b5680-2184-43d1-8911-e76ea15512af', 99, 'annual', 'active', 1785046312, 1785046312),\n('9fa099cf-2db7-415d-bad4-0d01233b4e3b', 'sub-22', 'published', '3b4b5680-2184-43d1-8911-e76ea15512af', 140, 'monthly', 'active', 1785311862, 1785311862),\n('43ee8fa9-5160-42fa-a4b0-e8cdad8ccf41', 'sub-23', 'published', 'c8768659-30fc-4942-a35f-7d1e792b9c88', 0, 'monthly', 'active', 1784907716, 1784907716),\n('ed2242a1-7b3f-40dd-ae4b-90453cdd50b2', 'sub-24', 'published', 'c8768659-30fc-4942-a35f-7d1e792b9c88', 0, 'monthly', 'past_due', 1785076468, 1785076468),\n('690d2db4-7784-419e-a5ea-9ce092ee0b99', 'sub-25', 'published', '8b2e0b72-624a-495e-b709-e56d56fd81a2', 0, 'monthly', 'active', 1785069625, 1785069625),\n('d719ca8f-b4a4-4e6f-af84-07bb46b40e10', 'sub-26', 'published', '47a97931-da67-4f95-b76e-1cbb2864f40d', 1385, 'monthly', 'active', 1784935852, 1784935852),\n('216b2720-bb36-4fbf-9cd6-78480b02a675', 'sub-27', 'published', '47a97931-da67-4f95-b76e-1cbb2864f40d', 1077, 'monthly', 'active', 1785465870, 1785465870),\n('56f2fde1-ca51-4af2-b0e3-2cfafdae7ca5', 'sub-28', 'published', '3f6e670c-506d-43c4-80d4-03c62d651fd1', 0, 'monthly', 'canceled', 1785170060, 1785170060),\n('aa17d763-681a-4a97-98c8-9f87e2e105b3', 'sub-29', 'published', '3f6e670c-506d-43c4-80d4-03c62d651fd1', 0, 'annual', 'canceled', 1785603400, 1785603400),\n('9197810e-f1b1-46ab-ba16-ac33c829f6b8', 'sub-30', 'published', '839fc67c-8c30-4150-a38f-f31341f6fdfb', 102, 'monthly', 'active', 1785115500, 1785115500),\n('8530194a-bd94-4cfd-a10e-faf7a920a4fb', 'sub-31', 'published', '1c6db09f-c257-4d4d-a0c8-da36eecd24dc', 1122, 'monthly', 'active', 1785258274, 1785258274),\n('49377465-1919-4824-9686-722dc91d0517', 'sub-32', 'published', 'b772541b-2a0b-4161-95a3-c567626127c7', 0, 'monthly', 'active', 1785190644, 1785190644),\n('f46fe714-4a04-4931-b8c2-fac2429a56d5', 'sub-33', 'published', 'a727135a-cd8a-4c9a-98af-285351bbf6ba', 970, 'monthly', 'past_due', 1785321381, 1785321381),\n('01f5c626-7c8b-4feb-91b1-2148d2ec6ebb', 'sub-34', 'published', '327f229f-d73d-4ce5-8728-39dae0c723d2', 1607, 'annual', 'active', 1785319034, 1785319034),\n('dd43b4ac-a228-489b-b693-04090fd9c266', 'sub-35', 'published', '546bf0ce-1b10-4570-a348-7df0cb9e5450', 41, 'monthly', 'active', 1785209084, 1785209084),\n('df7b18d7-4b45-4aea-b3ee-73bfc8e204f9', 'sub-36', 'published', 'ac246f17-ccc2-481e-a57a-8b68f9951965', 0, 'monthly', 'canceled', 1785396986, 1785396986),\n('f7a57ca2-47e4-44e7-8b96-3791439e4d5a', 'sub-37', 'published', 'ac246f17-ccc2-481e-a57a-8b68f9951965', 0, 'annual', 'canceled', 1785905874, 1785905874),\n('26c4048b-c392-49f2-87e3-0ce2a04cd8cb', 'sub-38', 'published', '8cf01d5b-9536-480f-a0d0-17422e0eaeed', 92, 'monthly', 'active', 1785423838, 1785423838),\n('037324dc-ef51-4461-8bf0-287497603a83', 'sub-39', 'published', '8cf01d5b-9536-480f-a0d0-17422e0eaeed', 146, 'monthly', 'active', 1785847504, 1785847504),\n('246fc80f-cf93-4d5f-9809-342cd0aeb571', 'sub-40', 'published', '641e007b-1b3f-4c13-a4ef-4d4af45acf9b', 86, 'monthly', 'active', 1785429902, 1785429902),\n('048defcf-5fa1-48e2-987e-883da87d94be', 'sub-41', 'published', '3b057092-3e81-4e32-a955-9ecd32bed03d', 669, 'monthly', 'past_due', 1785262794, 1785262794),\n('07d71640-c7f3-4f88-92c9-6d0ac90a26c3', 'sub-42', 'published', '19ce5fd0-b4c8-4dac-b3d8-19fce684cedb', 0, 'monthly', 'active', 1785332943, 1785332943),\n('904f77bb-8109-4318-861e-856819dd3fd8', 'sub-43', 'published', 'db0d6c0c-434f-46b3-b412-7863cd2e57b4', 44, 'annual', 'active', 1785458748, 1785458748),\n('e928b03f-a33c-49b1-8220-d2277f6a80e2', 'sub-44', 'published', 'db0d6c0c-434f-46b3-b412-7863cd2e57b4', 141, 'monthly', 'active', 1785977052, 1785977052),\n('918c0c94-50b0-468c-b0f5-605162d7c9d4', 'sub-45', 'published', '012cdcd3-a64f-400c-a6df-9a38688363f8', 79, 'monthly', 'active', 1785496572, 1785496572),\n('6839f002-6df9-4c53-ad94-027e0c7958ad', 'sub-46', 'published', '012cdcd3-a64f-400c-a6df-9a38688363f8', 142, 'annual', 'active', 1785932389, 1785932389),\n('0fe0acae-a936-49a6-9b82-73ca3e203657', 'sub-47', 'published', '3ab3e042-703e-433c-b228-052f999ad025', 0, 'monthly', 'active', 1785581661, 1785581661),\n('5159046c-ed98-437f-a39e-a5c88bfde500', 'sub-48', 'published', '68c58d9f-bdc0-449b-81e1-93c0f26c35f4', 0, 'monthly', 'active', 1785453941, 1785453941),\n('bae153fe-87d5-4944-a0f0-118bf706fb49', 'sub-49', 'published', '68c58d9f-bdc0-449b-81e1-93c0f26c35f4', 0, 'monthly', 'active', 1785877863, 1785877863),\n('f63ffb50-2eec-43ca-bff5-a1648dad8956', 'sub-50', 'published', '49f4367f-9cf6-4106-97fe-1190a3b49e7a', 81, 'annual', 'active', 1785458183, 1785458183),\n('87e8bb90-f844-4843-9864-2125ddf06050', 'sub-51', 'published', 'f87452b7-f35a-41ac-9303-343538ec48e5', 0, 'annual', 'active', 1785648420, 1785648420),\n('e1a95e4c-f31c-43ef-bd1a-7a1579169450', 'sub-52', 'published', 'b17d3a98-0697-4b61-99aa-f6797ac8d7ac', 0, 'monthly', 'active', 1785668654, 1785668654),\n('a9eb05a2-5c21-44e3-bce6-1dd9b32e9ece', 'sub-53', 'published', 'b17d3a98-0697-4b61-99aa-f6797ac8d7ac', 0, 'monthly', 'active', 1785849153, 1785849153),\n('242f72e4-7412-4407-a56c-9c4392f41245', 'sub-54', 'published', '8cea6d8d-97b2-4a3a-9af8-3016fe2a2035', 0, 'monthly', 'active', 1785598764, 1785598764),\n('1b322ccb-9caa-4363-8024-8ca8102fea6b', 'sub-55', 'published', '8cea6d8d-97b2-4a3a-9af8-3016fe2a2035', 0, 'monthly', 'active', 1786126338, 1786126338),\n('3edbea55-8a38-4e97-889f-2279e4a08b17', 'sub-56', 'published', '2ccf3282-5549-4d63-bc4f-0dff608ca130', 0, 'monthly', 'active', 1785666734, 1785666734),\n('c0a9ef4c-5fbc-43a4-bc3d-cb81c89dec3d', 'sub-57', 'published', '9c0216b0-4d17-4937-9d85-7595f3a57c52', 150, 'monthly', 'active', 1785597339, 1785597339),\n('3dbcbb96-44e7-4bef-aebc-6dc09e1f1aef', 'sub-58', 'published', '9c0216b0-4d17-4937-9d85-7595f3a57c52', 39, 'annual', 'active', 1785780833, 1785780833),\n('898c9d2e-4e37-408c-8633-268d4125eaae', 'sub-59', 'published', '6210c771-c442-413c-93f5-281688cc442a', 45, 'monthly', 'active', 1785779753, 1785779753),\n('b25f8cdd-a7bc-4945-9951-f912d9f944ea', 'sub-60', 'published', '87c18066-44c6-459d-85b3-38d1fef67a0f', 134, 'monthly', 'canceled', 1785686487, 1785686487),\n('6811abfb-8439-4159-84dc-485fcae70a80', 'sub-61', 'published', '87c18066-44c6-459d-85b3-38d1fef67a0f', 88, 'monthly', 'canceled', 1786129180, 1786129180),\n('b8f110a6-3a90-4be3-8c93-38a8e64dff10', 'sub-62', 'published', 'a780a77a-129b-4c29-83f5-4a9952dc6aeb', 175, 'monthly', 'active', 1785605331, 1785605331),\n('880a328e-13c1-4bd8-a62e-be1ab7b83f2a', 'sub-63', 'published', '6d917de8-841f-4b4f-bbd9-6fd7b0e75b21', 0, 'monthly', 'active', 1785880194, 1785880194),\n('ea870892-31b5-4050-9ca5-ac3b518ad234', 'sub-64', 'published', 'fd97c732-834d-45a7-bda6-7ee78bfa9e0a', 55, 'annual', 'canceled', 1785833329, 1785833329),\n('1342d20d-ba18-4cfb-aeb8-18a7c405e50c', 'sub-65', 'published', 'fd97c732-834d-45a7-bda6-7ee78bfa9e0a', 137, 'monthly', 'canceled', 1786438886, 1786438886),\n('35a2131a-d5b4-42b0-8af5-dc47a75f9ced', 'sub-66', 'published', 'd392e28b-4e8b-4eab-8be0-e2249e8af94b', 0, 'monthly', 'active', 1785750355, 1785750355),\n('bc80edc4-e948-4a92-89ee-057cc9ae6e98', 'sub-67', 'published', 'd392e28b-4e8b-4eab-8be0-e2249e8af94b', 0, 'monthly', 'active', 1786005393, 1786005393),\n('0b137cae-ee40-497b-9aaf-49dc3bba5463', 'sub-68', 'published', '79ff5463-d2be-4466-b3a7-65813d80420f', 0, 'monthly', 'active', 1785839568, 1785839568),\n('5ba66086-cd9f-4213-bd82-2ad52dafccf2', 'sub-69', 'published', '79ff5463-d2be-4466-b3a7-65813d80420f', 0, 'monthly', 'active', 1786449085, 1786449085),\n('32bf4ab6-80b5-4672-af18-b76b9c8abd9b', 'sub-70', 'published', 'b7dde577-a9c2-4c42-9485-89aa41aa0e9f', 0, 'annual', 'active', 1785934031, 1785934031),\n('b0fcbde2-70a0-416f-b1d7-bb957d01ff1e', 'sub-71', 'published', 'b7dde577-a9c2-4c42-9485-89aa41aa0e9f', 0, 'monthly', 'active', 1786280190, 1786280190),\n('3d26fc08-aae1-4d25-927f-7784283ce76c', 'sub-72', 'published', '319cd19e-fd9b-40fa-8964-9d494b5d3542', 117, 'monthly', 'canceled', 1785846149, 1785846149),\n('7670d426-62f7-4f81-a83d-376195af3a3b', 'sub-73', 'published', '319cd19e-fd9b-40fa-8964-9d494b5d3542', 134, 'monthly', 'canceled', 1786108239, 1786108239),\n('3814aeca-3cff-44cf-b507-f479f423731f', 'sub-74', 'published', '8011a1c5-5247-4249-8ee3-fcefc43790f5', 81, 'monthly', 'active', 1785992165, 1785992165),\n('cdc87cf7-505f-4bd1-8435-a4527e3ea3aa', 'sub-75', 'published', '9beced05-50f3-4d8c-8ef2-06f7a17cc4a5', 40, 'annual', 'active', 1785851960, 1785851960),\n('1b773da9-930a-42bb-b382-b254797c8f7a', 'sub-76', 'published', 'cf4731ae-9e72-4c27-99ef-4b6910c74249', 93, 'annual', 'active', 1785827152, 1785827152),\n('3bb43d5d-626c-4d22-974e-f38e8350b921', 'sub-77', 'published', '996f1baa-90ad-45fd-b49d-320badf52097', 0, 'monthly', 'active', 1785931844, 1785931844),\n('9b05e76b-b55e-40a2-94d8-c1005007d902', 'sub-78', 'published', '996f1baa-90ad-45fd-b49d-320badf52097', 0, 'monthly', 'active', 1786620983, 1786620983),\n('df8a4757-6d33-412d-b4ea-c6611326640c', 'sub-79', 'published', '3806c24e-948b-441f-9283-3db85a67cc40', 77, 'monthly', 'active', 1785901509, 1785901509),\n('05d3512f-c765-4eaa-a4ed-9be777385f16', 'sub-80', 'published', '3806c24e-948b-441f-9283-3db85a67cc40', 69, 'monthly', 'active', 1786420864, 1786420864),\n('2d4a5125-0a0b-465b-bbe2-5eaad47ded1a', 'sub-81', 'published', '76bdce62-0dc1-4ce4-8703-079eb2c7247b', 1587, 'monthly', 'active', 1785869841, 1785869841),\n('63e60492-69a0-4888-b70e-d5976075f194', 'sub-82', 'published', 'c86bd16a-3fc0-46ac-bdc4-01ddd9ed361d', 152, 'monthly', 'canceled', 1785858777, 1785858777),\n('9c559c03-cdab-4437-8770-fc6eca86ff2e', 'sub-83', 'published', 'c86bd16a-3fc0-46ac-bdc4-01ddd9ed361d', 65, 'monthly', 'canceled', 1786456809, 1786456809),\n('36b117d0-d407-469c-82be-cadf8822d0f8', 'sub-84', 'published', 'fa495e8f-c2ae-4c1d-98a0-309d946e105a', 0, 'monthly', 'active', 1786080474, 1786080474),\n('d0139bfe-377c-4053-a75a-7a67e737a3f7', 'sub-85', 'published', 'ba00331c-daac-49a6-a2d8-c734a0057770', 116, 'monthly', 'active', 1786022245, 1786022245),\n('83de843d-6058-49f2-8105-3bb45627efd1', 'sub-86', 'published', '21b4db7d-1d38-46f9-9446-cae75c20e6de', 70, 'monthly', 'active', 1786050266, 1786050266),\n('25288692-23d6-4d44-910d-2cd74c82aef8', 'sub-87', 'published', '776315b3-a71a-4d6b-a851-481590615fa0', 0, 'monthly', 'active', 1786037924, 1786037924),\n('b0de67fb-505f-4ee2-bc41-a35e6faa9ea5', 'sub-88', 'published', '776315b3-a71a-4d6b-a851-481590615fa0', 0, 'monthly', 'active', 1786382842, 1786382842),\n('1106a920-a579-4c28-935a-f4800cabe05b', 'sub-89', 'published', '59fe1e06-a275-4393-a909-407a0f2f2ce1', 2283, 'monthly', 'active', 1786130981, 1786130981),\n('5b307c08-d33c-412f-9fb3-65cb753e4bf5', 'sub-90', 'published', '98f7e420-a134-4a28-9ce1-1a6f7e4b5e1c', 0, 'monthly', 'active', 1786186672, 1786186672),\n('af434b4c-e1a8-443b-82a3-4fb1765ff007', 'sub-91', 'published', '98f7e420-a134-4a28-9ce1-1a6f7e4b5e1c', 0, 'annual', 'active', 1786446049, 1786446049),\n('54b0207f-5be4-4cfc-b4c1-a6730487a13a', 'sub-92', 'published', '9c6a55b2-bc20-465d-889f-6f6ec7f9e1b3', 0, 'monthly', 'active', 1786207647, 1786207647),\n('0ef39d5f-b736-4c4b-a44a-396e0d1612a3', 'sub-93', 'published', '9c6a55b2-bc20-465d-889f-6f6ec7f9e1b3', 0, 'annual', 'active', 1786384997, 1786384997),\n('9e71d705-8ea4-4b4c-af81-57bda3e57a9a', 'sub-94', 'published', '690dbba1-4417-40e4-9ebf-9a4c25f6a91f', 0, 'annual', 'active', 1786046665, 1786046665),\n('df6133d9-5324-46a7-9593-0a9694e0aa68', 'sub-95', 'published', '413ab5c9-135d-4ed8-b735-24936c2699af', 0, 'monthly', 'active', 1786021589, 1786021589),\n('0bdc33ac-b43a-4dae-bcf7-0c7dc1f4d4b2', 'sub-96', 'published', '83ae0bbe-584c-4067-8e78-b7dd9109f0ae', 0, 'annual', 'active', 1786218485, 1786218485),\n('4306edc0-d829-47ce-8bc2-baa3d0abef29', 'sub-97', 'published', '83ae0bbe-584c-4067-8e78-b7dd9109f0ae', 0, 'annual', 'active', 1786394298, 1786394298),\n('54bd565a-847e-423b-86bc-9c941e48301b', 'sub-98', 'published', '020addcd-01b8-468b-9bbd-a9b3c148c96e', 0, 'annual', 'active', 1786209739, 1786209739),\n('21bc8713-451e-4765-b105-dfa654ce390d', 'sub-99', 'published', 'd9f1f324-36f2-4385-a90d-cce1f0c30ab9', 1424, 'monthly', 'active', 1786169968, 1786169968),\n('d429908b-728b-4706-96d2-dae9aa198c49', 'sub-100', 'published', '040986d9-2e6b-4099-8d2b-992016581c75', 2384, 'annual', 'active', 1786123924, 1786123924),\n('9022d2c9-ea82-40c2-976e-28c7dd740a5c', 'sub-101', 'published', 'ad9e6ee8-37b8-431b-933a-068c03f9c7f7', 0, 'monthly', 'active', 1786210535, 1786210535),\n('dbd478cf-579e-4f7b-82ba-90865f525421', 'sub-102', 'published', 'ad9e6ee8-37b8-431b-933a-068c03f9c7f7', 0, 'monthly', 'active', 1786384433, 1786384433),\n('f65f37ce-5c09-4763-a1fe-d5a667a1c93a', 'sub-103', 'published', '88bfb39f-bc27-4cb1-99e2-7b57270629cb', 0, 'annual', 'active', 1786412540, 1786412540),\n('90a647e2-5c32-4a9b-8c1d-1a0943e0a4a6', 'sub-104', 'published', '1cdea95f-e05e-4b81-a775-0b0c807ddc2d', 152, 'monthly', 'past_due', 1786384160, 1786384160),\n('27f12bfd-0607-4ba9-8538-c01df0e07006', 'sub-105', 'published', '9f5a6de6-6830-4c6b-925e-eda15f1b3250', 0, 'monthly', 'active', 1786306818, 1786306818),\n('21aaf10f-8a6c-41ab-91ab-7e5ceb620129', 'sub-106', 'published', '403e755e-ca35-45e9-9093-8e5971451db5', 0, 'monthly', 'active', 1786212227, 1786212227),\n('935038bc-b9f2-4540-ae84-f0f548ed6c0b', 'sub-107', 'published', 'c0ab6263-34ab-4eaa-95fd-8b24d09a753e', 93, 'monthly', 'active', 1786370002, 1786370002),\n('7875dad8-ac50-43f0-a46e-4beefe9be32e', 'sub-108', 'published', 'a7e016ad-12dd-4c06-a98e-27eeff38fbdd', 0, 'monthly', 'active', 1786474673, 1786474673),\n('37906f12-6592-4e8c-a782-20d711b12fa2', 'sub-109', 'published', '5a2fa125-5367-4292-a16c-70be78feb374', 78, 'monthly', 'active', 1786495009, 1786495009),\n('8b8aaf57-06e1-460a-9314-11d9e9a37bde', 'sub-110', 'published', '5a2fa125-5367-4292-a16c-70be78feb374', 79, 'monthly', 'active', 1786701942, 1786701942),\n('7a343e77-5925-4eb6-8d1b-7dba8ad313b0', 'sub-111', 'published', 'ce43c602-8735-4e2a-a153-5077a46912b7', 0, 'monthly', 'active', 1786487924, 1786487924),\n('20a1a716-7a60-4d59-acee-4d8d9f873d10', 'sub-112', 'published', 'ce43c602-8735-4e2a-a153-5077a46912b7', 0, 'annual', 'active', 1786701942, 1786701942),\n('2eab3af7-e702-4164-8ba2-326f0f9aaa8f', 'sub-113', 'published', '81e0df2a-2d80-48ee-9c67-f5136c735edc', 1851, 'monthly', 'active', 1786360009, 1786360009),\n('3b7ffe46-3332-4fc8-adab-19f2c9860309', 'sub-114', 'published', '81e0df2a-2d80-48ee-9c67-f5136c735edc', 1472, 'annual', 'active', 1786701942, 1786701942),\n('72c127d1-9a5e-47ee-891f-78e0c02377ad', 'sub-115', 'published', 'f5fa14e5-01d1-40fc-914c-824e6854dfb2', 1697, 'annual', 'active', 1786304165, 1786304165),\n('8b56b9f0-e0b4-440a-a577-143c078aa57f', 'sub-116', 'published', 'f5fa14e5-01d1-40fc-914c-824e6854dfb2', 1504, 'monthly', 'active', 1786701942, 1786701942),\n('5693fd45-3b6c-4cfe-b4c7-bb2c002e892a', 'sub-117', 'published', '8e9fd6d5-651f-4d8a-b6ce-0ff24e59ee37', 147, 'monthly', 'active', 1786404764, 1786404764),\n('366fb61d-427b-4f12-9849-663c256bcaf3', 'sub-118', 'published', '8e9fd6d5-651f-4d8a-b6ce-0ff24e59ee37', 143, 'monthly', 'active', 1786675166, 1786675166),\n('25584072-2c70-4602-89ab-79fdd44e8b22', 'sub-119', 'published', '351d6b8d-6dff-4a23-8b8e-ce352c665abe', 0, 'monthly', 'active', 1786459579, 1786459579),\n('723fd91f-c5a8-4bb6-bc35-e39b8e849f41', 'sub-120', 'published', '05aac3c7-945f-4f5b-b8e9-28a79a351067', 0, 'annual', 'active', 1786533413, 1786533413),\n('06739e12-3006-4703-8b5e-755318678ace', 'sub-121', 'published', '05aac3c7-945f-4f5b-b8e9-28a79a351067', 0, 'monthly', 'active', 1786701942, 1786701942),\n('1c40dc32-e4bb-47ce-8a1d-ec2f3aa5aed7', 'sub-122', 'published', '0bf5a7ce-a215-4890-b6c6-324e7606d605', 0, 'annual', 'active', 1786476231, 1786476231),\n('6a23ac6b-dd5d-4d25-8a3d-b552b35807db', 'sub-123', 'published', '3854ba57-eb06-4fbd-8546-b9457f8712d7', 116, 'monthly', 'active', 1786607206, 1786607206),\n('68f69eb9-d555-4c8a-9211-698adf15ff37', 'sub-124', 'published', '3854ba57-eb06-4fbd-8546-b9457f8712d7', 102, 'monthly', 'active', 1786701942, 1786701942),\n('67bc232c-ffdc-4a6c-ace8-3a1c56e20a7b', 'sub-125', 'published', 'd669c598-c11c-472c-8489-0a69efa76645', 162, 'monthly', 'canceled', 1786463627, 1786463627),\n('4ae18045-9353-479d-ab4b-94a26ce40cbe', 'sub-126', 'published', 'd669c598-c11c-472c-8489-0a69efa76645', 76, 'monthly', 'canceled', 1786701942, 1786701942),\n('42a7d18b-9ee0-4bab-bfa6-81b4baadc036', 'sub-127', 'published', '9d06be72-24b9-4b9f-850a-b76d54946297', 149, 'monthly', 'active', 1786550171, 1786550171),\n('785866ae-9a39-45f6-9281-00a16580a43c', 'sub-128', 'published', '9d06be72-24b9-4b9f-850a-b76d54946297', 134, 'annual', 'active', 1786701942, 1786701942),\n('f19c7ed3-3404-419d-8aa9-790da9b49538', 'sub-129', 'published', 'c94e7d0b-28d3-4b44-b681-d6034ed58e64', 1807, 'annual', 'canceled', 1786604076, 1786604076),\n('84302e79-f9cd-490b-ab90-52d8d59cbe18', 'sub-130', 'published', 'c94e7d0b-28d3-4b44-b681-d6034ed58e64', 1716, 'annual', 'canceled', 1786701942, 1786701942),\n('bcc7bb76-8a56-44e3-9664-536e3f7da241', 'sub-131', 'published', '9f6801b6-8fb6-4dbc-98ff-1872eb7db2e3', 2001, 'monthly', 'active', 1786644700, 1786644700),\n('7b952ac7-475f-4dec-8398-a53daa1d26ea', 'sub-132', 'published', '9f6801b6-8fb6-4dbc-98ff-1872eb7db2e3', 864, 'monthly', 'active', 1786701942, 1786701942),\n('6cf55660-6488-43b2-9696-b8647d249615', 'sub-133', 'published', '367cd7bc-c36e-4f79-baef-1788b2c4fbfc', 56, 'monthly', 'active', 1786669019, 1786669019),\n('807281ff-1c36-4fca-9b33-a4f5c3675e11', 'sub-134', 'published', 'b695fcdf-5338-4069-a43a-53ed9b7af754', 1496, 'monthly', 'active', 1786685510, 1786685510),\n('c7788a25-8b90-40d1-8aee-16cb5a4eb374', 'sub-135', 'published', 'b695fcdf-5338-4069-a43a-53ed9b7af754', 1444, 'annual', 'past_due', 1786701942, 1786701942),\n('98a4b913-384d-41bc-955e-0ec3c271381f', 'sub-136', 'published', '3941f76a-2462-4a6b-9ced-5c11c875ea25', 133, 'monthly', 'active', 1786653140, 1786653140),\n('e97cf020-1e5e-43e5-9b45-249a493d6a43', 'sub-137', 'published', '3fb7d58b-6f45-424c-bc1d-4ed2f6473e45', 0, 'annual', 'active', 1786695248, 1786695248),\n('4ef4c480-9b3c-4054-91b3-f0a7b37f159f', 'sub-138', 'published', 'dbc0dafd-0bad-453c-9f28-4cc65725f755', 0, 'monthly', 'active', 1786580808, 1786580808),\n('ae070c12-b2cd-4321-b158-cb80df1a4973', 'sub-139', 'published', 'dbc0dafd-0bad-453c-9f28-4cc65725f755', 0, 'monthly', 'active', 1786701942, 1786701942),\n('0ff2d680-6651-4acf-8724-288ec53039b8', 'sub-140', 'published', 'bee2ebda-13ab-4f54-8dde-4675ed79b982', 148, 'monthly', 'active', 1786610165, 1786610165),\n('1afecc7e-2aad-4268-809b-f1d305887645', 'sub-141', 'published', '6c745cf1-eb92-449b-a9ff-807f219fb52a', 127, 'annual', 'active', 1786701942, 1786701942),\n('9cb2431f-2d18-4640-ab2e-ee89473f4c12', 'sub-142', 'published', '6c745cf1-eb92-449b-a9ff-807f219fb52a', 72, 'monthly', 'active', 1786701942, 1786701942),\n('73056129-3156-4f2c-9460-9020dd26edab', 'sub-143', 'published', '0afeb4de-64bb-4204-93f0-724cc3a6dffa', 51, 'annual', 'active', 1786701942, 1786701942),\n('153c2c67-51b9-47d5-aa6f-37c391755f39', 'sub-144', 'published', '0afeb4de-64bb-4204-93f0-724cc3a6dffa', 36, 'annual', 'active', 1786701942, 1786701942),\n('767321ed-678f-4ca4-a0bf-da179df7a2b8', 'sub-145', 'published', '949f22b1-3856-46b1-b89d-0d46f2b3e986', 0, 'monthly', 'active', 1786701942, 1786701942),\n('08b0f1d9-93bc-45a4-b136-050281f66094', 'sub-146', 'published', 'f2cbbeed-17c5-4b09-ad2d-3b2ef4c40908', 46, 'monthly', 'active', 1786701942, 1786701942),\n('684b8d6b-2f25-4a1d-a187-0c96ea06cb03', 'sub-147', 'published', 'f2cbbeed-17c5-4b09-ad2d-3b2ef4c40908', 44, 'monthly', 'active', 1786701942, 1786701942),\n('d152d1ed-4793-4edb-b648-9d2b94906a44', 'sub-148', 'published', '2ffce829-b023-4b00-b9b6-d829670eeb4f', 0, 'annual', 'active', 1786672877, 1786672877),\n('1a75fc21-a6a7-45d4-bd7b-c9ea91c0c196', 'sub-149', 'published', '2ffce829-b023-4b00-b9b6-d829670eeb4f', 0, 'annual', 'active', 1786701942, 1786701942),\n('30bdf68c-35c5-48e0-9c04-45ca9a447324', 'sub-150', 'published', 'd6eb79fb-c18c-43cf-9f0c-c80717878460', 54, 'annual', 'canceled', 1786701942, 1786701942),\n('7769d4aa-03d2-4ab1-89d3-31cc4f8c7414', 'sub-151', 'published', 'd6eb79fb-c18c-43cf-9f0c-c80717878460', 176, 'annual', 'canceled', 1786701942, 1786701942),\n('279979e2-1dd0-4cb5-a0f8-d8bde88772ad', 'sub-152', 'published', '0e1706ae-81bc-4e18-a906-f0e5691868af', 0, 'monthly', 'active', 1786673157, 1786673157),\n('57d1983b-1a78-4a48-85c4-b0ea3a53698c', 'sub-153', 'published', '0e1706ae-81bc-4e18-a906-f0e5691868af', 0, 'monthly', 'active', 1786701942, 1786701942),\n('ff42dddb-7f8e-4e17-a8fb-6811d975d3e5', 'sub-154', 'published', 'aad870df-a969-4770-b186-e9e5a2c858b1', 166, 'monthly', 'canceled', 1786628899, 1786628899);\n\nINSERT OR IGNORE INTO content_ticket (id, slug, status, title, customer_id, priority, category, ticket_status, created_at, updated_at)\nVALUES\n('51e0cfe2-7936-4442-8dfc-00f12584eb38', 'tkt-1', 'published', 'Contract review and pro-forma invoice request', '86956f7b-499f-497b-93b5-6538a6168aec', 'high', 'sales', 'closed', 1784194798, 1784194798),\n('7e2fc670-9052-4d42-9b80-b8391589c98d', 'tkt-2', 'published', 'Enterprise plan customized demo request', 'fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 'low', 'sales', 'closed', 1784243880, 1784243880),\n('21166b2b-5c86-419c-b795-b4b9d61a95b2', 'tkt-3', 'published', 'Uploaded images failing to render on CDN edge', 'fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 'low', 'technical', 'closed', 1784289344, 1784289344),\n('4ac70051-3c2a-433e-a505-651c2b706925', 'tkt-4', 'published', 'Full-text search query syntax error on special characters', '46dfdcb5-4503-482d-91cb-bcab3a568b18', 'low', 'technical', 'closed', 1784433727, 1784433727),\n('68d7bc4f-4c95-41d0-99e8-a3851bfaaa3c', 'tkt-5', 'published', 'Uploaded images failing to render on CDN edge', '2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 'medium', 'technical', 'closed', 1784528507, 1784528507),\n('87ff3531-d988-4468-a70f-fb3ac11d0e55', 'tkt-6', 'published', 'Custom multi-tenant deployment pricing quote', '24f33d39-8b51-4cb7-ad73-6994694f3b5f', 'low', 'sales', 'closed', 1784574572, 1784574572),\n('c6e4ab5d-7319-4f1a-915a-234cf4ab542b', 'tkt-7', 'published', 'Annual contract renewal volume discount inquiry', 'fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 'high', 'sales', 'closed', 1784669309, 1784669309),\n('1bcb3b85-8141-4743-9604-6dd9b3a0aa0e', 'tkt-8', 'published', 'Update company VAT and billing information', '86956f7b-499f-497b-93b5-6538a6168aec', 'high', 'billing', 'closed', 1784742688, 1784742688),\n('2d8d8e84-3a32-4cf9-bd84-43679dab7f12', 'tkt-9', 'published', 'Invoice not received for this month', '29745b07-52a8-4360-aaf5-499ee2b362c9', 'high', 'billing', 'in_progress', 1784845947, 1784845947),\n('0914ab49-9e44-4ae1-9f87-37b6e0a6f6c0', 'tkt-10', 'published', '500 Internal Server Error when publishing entries', '29745b07-52a8-4360-aaf5-499ee2b362c9', 'medium', 'technical', 'closed', 1784937672, 1784937672),\n('21e4f42b-2562-4444-aace-590c46752eb2', 'tkt-11', 'published', 'Billed amount does not match plan tier', 'e45769ad-f005-4d29-840a-9d0457648c4e', 'medium', 'billing', 'in_progress', 1785018633, 1785018633),\n('fa82f228-3d9a-4259-836b-a4a94f334b69', 'tkt-12', 'published', 'Migration assistance from legacy headless CMS', '011f6686-2dfd-4b50-9326-d30d17a065f0', 'low', 'sales', 'open', 1785121330, 1785121330),\n('8648a97d-3ab4-4746-92ee-71a5e8b88e96', 'tkt-13', 'published', 'Update company VAT and billing information', '2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 'medium', 'billing', 'open', 1785198071, 1785198071),\n('b684ae4c-7d5e-4603-8863-b5e025296489', 'tkt-14', 'published', 'Full-text search query syntax error on special characters', '86956f7b-499f-497b-93b5-6538a6168aec', 'medium', 'technical', 'closed', 1785180746, 1785180746),\n('97b43b22-0f87-4cd3-bdc4-9d1953f29491', 'tkt-15', 'published', 'Custom multi-tenant deployment pricing quote', 'fbc1b290-fcd7-4bc2-8cee-6bdcbb29cf02', 'medium', 'sales', 'closed', 1785272880, 1785272880),\n('77434bb8-c84a-47b4-9573-746cf24fe2a5', 'tkt-16', 'published', 'Custom multi-tenant deployment pricing quote', '56c858bb-8431-4587-8034-6f10194be6c3', 'medium', 'sales', 'closed', 1785352981, 1785352981),\n('ba5b3069-2bf3-423d-8046-03a3d10b660f', 'tkt-17', 'published', 'Annual contract renewal volume discount inquiry', '24f33d39-8b51-4cb7-ad73-6994694f3b5f', 'low', 'sales', 'open', 1785410803, 1785410803),\n('58ab30a0-0fbe-40ab-a17d-1d837dd3c0d9', 'tkt-18', 'published', 'Annual contract renewal volume discount inquiry', '68c58d9f-bdc0-449b-81e1-93c0f26c35f4', 'high', 'sales', 'closed', 1785506764, 1785506764),\n('232ff39e-9004-4540-ab1b-1f82b317d256', 'tkt-19', 'published', 'Request to change payment method', '46dfdcb5-4503-482d-91cb-bcab3a568b18', 'low', 'billing', 'closed', 1785621525, 1785621525),\n('c17c998b-1356-47b4-bd59-e44cec9fba79', 'tkt-20', 'published', 'Webhook delivery synchronization timeout', '3f6e670c-506d-43c4-80d4-03c62d651fd1', 'medium', 'technical', 'in_progress', 1785593284, 1785593284),\n('222d1bb6-e5ca-471a-8baa-9a92a166e117', 'tkt-21', 'published', 'Question about pro-rata upgrades and add-ons', '46dfdcb5-4503-482d-91cb-bcab3a568b18', 'low', 'billing', 'closed', 1785726167, 1785726167),\n('08958468-7621-4f06-a3fc-9f8081b523a9', 'tkt-22', 'published', 'Uploaded images failing to render on CDN edge', '8b2e0b72-624a-495e-b709-e56d56fd81a2', 'medium', 'technical', 'closed', 1785703626, 1785703626),\n('8de9b810-48a8-47d5-87a3-d9b36adaf41a', 'tkt-23', 'published', 'Question about Pro tier seat limits and permissions', 'db0d6c0c-434f-46b3-b412-7863cd2e57b4', 'medium', 'sales', 'in_progress', 1785837605, 1785837605),\n('8023e79a-3a8b-4bf6-bf44-2aadc0de0b48', 'tkt-24', 'published', 'Refund request for accidental duplicate charge', 'ac246f17-ccc2-481e-a57a-8b68f9951965', 'low', 'billing', 'closed', 1785762433, 1785762433),\n('6e5ffe8a-bb55-4338-92d8-67d08fe01ad0', 'tkt-25', 'published', 'API authentication failure after key rotation', 'e45769ad-f005-4d29-840a-9d0457648c4e', 'low', 'technical', 'closed', 1785912802, 1785912802),\n('cc73c9c0-c267-4b34-8e77-2c193e484cb4', 'tkt-26', 'published', 'Billed amount does not match plan tier', 'cf4731ae-9e72-4c27-99ef-4b6910c74249', 'medium', 'billing', 'closed', 1785925469, 1785925469),\n('423a80f1-28f9-4835-8549-4a16b788d2b1', 'tkt-27', 'published', 'Webhook delivery synchronization timeout', '21b4db7d-1d38-46f9-9446-cae75c20e6de', 'low', 'technical', 'in_progress', 1786006940, 1786006940),\n('ec4b6bf2-3ab4-431f-893c-22746d951eb8', 'tkt-28', 'published', 'Invoice not received for this month', '2ccf3282-5549-4d63-bc4f-0dff608ca130', 'medium', 'billing', 'in_progress', 1786051786, 1786051786),\n('d8decc9f-51c5-46b1-9674-f1bb05396d28', 'tkt-29', 'published', 'Enterprise plan customized demo request', '641e007b-1b3f-4c13-a4ef-4d4af45acf9b', 'medium', 'sales', 'in_progress', 1786079104, 1786079104),\n('c50f0362-a422-48cd-ac8e-d3a761dcf8a1', 'tkt-30', 'published', 'Webhook delivery synchronization timeout', 'dbc10e4a-3a5d-4631-bf77-b1a941ee4fed', 'medium', 'technical', 'open', 1786167625, 1786167625),\n('e48a8f5b-54c7-40cb-b82f-22c3ac904660', 'tkt-31', 'published', '500 Internal Server Error when publishing entries', '87c18066-44c6-459d-85b3-38d1fef67a0f', 'low', 'technical', 'in_progress', 1786114517, 1786114517),\n('2e7ff416-f6b3-4595-ba1d-e9b45f7272a8', 'tkt-32', 'published', 'Refund request for accidental duplicate charge', '47a97931-da67-4f95-b76e-1cbb2864f40d', 'high', 'billing', 'in_progress', 1786200525, 1786200525),\n('5c1445e9-d424-41c4-b677-63febb51a05a', 'tkt-33', 'published', 'Enterprise plan customized demo request', 'dbc10e4a-3a5d-4631-bf77-b1a941ee4fed', 'high', 'sales', 'closed', 1786258134, 1786258134),\n('876b7bc0-be6c-4447-b0dd-d88b8635949b', 'tkt-34', 'published', 'Annual contract renewal volume discount inquiry', 'ce43c602-8735-4e2a-a153-5077a46912b7', 'high', 'sales', 'closed', 1786331353, 1786331353),\n('f7fb1ed3-3deb-4fd2-829b-3661fcc39521', 'tkt-35', 'published', 'Migration assistance from legacy headless CMS', '2eb3b6d6-eea5-4366-adf0-26cab7bec02a', 'medium', 'sales', 'in_progress', 1786336529, 1786336529),\n('a2f9319d-0cf8-4213-b341-2b43fe0a379f', 'tkt-36', 'published', 'SAML SSO configuration assistance request', 'db0d6c0c-434f-46b3-b412-7863cd2e57b4', 'low', 'technical', 'open', 1786402680, 1786402680),\n('00c7e813-2252-435f-bf3d-84805693a44a', 'tkt-37', 'published', 'Question about pro-rata upgrades and add-ons', '6210c771-c442-413c-93f5-281688cc442a', 'low', 'billing', 'in_progress', 1786380349, 1786380349),\n('352480c2-c849-4d61-bb34-3ea19aab9cb5', 'tkt-38', 'published', 'Billed amount does not match plan tier', '88bfb39f-bc27-4cb1-99e2-7b57270629cb', 'high', 'billing', 'open', 1786527824, 1786527824),\n('aab37d57-1dbc-4be6-8cf2-537ee0c633d8', 'tkt-39', 'published', 'Webhook delivery synchronization timeout', '9c6a55b2-bc20-465d-889f-6f6ec7f9e1b3', 'low', 'technical', 'closed', 1786457537, 1786457537),\n('73795bef-e1ca-4666-aeba-a035481af2bb', 'tkt-40', 'published', 'Request to change payment method', '9beced05-50f3-4d8c-8ef2-06f7a17cc4a5', 'medium', 'billing', 'closed', 1786544427, 1786544427),\n('cd97991b-061e-4212-9ce7-01b25d787eb6', 'tkt-41', 'published', 'Timeout during bulk CSV content import', '9f5a6de6-6830-4c6b-925e-eda15f1b3250', 'high', 'technical', 'open', 1786537282, 1786537282),\n('b8b3e90f-15c7-4483-970b-63250fe94623', 'tkt-42', 'published', 'Refund request for accidental duplicate charge', '3941f76a-2462-4a6b-9ced-5c11c875ea25', 'high', 'billing', 'open', 1786661883, 1786661883),\n('78524759-be37-41a1-853a-aab113c8a250', 'tkt-43', 'published', 'Billed amount does not match plan tier', 'ac246f17-ccc2-481e-a57a-8b68f9951965', 'low', 'billing', 'closed', 1786659998, 1786659998),\n('54c27150-a6cf-4aa4-98b0-168b13994476', 'tkt-44', 'published', 'Enterprise plan customized demo request', '3fb7d58b-6f45-424c-bc1d-4ed2f6473e45', 'high', 'sales', 'in_progress', 1786634118, 1786634118);\n\nINSERT OR IGNORE INTO content_changelog (id, slug, status, version, release_date, features, created_at, updated_at)\nVALUES\n('72fa99fa-55bf-4b7d-8df7-e4d6cc49142b', 'v1-0-0', 'published', 'v1.0.0', 1784196343, '<p>Official platform launch with core customer management and role-based access.</p>', 1784196343, 1784196343),\n('fa4ee318-abc2-401a-9be7-c181af4bea8c', 'v1-1-0', 'published', 'v1.1.0', 1784455543, '<p>Added advanced analytics reporting and CSV content export.</p>', 1784455543, 1784455543),\n('f55ffdf6-6f47-44e0-98b1-b40ff5189391', 'v1-2-0', 'published', 'v1.2.0', 1784714743, '<p>Slack integration for real-time ticket alerts and notifications.</p>', 1784714743, 1784714743),\n('53173ca1-1455-433e-b154-68daefa21fa4', 'v1-3-0', 'published', 'v1.3.0', 1784973943, '<p>New ticket tagging system and advanced dashboard query filters.</p>', 1784973943, 1784973943),\n('f19f1f62-3f01-421a-be24-7349470a313a', 'v1-4-0', 'published', 'v1.4.0', 1785233143, '<h2>Performance</h2><p>Reduced API latency by 40% using Cloudflare Workers edge caching.</p>', 1785233143, 1785233143),\n('6232d440-fa2a-44dc-85d0-a9331001dbd3', 'v1-5-0', 'published', 'v1.5.0', 1785492343, '<p>Added annual billing support with automated loyalty discounts.</p>', 1785492343, 1785492343),\n('da11a4a6-e969-476b-8a5d-2e3f21900aae', 'v1-6-0', 'published', 'v1.6.0', 1785751543, '<h2>New Features</h2><p>Modular dashboard widgets with responsive drag-and-drop layouts.</p>', 1785751543, 1785751543),\n('8745ae2b-19e8-4df8-84ed-bc999cf4195b', 'v1-7-0', 'published', 'v1.7.0', 1786010743, '<p>Configurable SLAs and instant email alerts for high-priority tickets.</p>', 1786010743, 1786010743),\n('0bc06094-b013-4d75-9a33-4376f745481a', 'v2-0-0', 'published', 'v2.0.0', 1786269943, '<h2>Major Update</h2><p>Redesigned administrative dashboard and public REST/GraphQL APIs.</p>', 1786269943, 1786269943),\n('9b7f51c5-e393-4cbe-ad15-84bf684c71b6', 'v2-1-0', 'published', 'v2.1.0', 1786442743, '<p>Full-text search indexing enhancements and minor sync bug fixes.</p>', 1786442743, 1786442743),\n('d0978458-cf2d-4051-a8fc-19fe1addaed1', 'v2-2-0', 'published', 'v2.2.0', 1786615543, '<h2>Security</h2><p>Automated API key rotation and tamper-proof audit trails for all system events.</p>', 1786615543, 1786615543);\n\nINSERT OR IGNORE INTO content_articoli (id, slug, status, title, author, cover_image, body, created_at, updated_at)\nVALUES\n('a24f342a-cb68-4123-966a-87bf1e48330c', 'how-to-reduce-saas-churn-rate', 'published', 'How to Reduce SaaS Churn Rate', 'Alex Rivera', 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=800&q=80', '<p>Best practices for retaining SaaS customers in 2026: guided onboarding, proactive check-ins, and tailored customer success plans.</p>', 1784282743, 1784282743),\n('04bc6feb-fcb1-476e-9e24-e2b8be1d7168', 'saas-pricing-freemium-vs-trial', 'published', 'SaaS Pricing: Freemium vs Free Trial', 'Sarah Jenkins', 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=800&q=80', '<p>How to maximize conversion rate and Customer Lifetime Value: a practical comparison between freemium and time-limited trial models.</p>', 1784455543, 1784455543),\n('fd93a65b-2b75-4d66-b0f2-46d0bbf5e3f7', 'enterprise-customer-onboarding-checklist', 'published', 'Enterprise Customer Onboarding Checklist', 'Michael Chang', 'https://images.unsplash.com/photo-1521737711867-e3b97375f902?w=800&q=80', '<p>Key milestones to guide new enterprise clients from contract signature to first realized value, reducing time-to-value.</p>', 1784714743, 1784714743),\n('8853da9b-562e-4b16-95c8-caf6c1ca159c', '7-saas-metrics-to-track-weekly', 'published', '7 SaaS Metrics Every Team Should Track Weekly', 'Emily Watson', 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=800&q=80', '<p>MRR, Churn, NRR, CAC, and LTV: a practical guide to the core metrics that drive sustainable subscription growth.</p>', 1784973943, 1784973943),\n('0352d3c8-6db1-4cbd-b011-4d03d143d9a4', 'automating-customer-support-quality', 'published', 'Automating Customer Support Without Sacrificing Quality', 'David Miller', 'https://images.unsplash.com/photo-1556742049-0cfed4f6a45d?w=800&q=80', '<p>Using smart automation rules and ticket routing to slash resolution times while keeping customer satisfaction high.</p>', 1785146743, 1785146743),\n('d0899577-6c06-4483-9241-69c1b5eacb00', 'subscription-renewal-preventing-failed-payments', 'published', 'Subscription Renewal Guide: Preventing Failed Payments', 'Jessica Taylor', 'https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?w=800&q=80', '<p>Dunning strategies, smart retry logic, and automated payment reminders to minimize involuntary churn from expired cards.</p>', 1785405943, 1785405943),\n('c619f0d8-6b17-4b0a-8cad-8d0222e77307', 'customer-segmentation-by-tier-insights', 'published', 'Customer Segmentation by Tier: What the Data Shows', 'Alex Rivera', 'https://images.unsplash.com/photo-1551434678-e076c223a692?w=800&q=80', '<p>Analyzing customer cohorts across free, pro, and enterprise tiers reveals clear patterns for upsell opportunities.</p>', 1785665143, 1785665143),\n('3d7fe991-65fe-46e6-93ad-ef50c4db63b4', 'case-study-enterprise-customers-scaling', 'published', 'Case Study: How Enterprise Customers Scale with BeechCMS', 'Sarah Jenkins', 'https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=800&q=80', '<p>Real stories of three high-growth companies that boosted their MRR by 30% within six months of adopting BeechCMS.</p>', 1785924343, 1785924343),\n('a47f463e-3c57-4cd1-877d-5081448d6bcd', 'ticket-priority-best-practices', 'published', 'Ticket Priority Best Practices: Impact vs Urgency', 'Michael Chang', 'https://images.unsplash.com/photo-1556761175-5973dc0f32e7?w=800&q=80', '<p>A simple 3x3 matrix for assigning low, medium, and high priorities based on business impact and urgency.</p>', 1786183543, 1786183543),\n('c61f6e7f-d801-4c57-af35-e71d71c41263', 'product-roadmap-2026', 'published', 'Product Roadmap 2026', 'Emily Watson', 'https://images.unsplash.com/photo-1557804506-669a67965ba0?w=800&q=80', '<p>Upcoming features: modular dashboard builder, third-party webhook integrations, and distributed search indexing.</p>', 1786356343, 1786356343),\n('e4bd793a-1a81-47fd-9bc6-ca5dac48dd78', 'security-audit-logs-v2-2-updates', 'published', 'Security & Audit Logs: What''s New in v2.2', 'David Miller', 'https://images.unsplash.com/photo-1518770660439-4636190af475?w=800&q=80', '<p>Version 2.2 introduces tamper-proof audit trails, automated API key rotation, and role-based granular access control.</p>', 1786529143, 1786529143),\n('15caa606-344a-4bde-843e-3945eb9a0833', 'annual-mrr-growth-analysis-learnings', 'published', 'Annual MRR Growth Analysis: Key Learnings', 'Jessica Taylor', 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=800&q=80', '<p>A comprehensive retrospective on Monthly Recurring Revenue growth: seasonality, expansion revenue, and churn prevention.</p>', 1786701943, 1786701943);\n\n";
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Shared types for the Beech CMS email module.
3
+ *
4
+ * All types used across provider, service, and templates are defined here
5
+ * so that each layer remains decoupled from the others.
6
+ */
7
+ /**
8
+ * Supported languages for the email template system.
9
+ *
10
+ * To add a new language:
11
+ * 1. Add the ISO code here (e.g., `'fr'`).
12
+ * 2. Add the corresponding translation in the `COPY` object of every
13
+ * file in `templates/`. TypeScript will flag missing keys.
14
+ */
15
+ export declare const SUPPORTED_EMAIL_LOCALES: readonly ["en", "it"];
16
+ export type EmailLocale = (typeof SUPPORTED_EMAIL_LOCALES)[number];
17
+ /**
18
+ * Resolves an unverified locale string (e.g., from a request body)
19
+ * to a supported `EmailLocale` value. Any unknown value
20
+ * safely falls back to `'en'`.
21
+ *
22
+ * @param raw - Raw value from the client (can be anything).
23
+ * @returns A valid `EmailLocale`, always.
24
+ */
25
+ export declare function resolveEmailLocale(raw: unknown): EmailLocale;
26
+ /**
27
+ * Shared parameters for every email sending function in `email.service.ts`.
28
+ * Specific functions extend this type with the additional fields
29
+ * required for their respective templates.
30
+ */
31
+ export interface BaseEmailParams {
32
+ /** Main recipient address. */
33
+ to: string;
34
+ /** Email body language. Use `resolveEmailLocale()` before passing it here. */
35
+ locale: EmailLocale;
36
+ /**
37
+ * Resend API key (or the active provider's key). Must be non-empty —
38
+ * the caller is responsible for validating it before invoking the service.
39
+ */
40
+ apiKey: string;
41
+ /**
42
+ * Sender address in RFC 5321 format.
43
+ * Default: "Beech CMS <onboarding@resend.dev>" (Resend test sender).
44
+ * In production, set a verified address via the
45
+ * `EMAIL_FROM` environment variable.
46
+ */
47
+ from?: string;
48
+ /**
49
+ * When `true`, provider errors are logged to the console.
50
+ * Set to `false` in production to avoid exposing internal details.
51
+ */
52
+ isDev?: boolean;
53
+ }
54
+ /** Parameters for the password reset email — adds the reset URL. */
55
+ export interface PasswordResetEmailParams extends BaseEmailParams {
56
+ /**
57
+ * Complete URL that the user clicks to set the new password.
58
+ * Contains the token in plain text as a query param `?token=<uuid>`.
59
+ * Constructed by the caller as `${APP_URL}/reset-password?token=${token}`.
60
+ */
61
+ resetUrl: string;
62
+ provider?: 'smtp' | 'resend';
63
+ smtpBaseUrl?: string;
64
+ }
65
+ /** Parameters for the "password changed" notification. No additional fields. */
66
+ export interface PasswordChangedEmailParams extends BaseEmailParams {
67
+ provider?: 'smtp' | 'resend';
68
+ smtpBaseUrl?: string;
69
+ }
70
+ export interface AutomationMailParams {
71
+ to: string;
72
+ subject: string;
73
+ /** Plain text or HTML — passed verbatim to provider. */
74
+ body: string;
75
+ apiKey?: string;
76
+ from?: string;
77
+ provider?: 'smtp' | 'resend';
78
+ smtpBaseUrl?: string;
79
+ }
@@ -0,0 +1,7 @@
1
+ import type { AutomationMailParams } from '../email.types';
2
+ export declare function buildAutomationEmail(params: AutomationMailParams): {
3
+ to: string;
4
+ subject: string;
5
+ html: string;
6
+ text: string;
7
+ };
@@ -0,0 +1,15 @@
1
+ import type { EmailLocale } from '../email.types';
2
+ /**
3
+ * Builds the "password changed" notification email.
4
+ *
5
+ * This email does not have a CTA button — it is a pure security notification.
6
+ * The `warning` block (red text) warns the user to take action if they
7
+ * were not the one who changed the password.
8
+ *
9
+ * @param locale - Language for the email subject and body.
10
+ * @returns Object with `subject` (string) and `html` (complete HTML document).
11
+ */
12
+ export declare function buildPasswordChangedEmail(locale: EmailLocale): {
13
+ subject: string;
14
+ html: string;
15
+ };
@@ -0,0 +1,18 @@
1
+ import type { EmailLocale } from '../email.types';
2
+ /**
3
+ * Builds the email with the password reset link.
4
+ *
5
+ * Composes the localized content with the base layout (`buildEmailShell`)
6
+ * injecting the CTA button pointing to the reset URL.
7
+ *
8
+ * @param resetUrl - Complete URL with the token in plain text, e.g.
9
+ * `https://dashboard.beechcms.dev/reset-password?token=<uuid>`.
10
+ * It is directly embedded in the CTA button — do not sanitize
11
+ * further: the token is an internally generated UUID.
12
+ * @param locale - Language for the email subject and body.
13
+ * @returns Object with `subject` (string) and `html` (complete HTML document).
14
+ */
15
+ export declare function buildPasswordResetEmail(resetUrl: string, locale: EmailLocale): {
16
+ subject: string;
17
+ html: string;
18
+ };
@@ -0,0 +1,58 @@
1
+ import type { EmailLocale } from '../email.types';
2
+ /**
3
+ * Content slots that every template must provide to compose a complete email.
4
+ * Each slot corresponds to a visual block in the email card layout.
5
+ */
6
+ export interface EmailShellSlots {
7
+ /**
8
+ * H2 heading shown at the top of the card. Keep it under ~50 characters
9
+ * to ensure good readability on mobile clients.
10
+ */
11
+ title: string;
12
+ /**
13
+ * Main body text. Rendered as a paragraph.
14
+ * Safe inline HTML is allowed (e.g., `<strong>`, `<a href="...">`),
15
+ * but avoid block elements (`<p>`, `<div>`) that could break
16
+ * the layout structure in rigid email clients (Outlook, Gmail).
17
+ */
18
+ body: string;
19
+ /**
20
+ * Optional call-to-action button, rendered as a dark link-button.
21
+ * Omit for notification-only emails that do not require user action.
22
+ */
23
+ cta?: {
24
+ label: string;
25
+ href: string;
26
+ };
27
+ /**
28
+ * Optional warning paragraph. Rendered in red (#ef4444) to attract
29
+ * attention. Use it for security alerts
30
+ * ("if it wasn't you, act immediately").
31
+ */
32
+ warning?: string;
33
+ /**
34
+ * Small gray text at the bottom of the card.
35
+ * Used for notes like "automated notification, do not reply".
36
+ */
37
+ footer: string;
38
+ }
39
+ /**
40
+ * Builds the base HTML layout shared by all Beech CMS transactional emails.
41
+ *
42
+ * ─── SINGLE SOURCE OF TRUTH FOR BRANDING ─────────────────────────────────────
43
+ * Modifying this function changes the visual appearance of ALL outgoing emails
44
+ * simultaneously:
45
+ * - background and card color
46
+ * - border style and border-radius
47
+ * - typographic scale and spacing
48
+ * - CTA button style
49
+ *
50
+ * To change the text or structure of a specific email, instead modify
51
+ * the corresponding template file (`templates/password-reset.ts`, etc.).
52
+ * ─────────────────────────────────────────────────────────────────────────────
53
+ *
54
+ * @param locale - Used for the `lang` attribute of the `<html>` tag.
55
+ * @param slots - Content blocks injected into the layout.
56
+ * @returns A complete and self-contained HTML document ready to be sent.
57
+ */
58
+ export declare function buildEmailShell(locale: EmailLocale, slots: EmailShellSlots): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare function deleteR2Objects(c: {
2
+ var: {
3
+ bucket: any;
4
+ mediaRepository: any;
5
+ systemStatsRepository: any;
6
+ };
7
+ }, objectKeys: string[]): Promise<void>;
@@ -0,0 +1,13 @@
1
+ import type { HonoRequest } from "hono";
2
+ /**
3
+ * Extracts the real client IP address from a Cloudflare Worker request.
4
+ *
5
+ * Cloudflare injects the cf-connecting-ip header on every request that
6
+ * passes through the edge. In local development (wrangler dev) or in
7
+ * unit tests the header may be absent, in which case the string "unknown"
8
+ * is returned so that rate-limiter keys remain non-empty and safe to use.
9
+ *
10
+ * Never derive security decisions from this value alone; treat it as a
11
+ * best-effort hint for rate-limiting and logging purposes only.
12
+ */
13
+ export declare function getClientIp(request: HonoRequest): string;
@@ -0,0 +1,7 @@
1
+ import { S3Client } from '@aws-sdk/client-s3';
2
+ /**
3
+ * Calcola la dimensione totale occupata in un bucket R2 (in byte).
4
+ * Nota: esegue una scansione completa del bucket. Per bucket molto grandi
5
+ * andrebbe implementata una cache o usato Cloudflare Logpush/Analytics.
6
+ */
7
+ export declare function getBucketSize(client: S3Client, bucketName: string): Promise<number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beechcms/api",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/factory.d.ts",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@aws-sdk/client-s3": "^3.995.0",
22
22
  "@aws-sdk/s3-request-presigner": "^3.995.0",
23
- "@beechcms/core": "^0.6.6",
23
+ "@beechcms/core": "^0.6.7",
24
24
  "@upstash/qstash": "^2.11.0",
25
25
  "bcryptjs": "^2.4.3",
26
26
  "hono": "^4.12.34",