import { Schema as S } from "@effect/schema" import { Jsonifiable, Kind, Tag } from "@thilawyn/thilalib/effect/schema" import { Class } from "@thilawyn/thilalib/effect/schema/class" export class Todo extends Class("Todo")({ _kind: Kind("Todo"), _tag: Tag("Todo"), id: S.String, title: S.String, content: S.String, due: S.OptionFromSelf(S.DateFromSelf), createdAt: S.DateFromSelf, updatedAt: S.DateFromSelf, }) {} export const JsonifiableTodo = Todo.pipe(Jsonifiable(S.Struct({ ...Todo.fields, due: S.OptionFromNullOr(S.DateFromString), createdAt: S.DateFromString, updatedAt: S.DateFromString, })))