c4r-aggregator-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/.idea/misc.xml +6 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/ts.iml +9 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/.openapi-generator/FILES +91 -0
  6. package/.openapi-generator/VERSION +1 -0
  7. package/.openapi-generator-ignore +23 -0
  8. package/README.md +174 -0
  9. package/dist/apis/AdminApi.d.ts +187 -0
  10. package/dist/apis/AdminApi.js +515 -0
  11. package/dist/apis/CatalogApi.d.ts +84 -0
  12. package/dist/apis/CatalogApi.js +191 -0
  13. package/dist/apis/MeetingsApi.d.ts +98 -0
  14. package/dist/apis/MeetingsApi.js +235 -0
  15. package/dist/apis/SourcesApi.d.ts +35 -0
  16. package/dist/apis/SourcesApi.js +73 -0
  17. package/dist/apis/index.d.ts +4 -0
  18. package/dist/apis/index.js +22 -0
  19. package/dist/esm/apis/AdminApi.d.ts +187 -0
  20. package/dist/esm/apis/AdminApi.js +511 -0
  21. package/dist/esm/apis/CatalogApi.d.ts +84 -0
  22. package/dist/esm/apis/CatalogApi.js +187 -0
  23. package/dist/esm/apis/MeetingsApi.d.ts +98 -0
  24. package/dist/esm/apis/MeetingsApi.js +231 -0
  25. package/dist/esm/apis/SourcesApi.d.ts +35 -0
  26. package/dist/esm/apis/SourcesApi.js +69 -0
  27. package/dist/esm/apis/index.d.ts +4 -0
  28. package/dist/esm/apis/index.js +6 -0
  29. package/dist/esm/index.d.ts +3 -0
  30. package/dist/esm/index.js +5 -0
  31. package/dist/esm/models/AdminSource.d.ts +190 -0
  32. package/dist/esm/models/AdminSource.js +112 -0
  33. package/dist/esm/models/AuthError.d.ts +32 -0
  34. package/dist/esm/models/AuthError.js +41 -0
  35. package/dist/esm/models/CreateSourceRequest.d.ts +76 -0
  36. package/dist/esm/models/CreateSourceRequest.js +64 -0
  37. package/dist/esm/models/CreateSourceResponse.d.ts +45 -0
  38. package/dist/esm/models/CreateSourceResponse.js +46 -0
  39. package/dist/esm/models/DedupCounters.d.ts +86 -0
  40. package/dist/esm/models/DedupCounters.js +59 -0
  41. package/dist/esm/models/DedupStats.d.ts +65 -0
  42. package/dist/esm/models/DedupStats.js +54 -0
  43. package/dist/esm/models/DedupStatsLatestRun.d.ts +60 -0
  44. package/dist/esm/models/DedupStatsLatestRun.js +56 -0
  45. package/dist/esm/models/DedupStatsRecentRunsInner.d.ts +45 -0
  46. package/dist/esm/models/DedupStatsRecentRunsInner.js +46 -0
  47. package/dist/esm/models/FeedValidationError.d.ts +54 -0
  48. package/dist/esm/models/FeedValidationError.js +54 -0
  49. package/dist/esm/models/IngestRun.d.ts +107 -0
  50. package/dist/esm/models/IngestRun.js +71 -0
  51. package/dist/esm/models/MapFeature.d.ts +46 -0
  52. package/dist/esm/models/MapFeature.js +47 -0
  53. package/dist/esm/models/MapFeatureCollection.d.ts +45 -0
  54. package/dist/esm/models/MapFeatureCollection.js +46 -0
  55. package/dist/esm/models/MapFeatureGeometry.d.ts +38 -0
  56. package/dist/esm/models/MapFeatureGeometry.js +43 -0
  57. package/dist/esm/models/MapFeatureProperties.d.ts +69 -0
  58. package/dist/esm/models/MapFeatureProperties.js +54 -0
  59. package/dist/esm/models/MapMeeting.d.ts +50 -0
  60. package/dist/esm/models/MapMeeting.js +47 -0
  61. package/dist/esm/models/Meeting.d.ts +272 -0
  62. package/dist/esm/models/Meeting.js +131 -0
  63. package/dist/esm/models/MeetingPage.d.ts +47 -0
  64. package/dist/esm/models/MeetingPage.js +48 -0
  65. package/dist/esm/models/MeetingPageLinks.d.ts +50 -0
  66. package/dist/esm/models/MeetingPageLinks.js +47 -0
  67. package/dist/esm/models/MeetingPageMeta.d.ts +50 -0
  68. package/dist/esm/models/MeetingPageMeta.js +47 -0
  69. package/dist/esm/models/MeetingType.d.ts +56 -0
  70. package/dist/esm/models/MeetingType.js +49 -0
  71. package/dist/esm/models/MeetingsFilterError.d.ts +44 -0
  72. package/dist/esm/models/MeetingsFilterError.js +45 -0
  73. package/dist/esm/models/Program.d.ts +44 -0
  74. package/dist/esm/models/Program.js +45 -0
  75. package/dist/esm/models/PublicSource.d.ts +113 -0
  76. package/dist/esm/models/PublicSource.js +80 -0
  77. package/dist/esm/models/SourceEnvelope.d.ts +33 -0
  78. package/dist/esm/models/SourceEnvelope.js +42 -0
  79. package/dist/esm/models/SourceRefreshResponse.d.ts +39 -0
  80. package/dist/esm/models/SourceRefreshResponse.js +44 -0
  81. package/dist/esm/models/Stats.d.ts +86 -0
  82. package/dist/esm/models/Stats.js +63 -0
  83. package/dist/esm/models/StatsGroups.d.ts +32 -0
  84. package/dist/esm/models/StatsGroups.js +41 -0
  85. package/dist/esm/models/StatsLocations.d.ts +38 -0
  86. package/dist/esm/models/StatsLocations.js +43 -0
  87. package/dist/esm/models/StatsMeetingTypes.d.ts +32 -0
  88. package/dist/esm/models/StatsMeetingTypes.js +41 -0
  89. package/dist/esm/models/StatsMeetings.d.ts +68 -0
  90. package/dist/esm/models/StatsMeetings.js +51 -0
  91. package/dist/esm/models/StatsProgramsBreakdownInner.d.ts +62 -0
  92. package/dist/esm/models/StatsProgramsBreakdownInner.js +51 -0
  93. package/dist/esm/models/StatsSources.d.ts +47 -0
  94. package/dist/esm/models/StatsSources.js +46 -0
  95. package/dist/esm/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
  96. package/dist/esm/models/StatsSourcesTopByMeetingCountInner.js +45 -0
  97. package/dist/esm/models/StoreSourceValidationError.d.ts +23 -0
  98. package/dist/esm/models/StoreSourceValidationError.js +51 -0
  99. package/dist/esm/models/UpdateSourceRequest.d.ts +70 -0
  100. package/dist/esm/models/UpdateSourceRequest.js +58 -0
  101. package/dist/esm/models/ValidationError.d.ts +40 -0
  102. package/dist/esm/models/ValidationError.js +43 -0
  103. package/dist/esm/models/index.d.ts +36 -0
  104. package/dist/esm/models/index.js +38 -0
  105. package/dist/esm/runtime.d.ts +184 -0
  106. package/dist/esm/runtime.js +349 -0
  107. package/dist/index.d.ts +3 -0
  108. package/dist/index.js +21 -0
  109. package/dist/models/AdminSource.d.ts +190 -0
  110. package/dist/models/AdminSource.js +120 -0
  111. package/dist/models/AuthError.d.ts +32 -0
  112. package/dist/models/AuthError.js +48 -0
  113. package/dist/models/CreateSourceRequest.d.ts +76 -0
  114. package/dist/models/CreateSourceRequest.js +72 -0
  115. package/dist/models/CreateSourceResponse.d.ts +45 -0
  116. package/dist/models/CreateSourceResponse.js +53 -0
  117. package/dist/models/DedupCounters.d.ts +86 -0
  118. package/dist/models/DedupCounters.js +66 -0
  119. package/dist/models/DedupStats.d.ts +65 -0
  120. package/dist/models/DedupStats.js +61 -0
  121. package/dist/models/DedupStatsLatestRun.d.ts +60 -0
  122. package/dist/models/DedupStatsLatestRun.js +64 -0
  123. package/dist/models/DedupStatsRecentRunsInner.d.ts +45 -0
  124. package/dist/models/DedupStatsRecentRunsInner.js +53 -0
  125. package/dist/models/FeedValidationError.d.ts +54 -0
  126. package/dist/models/FeedValidationError.js +62 -0
  127. package/dist/models/IngestRun.d.ts +107 -0
  128. package/dist/models/IngestRun.js +79 -0
  129. package/dist/models/MapFeature.d.ts +46 -0
  130. package/dist/models/MapFeature.js +54 -0
  131. package/dist/models/MapFeatureCollection.d.ts +45 -0
  132. package/dist/models/MapFeatureCollection.js +53 -0
  133. package/dist/models/MapFeatureGeometry.d.ts +38 -0
  134. package/dist/models/MapFeatureGeometry.js +50 -0
  135. package/dist/models/MapFeatureProperties.d.ts +69 -0
  136. package/dist/models/MapFeatureProperties.js +61 -0
  137. package/dist/models/MapMeeting.d.ts +50 -0
  138. package/dist/models/MapMeeting.js +54 -0
  139. package/dist/models/Meeting.d.ts +272 -0
  140. package/dist/models/Meeting.js +139 -0
  141. package/dist/models/MeetingPage.d.ts +47 -0
  142. package/dist/models/MeetingPage.js +55 -0
  143. package/dist/models/MeetingPageLinks.d.ts +50 -0
  144. package/dist/models/MeetingPageLinks.js +54 -0
  145. package/dist/models/MeetingPageMeta.d.ts +50 -0
  146. package/dist/models/MeetingPageMeta.js +54 -0
  147. package/dist/models/MeetingType.d.ts +56 -0
  148. package/dist/models/MeetingType.js +56 -0
  149. package/dist/models/MeetingsFilterError.d.ts +44 -0
  150. package/dist/models/MeetingsFilterError.js +52 -0
  151. package/dist/models/Program.d.ts +44 -0
  152. package/dist/models/Program.js +52 -0
  153. package/dist/models/PublicSource.d.ts +113 -0
  154. package/dist/models/PublicSource.js +88 -0
  155. package/dist/models/SourceEnvelope.d.ts +33 -0
  156. package/dist/models/SourceEnvelope.js +49 -0
  157. package/dist/models/SourceRefreshResponse.d.ts +39 -0
  158. package/dist/models/SourceRefreshResponse.js +51 -0
  159. package/dist/models/Stats.d.ts +86 -0
  160. package/dist/models/Stats.js +70 -0
  161. package/dist/models/StatsGroups.d.ts +32 -0
  162. package/dist/models/StatsGroups.js +48 -0
  163. package/dist/models/StatsLocations.d.ts +38 -0
  164. package/dist/models/StatsLocations.js +50 -0
  165. package/dist/models/StatsMeetingTypes.d.ts +32 -0
  166. package/dist/models/StatsMeetingTypes.js +48 -0
  167. package/dist/models/StatsMeetings.d.ts +68 -0
  168. package/dist/models/StatsMeetings.js +58 -0
  169. package/dist/models/StatsProgramsBreakdownInner.d.ts +62 -0
  170. package/dist/models/StatsProgramsBreakdownInner.js +58 -0
  171. package/dist/models/StatsSources.d.ts +47 -0
  172. package/dist/models/StatsSources.js +53 -0
  173. package/dist/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
  174. package/dist/models/StatsSourcesTopByMeetingCountInner.js +52 -0
  175. package/dist/models/StoreSourceValidationError.d.ts +23 -0
  176. package/dist/models/StoreSourceValidationError.js +57 -0
  177. package/dist/models/UpdateSourceRequest.d.ts +70 -0
  178. package/dist/models/UpdateSourceRequest.js +66 -0
  179. package/dist/models/ValidationError.d.ts +40 -0
  180. package/dist/models/ValidationError.js +50 -0
  181. package/dist/models/index.d.ts +36 -0
  182. package/dist/models/index.js +54 -0
  183. package/dist/runtime.d.ts +184 -0
  184. package/dist/runtime.js +365 -0
  185. package/docs/AdminApi.md +734 -0
  186. package/docs/AdminSource.md +77 -0
  187. package/docs/AuthError.md +34 -0
  188. package/docs/CatalogApi.md +270 -0
  189. package/docs/CreateSourceRequest.md +46 -0
  190. package/docs/CreateSourceResponse.md +38 -0
  191. package/docs/DedupCounters.md +53 -0
  192. package/docs/DedupStats.md +45 -0
  193. package/docs/DedupStatsLatestRun.md +41 -0
  194. package/docs/DedupStatsRecentRunsInner.md +39 -0
  195. package/docs/FeedValidationError.md +39 -0
  196. package/docs/IngestRun.md +57 -0
  197. package/docs/MapFeature.md +39 -0
  198. package/docs/MapFeatureCollection.md +39 -0
  199. package/docs/MapFeatureGeometry.md +37 -0
  200. package/docs/MapFeatureProperties.md +47 -0
  201. package/docs/MapMeeting.md +41 -0
  202. package/docs/Meeting.md +109 -0
  203. package/docs/MeetingPage.md +39 -0
  204. package/docs/MeetingPageLinks.md +41 -0
  205. package/docs/MeetingPageMeta.md +41 -0
  206. package/docs/MeetingType.md +42 -0
  207. package/docs/MeetingsApi.md +323 -0
  208. package/docs/MeetingsFilterError.md +39 -0
  209. package/docs/Program.md +38 -0
  210. package/docs/PublicSource.md +55 -0
  211. package/docs/SourceEnvelope.md +35 -0
  212. package/docs/SourceRefreshResponse.md +37 -0
  213. package/docs/SourcesApi.md +76 -0
  214. package/docs/Stats.md +51 -0
  215. package/docs/StatsGroups.md +35 -0
  216. package/docs/StatsLocations.md +37 -0
  217. package/docs/StatsMeetingTypes.md +35 -0
  218. package/docs/StatsMeetings.md +45 -0
  219. package/docs/StatsProgramsBreakdownInner.md +45 -0
  220. package/docs/StatsSources.md +39 -0
  221. package/docs/StatsSourcesTopByMeetingCountInner.md +39 -0
  222. package/docs/StoreSourceValidationError.md +41 -0
  223. package/docs/UpdateSourceRequest.md +44 -0
  224. package/docs/ValidationError.md +36 -0
  225. package/package.json +21 -0
  226. package/src/apis/AdminApi.ts +659 -0
  227. package/src/apis/CatalogApi.ts +220 -0
  228. package/src/apis/MeetingsApi.ts +305 -0
  229. package/src/apis/SourcesApi.ts +74 -0
  230. package/src/apis/index.ts +6 -0
  231. package/src/index.ts +5 -0
  232. package/src/models/AdminSource.ts +270 -0
  233. package/src/models/AuthError.ts +65 -0
  234. package/src/models/CreateSourceRequest.ts +126 -0
  235. package/src/models/CreateSourceResponse.ts +89 -0
  236. package/src/models/DedupCounters.ts +137 -0
  237. package/src/models/DedupStats.ts +127 -0
  238. package/src/models/DedupStatsLatestRun.ts +109 -0
  239. package/src/models/DedupStatsRecentRunsInner.ts +89 -0
  240. package/src/models/FeedValidationError.ts +94 -0
  241. package/src/models/IngestRun.ts +165 -0
  242. package/src/models/MapFeature.ts +96 -0
  243. package/src/models/MapFeatureCollection.ts +89 -0
  244. package/src/models/MapFeatureGeometry.ts +73 -0
  245. package/src/models/MapFeatureProperties.ts +121 -0
  246. package/src/models/MapMeeting.ts +89 -0
  247. package/src/models/Meeting.ts +383 -0
  248. package/src/models/MeetingPage.ts +103 -0
  249. package/src/models/MeetingPageLinks.ts +89 -0
  250. package/src/models/MeetingPageMeta.ts +89 -0
  251. package/src/models/MeetingType.ts +97 -0
  252. package/src/models/MeetingsFilterError.ts +81 -0
  253. package/src/models/Program.ts +81 -0
  254. package/src/models/PublicSource.ts +170 -0
  255. package/src/models/SourceEnvelope.ts +73 -0
  256. package/src/models/SourceRefreshResponse.ts +81 -0
  257. package/src/models/Stats.ts +172 -0
  258. package/src/models/StatsGroups.ts +65 -0
  259. package/src/models/StatsLocations.ts +73 -0
  260. package/src/models/StatsMeetingTypes.ts +65 -0
  261. package/src/models/StatsMeetings.ts +105 -0
  262. package/src/models/StatsProgramsBreakdownInner.ts +105 -0
  263. package/src/models/StatsSources.ts +89 -0
  264. package/src/models/StatsSourcesTopByMeetingCountInner.ts +81 -0
  265. package/src/models/StoreSourceValidationError.ts +76 -0
  266. package/src/models/UpdateSourceRequest.ts +116 -0
  267. package/src/models/ValidationError.ts +73 -0
  268. package/src/models/index.ts +38 -0
  269. package/src/runtime.ts +449 -0
  270. package/tsconfig.esm.json +7 -0
  271. package/tsconfig.json +16 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { AdminSource } from './AdminSource';
13
+ /**
14
+ * Result of queueing an immediate re-fetch for a source.
15
+ * @export
16
+ * @interface SourceRefreshResponse
17
+ */
18
+ export interface SourceRefreshResponse {
19
+ /**
20
+ *
21
+ * @type {AdminSource}
22
+ * @memberof SourceRefreshResponse
23
+ */
24
+ source?: AdminSource;
25
+ /**
26
+ *
27
+ * @type {boolean}
28
+ * @memberof SourceRefreshResponse
29
+ */
30
+ dispatched?: boolean;
31
+ }
32
+ /**
33
+ * Check if a given object implements the SourceRefreshResponse interface.
34
+ */
35
+ export declare function instanceOfSourceRefreshResponse(value: object): value is SourceRefreshResponse;
36
+ export declare function SourceRefreshResponseFromJSON(json: any): SourceRefreshResponse;
37
+ export declare function SourceRefreshResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SourceRefreshResponse;
38
+ export declare function SourceRefreshResponseToJSON(json: any): SourceRefreshResponse;
39
+ export declare function SourceRefreshResponseToJSONTyped(value?: SourceRefreshResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,44 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { AdminSourceFromJSON, AdminSourceToJSON, } from './AdminSource';
15
+ /**
16
+ * Check if a given object implements the SourceRefreshResponse interface.
17
+ */
18
+ export function instanceOfSourceRefreshResponse(value) {
19
+ return true;
20
+ }
21
+ export function SourceRefreshResponseFromJSON(json) {
22
+ return SourceRefreshResponseFromJSONTyped(json, false);
23
+ }
24
+ export function SourceRefreshResponseFromJSONTyped(json, ignoreDiscriminator) {
25
+ if (json == null) {
26
+ return json;
27
+ }
28
+ return {
29
+ 'source': json['source'] == null ? undefined : AdminSourceFromJSON(json['source']),
30
+ 'dispatched': json['dispatched'] == null ? undefined : json['dispatched'],
31
+ };
32
+ }
33
+ export function SourceRefreshResponseToJSON(json) {
34
+ return SourceRefreshResponseToJSONTyped(json, false);
35
+ }
36
+ export function SourceRefreshResponseToJSONTyped(value, ignoreDiscriminator = false) {
37
+ if (value == null) {
38
+ return value;
39
+ }
40
+ return {
41
+ 'source': AdminSourceToJSON(value['source']),
42
+ 'dispatched': value['dispatched'],
43
+ };
44
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { StatsGroups } from './StatsGroups';
13
+ import type { StatsLocations } from './StatsLocations';
14
+ import type { StatsMeetings } from './StatsMeetings';
15
+ import type { StatsSources } from './StatsSources';
16
+ import type { StatsProgramsBreakdownInner } from './StatsProgramsBreakdownInner';
17
+ import type { StatsMeetingTypes } from './StatsMeetingTypes';
18
+ /**
19
+ * Aggregator-wide counts snapshot. Cached 60 seconds (per program filter).
20
+ * @export
21
+ * @interface Stats
22
+ */
23
+ export interface Stats {
24
+ /**
25
+ *
26
+ * @type {Date}
27
+ * @memberof Stats
28
+ */
29
+ generatedAt?: Date;
30
+ /**
31
+ * Echoes the `?program=` filter, or null when unfiltered.
32
+ * @type {string}
33
+ * @memberof Stats
34
+ */
35
+ program?: string | null;
36
+ /**
37
+ *
38
+ * @type {StatsMeetings}
39
+ * @memberof Stats
40
+ */
41
+ meetings?: StatsMeetings;
42
+ /**
43
+ *
44
+ * @type {StatsLocations}
45
+ * @memberof Stats
46
+ */
47
+ locations?: StatsLocations;
48
+ /**
49
+ *
50
+ * @type {StatsGroups}
51
+ * @memberof Stats
52
+ */
53
+ groups?: StatsGroups;
54
+ /**
55
+ *
56
+ * @type {StatsSources}
57
+ * @memberof Stats
58
+ */
59
+ sources?: StatsSources;
60
+ /**
61
+ *
62
+ * @type {StatsMeetingTypes}
63
+ * @memberof Stats
64
+ */
65
+ meetingTypes?: StatsMeetingTypes;
66
+ /**
67
+ *
68
+ * @type {Array<StatsProgramsBreakdownInner>}
69
+ * @memberof Stats
70
+ */
71
+ programsBreakdown?: Array<StatsProgramsBreakdownInner>;
72
+ /**
73
+ *
74
+ * @type {Date}
75
+ * @memberof Stats
76
+ */
77
+ lastSuccessfulIngestAt?: Date | null;
78
+ }
79
+ /**
80
+ * Check if a given object implements the Stats interface.
81
+ */
82
+ export declare function instanceOfStats(value: object): value is Stats;
83
+ export declare function StatsFromJSON(json: any): Stats;
84
+ export declare function StatsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Stats;
85
+ export declare function StatsToJSON(json: any): Stats;
86
+ export declare function StatsToJSONTyped(value?: Stats | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,63 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { StatsGroupsFromJSON, StatsGroupsToJSON, } from './StatsGroups';
15
+ import { StatsLocationsFromJSON, StatsLocationsToJSON, } from './StatsLocations';
16
+ import { StatsMeetingsFromJSON, StatsMeetingsToJSON, } from './StatsMeetings';
17
+ import { StatsSourcesFromJSON, StatsSourcesToJSON, } from './StatsSources';
18
+ import { StatsProgramsBreakdownInnerFromJSON, StatsProgramsBreakdownInnerToJSON, } from './StatsProgramsBreakdownInner';
19
+ import { StatsMeetingTypesFromJSON, StatsMeetingTypesToJSON, } from './StatsMeetingTypes';
20
+ /**
21
+ * Check if a given object implements the Stats interface.
22
+ */
23
+ export function instanceOfStats(value) {
24
+ return true;
25
+ }
26
+ export function StatsFromJSON(json) {
27
+ return StatsFromJSONTyped(json, false);
28
+ }
29
+ export function StatsFromJSONTyped(json, ignoreDiscriminator) {
30
+ if (json == null) {
31
+ return json;
32
+ }
33
+ return {
34
+ 'generatedAt': json['generated_at'] == null ? undefined : (new Date(json['generated_at'])),
35
+ 'program': json['program'] == null ? undefined : json['program'],
36
+ 'meetings': json['meetings'] == null ? undefined : StatsMeetingsFromJSON(json['meetings']),
37
+ 'locations': json['locations'] == null ? undefined : StatsLocationsFromJSON(json['locations']),
38
+ 'groups': json['groups'] == null ? undefined : StatsGroupsFromJSON(json['groups']),
39
+ 'sources': json['sources'] == null ? undefined : StatsSourcesFromJSON(json['sources']),
40
+ 'meetingTypes': json['meeting_types'] == null ? undefined : StatsMeetingTypesFromJSON(json['meeting_types']),
41
+ 'programsBreakdown': json['programs_breakdown'] == null ? undefined : (json['programs_breakdown'].map(StatsProgramsBreakdownInnerFromJSON)),
42
+ 'lastSuccessfulIngestAt': json['last_successful_ingest_at'] == null ? undefined : (new Date(json['last_successful_ingest_at'])),
43
+ };
44
+ }
45
+ export function StatsToJSON(json) {
46
+ return StatsToJSONTyped(json, false);
47
+ }
48
+ export function StatsToJSONTyped(value, ignoreDiscriminator = false) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'generated_at': value['generatedAt'] == null ? value['generatedAt'] : value['generatedAt'].toISOString(),
54
+ 'program': value['program'],
55
+ 'meetings': StatsMeetingsToJSON(value['meetings']),
56
+ 'locations': StatsLocationsToJSON(value['locations']),
57
+ 'groups': StatsGroupsToJSON(value['groups']),
58
+ 'sources': StatsSourcesToJSON(value['sources']),
59
+ 'meeting_types': StatsMeetingTypesToJSON(value['meetingTypes']),
60
+ 'programs_breakdown': value['programsBreakdown'] == null ? undefined : (value['programsBreakdown'].map(StatsProgramsBreakdownInnerToJSON)),
61
+ 'last_successful_ingest_at': value['lastSuccessfulIngestAt'] == null ? value['lastSuccessfulIngestAt'] : value['lastSuccessfulIngestAt'].toISOString(),
62
+ };
63
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Group-count breakdowns in Stats.
14
+ * @export
15
+ * @interface StatsGroups
16
+ */
17
+ export interface StatsGroups {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof StatsGroups
22
+ */
23
+ total?: number;
24
+ }
25
+ /**
26
+ * Check if a given object implements the StatsGroups interface.
27
+ */
28
+ export declare function instanceOfStatsGroups(value: object): value is StatsGroups;
29
+ export declare function StatsGroupsFromJSON(json: any): StatsGroups;
30
+ export declare function StatsGroupsFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatsGroups;
31
+ export declare function StatsGroupsToJSON(json: any): StatsGroups;
32
+ export declare function StatsGroupsToJSONTyped(value?: StatsGroups | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,41 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the StatsGroups interface.
16
+ */
17
+ export function instanceOfStatsGroups(value) {
18
+ return true;
19
+ }
20
+ export function StatsGroupsFromJSON(json) {
21
+ return StatsGroupsFromJSONTyped(json, false);
22
+ }
23
+ export function StatsGroupsFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'total': json['total'] == null ? undefined : json['total'],
29
+ };
30
+ }
31
+ export function StatsGroupsToJSON(json) {
32
+ return StatsGroupsToJSONTyped(json, false);
33
+ }
34
+ export function StatsGroupsToJSONTyped(value, ignoreDiscriminator = false) {
35
+ if (value == null) {
36
+ return value;
37
+ }
38
+ return {
39
+ 'total': value['total'],
40
+ };
41
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Location-count breakdowns in Stats.
14
+ * @export
15
+ * @interface StatsLocations
16
+ */
17
+ export interface StatsLocations {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof StatsLocations
22
+ */
23
+ total?: number;
24
+ /**
25
+ *
26
+ * @type {number}
27
+ * @memberof StatsLocations
28
+ */
29
+ withCoords?: number;
30
+ }
31
+ /**
32
+ * Check if a given object implements the StatsLocations interface.
33
+ */
34
+ export declare function instanceOfStatsLocations(value: object): value is StatsLocations;
35
+ export declare function StatsLocationsFromJSON(json: any): StatsLocations;
36
+ export declare function StatsLocationsFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatsLocations;
37
+ export declare function StatsLocationsToJSON(json: any): StatsLocations;
38
+ export declare function StatsLocationsToJSONTyped(value?: StatsLocations | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,43 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the StatsLocations interface.
16
+ */
17
+ export function instanceOfStatsLocations(value) {
18
+ return true;
19
+ }
20
+ export function StatsLocationsFromJSON(json) {
21
+ return StatsLocationsFromJSONTyped(json, false);
22
+ }
23
+ export function StatsLocationsFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'total': json['total'] == null ? undefined : json['total'],
29
+ 'withCoords': json['with_coords'] == null ? undefined : json['with_coords'],
30
+ };
31
+ }
32
+ export function StatsLocationsToJSON(json) {
33
+ return StatsLocationsToJSONTyped(json, false);
34
+ }
35
+ export function StatsLocationsToJSONTyped(value, ignoreDiscriminator = false) {
36
+ if (value == null) {
37
+ return value;
38
+ }
39
+ return {
40
+ 'total': value['total'],
41
+ 'with_coords': value['withCoords'],
42
+ };
43
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Meeting-type-count breakdowns in Stats.
14
+ * @export
15
+ * @interface StatsMeetingTypes
16
+ */
17
+ export interface StatsMeetingTypes {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof StatsMeetingTypes
22
+ */
23
+ total?: number;
24
+ }
25
+ /**
26
+ * Check if a given object implements the StatsMeetingTypes interface.
27
+ */
28
+ export declare function instanceOfStatsMeetingTypes(value: object): value is StatsMeetingTypes;
29
+ export declare function StatsMeetingTypesFromJSON(json: any): StatsMeetingTypes;
30
+ export declare function StatsMeetingTypesFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatsMeetingTypes;
31
+ export declare function StatsMeetingTypesToJSON(json: any): StatsMeetingTypes;
32
+ export declare function StatsMeetingTypesToJSONTyped(value?: StatsMeetingTypes | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,41 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the StatsMeetingTypes interface.
16
+ */
17
+ export function instanceOfStatsMeetingTypes(value) {
18
+ return true;
19
+ }
20
+ export function StatsMeetingTypesFromJSON(json) {
21
+ return StatsMeetingTypesFromJSONTyped(json, false);
22
+ }
23
+ export function StatsMeetingTypesFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'total': json['total'] == null ? undefined : json['total'],
29
+ };
30
+ }
31
+ export function StatsMeetingTypesToJSON(json) {
32
+ return StatsMeetingTypesToJSONTyped(json, false);
33
+ }
34
+ export function StatsMeetingTypesToJSONTyped(value, ignoreDiscriminator = false) {
35
+ if (value == null) {
36
+ return value;
37
+ }
38
+ return {
39
+ 'total': value['total'],
40
+ };
41
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Meeting-count breakdowns in Stats.
14
+ * @export
15
+ * @interface StatsMeetings
16
+ */
17
+ export interface StatsMeetings {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof StatsMeetings
22
+ */
23
+ total?: number;
24
+ /**
25
+ *
26
+ * @type {number}
27
+ * @memberof StatsMeetings
28
+ */
29
+ active?: number;
30
+ /**
31
+ *
32
+ * @type {number}
33
+ * @memberof StatsMeetings
34
+ */
35
+ inactive?: number;
36
+ /**
37
+ *
38
+ * @type {{ [key: string]: number; }}
39
+ * @memberof StatsMeetings
40
+ */
41
+ byProgram?: {
42
+ [key: string]: number;
43
+ };
44
+ /**
45
+ *
46
+ * @type {{ [key: string]: number; }}
47
+ * @memberof StatsMeetings
48
+ */
49
+ byAttendanceOption?: {
50
+ [key: string]: number;
51
+ };
52
+ /**
53
+ * Keys are "0"–"6" (Sun–Sat)
54
+ * @type {{ [key: string]: number; }}
55
+ * @memberof StatsMeetings
56
+ */
57
+ byDay?: {
58
+ [key: string]: number;
59
+ };
60
+ }
61
+ /**
62
+ * Check if a given object implements the StatsMeetings interface.
63
+ */
64
+ export declare function instanceOfStatsMeetings(value: object): value is StatsMeetings;
65
+ export declare function StatsMeetingsFromJSON(json: any): StatsMeetings;
66
+ export declare function StatsMeetingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatsMeetings;
67
+ export declare function StatsMeetingsToJSON(json: any): StatsMeetings;
68
+ export declare function StatsMeetingsToJSONTyped(value?: StatsMeetings | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,51 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the StatsMeetings interface.
16
+ */
17
+ export function instanceOfStatsMeetings(value) {
18
+ return true;
19
+ }
20
+ export function StatsMeetingsFromJSON(json) {
21
+ return StatsMeetingsFromJSONTyped(json, false);
22
+ }
23
+ export function StatsMeetingsFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'total': json['total'] == null ? undefined : json['total'],
29
+ 'active': json['active'] == null ? undefined : json['active'],
30
+ 'inactive': json['inactive'] == null ? undefined : json['inactive'],
31
+ 'byProgram': json['by_program'] == null ? undefined : json['by_program'],
32
+ 'byAttendanceOption': json['by_attendance_option'] == null ? undefined : json['by_attendance_option'],
33
+ 'byDay': json['by_day'] == null ? undefined : json['by_day'],
34
+ };
35
+ }
36
+ export function StatsMeetingsToJSON(json) {
37
+ return StatsMeetingsToJSONTyped(json, false);
38
+ }
39
+ export function StatsMeetingsToJSONTyped(value, ignoreDiscriminator = false) {
40
+ if (value == null) {
41
+ return value;
42
+ }
43
+ return {
44
+ 'total': value['total'],
45
+ 'active': value['active'],
46
+ 'inactive': value['inactive'],
47
+ 'by_program': value['byProgram'],
48
+ 'by_attendance_option': value['byAttendanceOption'],
49
+ 'by_day': value['byDay'],
50
+ };
51
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Per-program counts. When `?program=` filters the response, the breakdown is scoped to that program; otherwise it lists every registered program.
14
+ * @export
15
+ * @interface StatsProgramsBreakdownInner
16
+ */
17
+ export interface StatsProgramsBreakdownInner {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof StatsProgramsBreakdownInner
22
+ */
23
+ code?: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof StatsProgramsBreakdownInner
28
+ */
29
+ name?: string;
30
+ /**
31
+ *
32
+ * @type {number}
33
+ * @memberof StatsProgramsBreakdownInner
34
+ */
35
+ meetingsTotal?: number;
36
+ /**
37
+ *
38
+ * @type {number}
39
+ * @memberof StatsProgramsBreakdownInner
40
+ */
41
+ meetingsActive?: number;
42
+ /**
43
+ *
44
+ * @type {number}
45
+ * @memberof StatsProgramsBreakdownInner
46
+ */
47
+ sourcesTotal?: number;
48
+ /**
49
+ *
50
+ * @type {number}
51
+ * @memberof StatsProgramsBreakdownInner
52
+ */
53
+ sourcesActive?: number;
54
+ }
55
+ /**
56
+ * Check if a given object implements the StatsProgramsBreakdownInner interface.
57
+ */
58
+ export declare function instanceOfStatsProgramsBreakdownInner(value: object): value is StatsProgramsBreakdownInner;
59
+ export declare function StatsProgramsBreakdownInnerFromJSON(json: any): StatsProgramsBreakdownInner;
60
+ export declare function StatsProgramsBreakdownInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatsProgramsBreakdownInner;
61
+ export declare function StatsProgramsBreakdownInnerToJSON(json: any): StatsProgramsBreakdownInner;
62
+ export declare function StatsProgramsBreakdownInnerToJSONTyped(value?: StatsProgramsBreakdownInner | null, ignoreDiscriminator?: boolean): any;