Picsur/backend/src/database/entities/usr-preference.entity.ts

30 lines
712 B
TypeScript

import { IsEntityID } from 'picsur-shared/dist/validators/entity-id.validator';
import { Column, Entity, Index, PrimaryGeneratedColumn, Unique } from 'typeorm';
import z from 'zod';
export const EUsrPreferenceSchema = z.object({
id: IsEntityID().optional(),
key: z.string(),
value: z.string(),
user_id: IsEntityID(),
});
type EUsrPreference = z.infer<typeof EUsrPreferenceSchema>;
@Entity()
@Unique(['key', 'user_id'])
export class EUsrPreferenceBackend implements EUsrPreference {
@PrimaryGeneratedColumn('uuid')
id?: string;
@Index()
@Column({ nullable: false })
key: string;
@Column({ nullable: false })
value: string;
@Index()
@Column({ nullable: false })
user_id: string;
}