JsonifiableTodo

This commit is contained in:
Julien Valverdé
2024-06-27 10:43:36 +02:00
parent 3dbb465500
commit 57f9d8075f

View File

@@ -1,5 +1,5 @@
import { Schema as S } from "@effect/schema" 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" import { Class } from "@thilawyn/thilalib/effect/schema/class"
@@ -10,7 +10,16 @@ export class Todo extends Class<Todo>("Todo")({
title: S.String, title: S.String,
content: S.String, content: S.String,
due: S.optional(S.DateFromSelf, { as: "Option" }), due: S.OptionFromSelf(S.DateFromSelf),
createdAt: S.DateFromSelf, createdAt: S.DateFromSelf,
updatedAt: 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,
}))