@nativesquare/soma 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +142 -0
- package/dist/client/_generated/_ignore.d.ts +1 -0
- package/dist/client/_generated/_ignore.d.ts.map +1 -0
- package/dist/client/_generated/_ignore.js +3 -0
- package/dist/client/_generated/_ignore.js.map +1 -0
- package/dist/client/index.d.ts +279 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +264 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +5 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/component/_generated/api.d.ts +62 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +31 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/component.d.ts +1063 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +46 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +121 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +78 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/convex.config.d.ts +3 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +3 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/private.d.ts +33 -0
- package/dist/component/private.d.ts.map +1 -0
- package/dist/component/private.js +45 -0
- package/dist/component/private.js.map +1 -0
- package/dist/component/public.d.ts +1107 -0
- package/dist/component/public.d.ts.map +1 -0
- package/dist/component/public.js +310 -0
- package/dist/component/public.js.map +1 -0
- package/dist/component/schema.d.ts +4419 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +106 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/component/validators/activity.d.ts +747 -0
- package/dist/component/validators/activity.d.ts.map +1 -0
- package/dist/component/validators/activity.js +146 -0
- package/dist/component/validators/activity.js.map +1 -0
- package/dist/component/validators/athlete.d.ts +18 -0
- package/dist/component/validators/athlete.d.ts.map +1 -0
- package/dist/component/validators/athlete.js +25 -0
- package/dist/component/validators/athlete.js.map +1 -0
- package/dist/component/validators/body.d.ts +634 -0
- package/dist/component/validators/body.d.ts.map +1 -0
- package/dist/component/validators/body.js +70 -0
- package/dist/component/validators/body.js.map +1 -0
- package/dist/component/validators/connection.d.ts +7 -0
- package/dist/component/validators/connection.d.ts.map +1 -0
- package/dist/component/validators/connection.js +16 -0
- package/dist/component/validators/connection.js.map +1 -0
- package/dist/component/validators/daily.d.ts +650 -0
- package/dist/component/validators/daily.d.ts.map +1 -0
- package/dist/component/validators/daily.js +119 -0
- package/dist/component/validators/daily.js.map +1 -0
- package/dist/component/validators/enums.d.ts +24 -0
- package/dist/component/validators/enums.d.ts.map +1 -0
- package/dist/component/validators/enums.js +69 -0
- package/dist/component/validators/enums.js.map +1 -0
- package/dist/component/validators/index.d.ts +13 -0
- package/dist/component/validators/index.d.ts.map +1 -0
- package/dist/component/validators/index.js +16 -0
- package/dist/component/validators/index.js.map +1 -0
- package/dist/component/validators/menstruation.d.ts +51 -0
- package/dist/component/validators/menstruation.d.ts.map +1 -0
- package/dist/component/validators/menstruation.js +32 -0
- package/dist/component/validators/menstruation.js.map +1 -0
- package/dist/component/validators/nutrition.d.ts +498 -0
- package/dist/component/validators/nutrition.d.ts.map +1 -0
- package/dist/component/validators/nutrition.js +31 -0
- package/dist/component/validators/nutrition.js.map +1 -0
- package/dist/component/validators/plannedWorkout.d.ts +277 -0
- package/dist/component/validators/plannedWorkout.d.ts.map +1 -0
- package/dist/component/validators/plannedWorkout.js +105 -0
- package/dist/component/validators/plannedWorkout.js.map +1 -0
- package/dist/component/validators/samples.d.ts +609 -0
- package/dist/component/validators/samples.d.ts.map +1 -0
- package/dist/component/validators/samples.js +336 -0
- package/dist/component/validators/samples.js.map +1 -0
- package/dist/component/validators/shared.d.ts +402 -0
- package/dist/component/validators/shared.d.ts.map +1 -0
- package/dist/component/validators/shared.js +146 -0
- package/dist/component/validators/shared.js.map +1 -0
- package/dist/component/validators/sleep.d.ts +438 -0
- package/dist/component/validators/sleep.d.ts.map +1 -0
- package/dist/component/validators/sleep.js +95 -0
- package/dist/component/validators/sleep.js.map +1 -0
- package/dist/healthkit/activity.d.ts +75 -0
- package/dist/healthkit/activity.d.ts.map +1 -0
- package/dist/healthkit/activity.js +93 -0
- package/dist/healthkit/activity.js.map +1 -0
- package/dist/healthkit/athlete.d.ts +26 -0
- package/dist/healthkit/athlete.d.ts.map +1 -0
- package/dist/healthkit/athlete.js +34 -0
- package/dist/healthkit/athlete.js.map +1 -0
- package/dist/healthkit/body.d.ts +102 -0
- package/dist/healthkit/body.d.ts.map +1 -0
- package/dist/healthkit/body.js +167 -0
- package/dist/healthkit/body.js.map +1 -0
- package/dist/healthkit/daily.d.ts +119 -0
- package/dist/healthkit/daily.d.ts.map +1 -0
- package/dist/healthkit/daily.js +160 -0
- package/dist/healthkit/daily.js.map +1 -0
- package/dist/healthkit/index.d.ts +21 -0
- package/dist/healthkit/index.d.ts.map +1 -0
- package/dist/healthkit/index.js +21 -0
- package/dist/healthkit/index.js.map +1 -0
- package/dist/healthkit/maps/activity-type.d.ts +6 -0
- package/dist/healthkit/maps/activity-type.d.ts.map +1 -0
- package/dist/healthkit/maps/activity-type.js +184 -0
- package/dist/healthkit/maps/activity-type.js.map +1 -0
- package/dist/healthkit/maps/menstruation-flow.d.ts +6 -0
- package/dist/healthkit/maps/menstruation-flow.d.ts.map +1 -0
- package/dist/healthkit/maps/menstruation-flow.js +21 -0
- package/dist/healthkit/maps/menstruation-flow.js.map +1 -0
- package/dist/healthkit/maps/sleep-level.d.ts +11 -0
- package/dist/healthkit/maps/sleep-level.d.ts.map +1 -0
- package/dist/healthkit/maps/sleep-level.js +32 -0
- package/dist/healthkit/maps/sleep-level.js.map +1 -0
- package/dist/healthkit/menstruation.d.ts +35 -0
- package/dist/healthkit/menstruation.d.ts.map +1 -0
- package/dist/healthkit/menstruation.js +37 -0
- package/dist/healthkit/menstruation.js.map +1 -0
- package/dist/healthkit/nutrition.d.ts +77 -0
- package/dist/healthkit/nutrition.d.ts.map +1 -0
- package/dist/healthkit/nutrition.js +135 -0
- package/dist/healthkit/nutrition.js.map +1 -0
- package/dist/healthkit/sleep.d.ts +60 -0
- package/dist/healthkit/sleep.d.ts.map +1 -0
- package/dist/healthkit/sleep.js +108 -0
- package/dist/healthkit/sleep.js.map +1 -0
- package/dist/healthkit/types.d.ts +94 -0
- package/dist/healthkit/types.d.ts.map +1 -0
- package/dist/healthkit/types.js +26 -0
- package/dist/healthkit/types.js.map +1 -0
- package/dist/healthkit/utils.d.ts +63 -0
- package/dist/healthkit/utils.d.ts.map +1 -0
- package/dist/healthkit/utils.js +93 -0
- package/dist/healthkit/utils.js.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +6 -0
- package/dist/react/index.js.map +1 -0
- package/package.json +112 -0
- package/src/client/_generated/_ignore.ts +1 -0
- package/src/client/index.ts +371 -0
- package/src/client/types.ts +18 -0
- package/src/component/_generated/api.ts +78 -0
- package/src/component/_generated/component.ts +1090 -0
- package/src/component/_generated/dataModel.ts +60 -0
- package/src/component/_generated/server.ts +156 -0
- package/src/component/convex.config.ts +3 -0
- package/src/component/private.ts +50 -0
- package/src/component/public.ts +358 -0
- package/src/component/schema.ts +115 -0
- package/src/component/validators/activity.ts +216 -0
- package/src/component/validators/athlete.ts +25 -0
- package/src/component/validators/body.ts +114 -0
- package/src/component/validators/connection.ts +16 -0
- package/src/component/validators/daily.ts +173 -0
- package/src/component/validators/enums.ts +119 -0
- package/src/component/validators/index.ts +16 -0
- package/src/component/validators/menstruation.ts +36 -0
- package/src/component/validators/nutrition.ts +37 -0
- package/src/component/validators/plannedWorkout.ts +110 -0
- package/src/component/validators/samples.ts +380 -0
- package/src/component/validators/shared.ts +165 -0
- package/src/component/validators/sleep.ts +133 -0
- package/src/healthkit/activity.ts +120 -0
- package/src/healthkit/athlete.ts +43 -0
- package/src/healthkit/body.ts +266 -0
- package/src/healthkit/daily.ts +245 -0
- package/src/healthkit/index.ts +59 -0
- package/src/healthkit/maps/activity-type.ts +185 -0
- package/src/healthkit/maps/menstruation-flow.ts +23 -0
- package/src/healthkit/maps/sleep-level.ts +37 -0
- package/src/healthkit/menstruation.ts +52 -0
- package/src/healthkit/nutrition.ts +162 -0
- package/src/healthkit/sleep.ts +136 -0
- package/src/healthkit/types.ts +219 -0
- package/src/healthkit/utils.ts +122 -0
- package/src/react/index.ts +7 -0
- package/src/test.ts +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,wBA0FG"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { defineSchema, defineTable } from "convex/server";
|
|
2
|
+
import { v } from "convex/values";
|
|
3
|
+
import { connectionValidator } from "./validators/connection.js";
|
|
4
|
+
import { athleteValidator } from "./validators/athlete.js";
|
|
5
|
+
import { activityValidator } from "./validators/activity.js";
|
|
6
|
+
import { bodyValidator } from "./validators/body.js";
|
|
7
|
+
import { dailyValidator } from "./validators/daily.js";
|
|
8
|
+
import { sleepValidator } from "./validators/sleep.js";
|
|
9
|
+
import { menstruationValidator } from "./validators/menstruation.js";
|
|
10
|
+
import { nutritionValidator } from "./validators/nutrition.js";
|
|
11
|
+
import { plannedWorkoutValidator } from "./validators/plannedWorkout.js";
|
|
12
|
+
// ─── Soma Schema ─────────────────────────────────────────────────────────────
|
|
13
|
+
// Provider-agnostic normalized health data store.
|
|
14
|
+
// Uses Terra's data model as the schema standard, but has no opinion about
|
|
15
|
+
// where data comes from. The host app handles authentication and data fetching.
|
|
16
|
+
//
|
|
17
|
+
// Deduplication strategy:
|
|
18
|
+
// - Activity & Sleep: uniquely identified by connectionId + metadata.summary_id
|
|
19
|
+
// - Body, Daily, Nutrition: uniquely identified by connectionId + start_time + end_time
|
|
20
|
+
// - On duplicate, update the existing document with new data.
|
|
21
|
+
//
|
|
22
|
+
// All fields are nullable (v.optional) unless explicitly marked otherwise.
|
|
23
|
+
export default defineSchema({
|
|
24
|
+
// ── Connections ────────────────────────────────────────────────────────────
|
|
25
|
+
// Represents a link between a host app user and a wearable provider.
|
|
26
|
+
// One document per user-provider pair.
|
|
27
|
+
connections: defineTable(connectionValidator)
|
|
28
|
+
.index("by_userId", ["userId"])
|
|
29
|
+
.index("by_provider", ["provider"])
|
|
30
|
+
.index("by_userId_provider", ["userId", "provider"]),
|
|
31
|
+
// ── Athletes ───────────────────────────────────────────────────────────────
|
|
32
|
+
// User profile/identifying information from the provider.
|
|
33
|
+
athletes: defineTable(athleteValidator)
|
|
34
|
+
.index("by_connectionId", ["connectionId"])
|
|
35
|
+
.index("by_userId", ["userId"]),
|
|
36
|
+
// ── Activities ─────────────────────────────────────────────────────────────
|
|
37
|
+
// Workouts and activities.
|
|
38
|
+
// Dedup key: connectionId + metadata.summary_id
|
|
39
|
+
activities: defineTable(activityValidator)
|
|
40
|
+
.index("by_connectionId", ["connectionId"])
|
|
41
|
+
.index("by_userId", ["userId"])
|
|
42
|
+
.index("by_userId_startTime", ["userId", "metadata.start_time"])
|
|
43
|
+
.index("by_connectionId_summaryId", [
|
|
44
|
+
"connectionId",
|
|
45
|
+
"metadata.summary_id",
|
|
46
|
+
]),
|
|
47
|
+
// ── Body ───────────────────────────────────────────────────────────────────
|
|
48
|
+
// Body metrics: heart, blood pressure, glucose, temperature, etc.
|
|
49
|
+
// Dedup key: connectionId + metadata.start_time + metadata.end_time
|
|
50
|
+
body: defineTable(bodyValidator)
|
|
51
|
+
.index("by_connectionId", ["connectionId"])
|
|
52
|
+
.index("by_userId", ["userId"])
|
|
53
|
+
.index("by_userId_startTime", ["userId", "metadata.start_time"])
|
|
54
|
+
.index("by_connectionId_timeRange", [
|
|
55
|
+
"connectionId",
|
|
56
|
+
"metadata.start_time",
|
|
57
|
+
"metadata.end_time",
|
|
58
|
+
]),
|
|
59
|
+
// ── Daily ──────────────────────────────────────────────────────────────────
|
|
60
|
+
// Daily activity summaries.
|
|
61
|
+
// Dedup key: connectionId + metadata.start_time + metadata.end_time
|
|
62
|
+
daily: defineTable(dailyValidator)
|
|
63
|
+
.index("by_connectionId", ["connectionId"])
|
|
64
|
+
.index("by_userId", ["userId"])
|
|
65
|
+
.index("by_userId_startTime", ["userId", "metadata.start_time"])
|
|
66
|
+
.index("by_connectionId_timeRange", [
|
|
67
|
+
"connectionId",
|
|
68
|
+
"metadata.start_time",
|
|
69
|
+
"metadata.end_time",
|
|
70
|
+
]),
|
|
71
|
+
// ── Sleep ──────────────────────────────────────────────────────────────────
|
|
72
|
+
// Sleep session data.
|
|
73
|
+
// Dedup key: connectionId + metadata.summary_id
|
|
74
|
+
sleep: defineTable(sleepValidator)
|
|
75
|
+
.index("by_connectionId", ["connectionId"])
|
|
76
|
+
.index("by_userId", ["userId"])
|
|
77
|
+
.index("by_userId_startTime", ["userId", "metadata.start_time"])
|
|
78
|
+
.index("by_connectionId_summaryId", [
|
|
79
|
+
"connectionId",
|
|
80
|
+
"metadata.summary_id",
|
|
81
|
+
]),
|
|
82
|
+
// ── Menstruation ───────────────────────────────────────────────────────────
|
|
83
|
+
// Menstruation and fertility data.
|
|
84
|
+
menstruation: defineTable(menstruationValidator)
|
|
85
|
+
.index("by_connectionId", ["connectionId"])
|
|
86
|
+
.index("by_userId", ["userId"]),
|
|
87
|
+
// ── Nutrition ──────────────────────────────────────────────────────────────
|
|
88
|
+
// Food, drink, macro/micronutrient data.
|
|
89
|
+
// Dedup key: connectionId + metadata.start_time + metadata.end_time
|
|
90
|
+
nutrition: defineTable(nutritionValidator)
|
|
91
|
+
.index("by_connectionId", ["connectionId"])
|
|
92
|
+
.index("by_userId", ["userId"])
|
|
93
|
+
.index("by_userId_startTime", ["userId", "metadata.start_time"])
|
|
94
|
+
.index("by_connectionId_timeRange", [
|
|
95
|
+
"connectionId",
|
|
96
|
+
"metadata.start_time",
|
|
97
|
+
"metadata.end_time",
|
|
98
|
+
]),
|
|
99
|
+
// ── Planned Workouts ───────────────────────────────────────────────────────
|
|
100
|
+
// Scheduled/planned workouts from the provider.
|
|
101
|
+
plannedWorkouts: defineTable(plannedWorkoutValidator)
|
|
102
|
+
.index("by_connectionId", ["connectionId"])
|
|
103
|
+
.index("by_userId", ["userId"])
|
|
104
|
+
.index("by_userId_plannedDate", ["userId", "metadata.planned_date"]),
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
|