Skip to content

Commit 4d1c4f7

Browse files
committed
serialize moment objs before writing to pouch
1 parent 391cd29 commit 4d1c4f7

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

packages/db/src/core/types/user.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,19 @@ export interface ScheduledCard {
4848
*
4949
* (Should probably be UTC adjusted so that performance is
5050
* not wonky across time zones)
51+
*
52+
* Note: Stored as ISO string for PouchDB serialization compatibility,
53+
* but can be consumed as Moment objects via moment.utc(reviewTime)
5154
*/
52-
reviewTime: Moment;
55+
reviewTime: string | Moment;
5356

5457
/**
5558
* The time at which this scheduled event was created.
59+
*
60+
* Note: Stored as ISO string for PouchDB serialization compatibility,
61+
* but can be consumed as Moment objects via moment.utc(scheduledAt)
5662
*/
57-
scheduledAt: Moment;
63+
scheduledAt: string | Moment;
5864

5965
/**
6066
* Classifying whether this card is scheduled on behalf of a

packages/db/src/impl/common/userDBHelpers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ export function scheduleCardReviewLocal(
125125
void userDB.put<ScheduledCard>({
126126
_id: DocTypePrefixes[DocType.SCHEDULED_CARD] + review.time.format(REVIEW_TIME_FORMAT),
127127
cardId: review.card_id,
128-
reviewTime: review.time,
128+
reviewTime: review.time.toISOString(),
129129
courseId: review.course_id,
130-
scheduledAt: now,
130+
scheduledAt: now.toISOString(),
131131
scheduledFor: review.scheduledFor,
132132
schedulingAgentId: review.schedulingAgentId,
133133
});

packages/db/src/impl/couch/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,9 @@ export function scheduleCardReview(review: {
198198
void getCouchUserDB(review.user).put<ScheduledCard>({
199199
_id: DocTypePrefixes[DocType.SCHEDULED_CARD] + review.time.format(REVIEW_TIME_FORMAT),
200200
cardId: review.card_id,
201-
reviewTime: review.time,
201+
reviewTime: review.time.toISOString(),
202202
courseId: review.course_id,
203-
scheduledAt: now,
203+
scheduledAt: now.toISOString(),
204204
scheduledFor: review.scheduledFor,
205205
schedulingAgentId: review.schedulingAgentId,
206206
});

0 commit comments

Comments
 (0)