diff --git a/packages/common/src/data/Todo.ts b/packages/common/src/data/Todo.ts index d3bb435..d1073a1 100644 --- a/packages/common/src/data/Todo.ts +++ b/packages/common/src/data/Todo.ts @@ -1,5 +1,5 @@ import { Schema as S } from "@effect/schema" -import { Tag } from "@thilawyn/thilalib/effect/schema" +import { Jsonifiable, Tag } from "@thilawyn/thilalib/effect/schema" import { Class } from "@thilawyn/thilalib/effect/schema/class" @@ -10,7 +10,16 @@ export class Todo extends Class("Todo")({ title: S.String, content: S.String, - due: S.optional(S.DateFromSelf, { as: "Option" }), + due: S.OptionFromSelf(S.DateFromSelf), createdAt: S.DateFromSelf, updatedAt: S.DateFromSelf, }) {} + + +export const JsonifiableTodo = Jsonifiable(Todo, S.Struct({ + ...Todo.fields, + + due: S.OptionFromNullOr(S.DateFromString), + createdAt: S.DateFromString, + updatedAt: S.DateFromString, +}))