2
2
mirror of https://github.com/Thream/website.git synced 2024-07-06 18:40:12 +02:00
website/models/UserSettings.ts

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>