This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
website/models/UserSettings.ts

26 lines
847 B
TypeScript
Raw Permalink Normal View History

2022-08-31 21:44:33 +02:00
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>