26 lines
848 B
TypeScript
26 lines
848 B
TypeScript
import type { Static } from "@sinclair/typebox"
|
|
import { Type } from "@sinclair/typebox"
|
|
|
|
import { date, id } from "./utils"
|
|
|
|
export const languages = [Type.Literal("fr"), Type.Literal("en")]
|
|
export const themes = [Type.Literal("light"), Type.Literal("dark")]
|
|
|
|
export const userSettingsSchema = {
|
|
id,
|
|
language: Type.Union(languages, { default: "en" }),
|
|
theme: Type.Union(themes, { default: "dark" }),
|
|
isPublicEmail: Type.Boolean({ default: false }),
|
|
isPublicGuilds: Type.Boolean({ default: false }),
|
|
createdAt: date.createdAt,
|
|
updatedAt: date.updatedAt,
|
|
userId: id,
|
|
}
|
|
|
|
export const userSettingsSchemaType = Type.Object(userSettingsSchema)
|
|
|
|
export type Theme = Static<typeof userSettingsSchema.theme>
|
|
export type Language = Static<typeof userSettingsSchema.language>
|
|
|
|
export type UserSettings = Static<typeof userSettingsSchemaType>
|