import { Result, ValueObject } from "@common/domain"; import { z } from "zod"; export class Token extends ValueObject { static create(token: string): Result { const result = Token.validate(token); if (!result.success) { return Result.fail(new Error(result.error.errors[0].message)); } return Result.ok(new Token(result.data)); } private static validate(token: string) { const schema = z.string().min(1, { message: "Invalid token string" }); return schema.safeParse(token); } }