feat(preferences): small update on prefrences table

This commit is contained in:
Matthieu Haineault 2025-11-26 16:32:56 -05:00
parent d7b1bab68f
commit 7c9f3cda65
3 changed files with 27 additions and 27 deletions

View File

@ -347,12 +347,12 @@ model Preferences {
user Users @relation("UserPreferences", fields: [user_id], references: [id])
user_id String @unique @db.Uuid
notifications Boolean @default(false)
dark_mode Boolean @default(false)
lang_switch Boolean @default(false)
lefty_mode Boolean @default(false)
employee_list_display Boolean @default(false)
approval_display Boolean @default(false)
notifications Int @default(0)
is_dark_mode Boolean @default(false)
display_language String @default("fr-FR") //'fr-FR' | 'en-CA';
is_lefty_mode Boolean @default(false)
is_employee_list_grid Boolean @default(true)
is_timesheet_approval_grid Boolean @default(true)
@@map("preferences")
}

View File

@ -1,10 +1,10 @@
import { IsInt } from "class-validator";
export class PreferencesDto {
notifications: boolean;
dark_mode: boolean;
lang_switch: boolean;
lefty_mode: boolean;
employee_list_display: boolean;
approval_display: boolean;
notifications: number;
is_dark_mode: boolean | null;
display_language: string | 'fr-FR' | 'en-CA';
is_lefty_mode: boolean;
is_employee_list_grid: boolean;
is_timesheet_approval_grid: boolean;
}

View File

@ -20,23 +20,23 @@ export class PreferencesService {
const user_preferences = await this.prisma.preferences.findUnique({
where: { user_id: user_id.data },
select: {
dark_mode: true,
lang_switch: true,
lefty_mode: true,
notifications: true,
employee_list_display: true,
approval_display: true,
is_dark_mode: true,
display_language: true,
is_lefty_mode: true,
is_employee_list_grid: true,
is_timesheet_approval_grid: true,
},
});
if (!user_preferences) return { success: false, error: 'PREFERENCES_NOT_FOUND' };
const preferences: PreferencesDto = {
dark_mode: user_preferences.dark_mode,
lang_switch: user_preferences.lang_switch,
lefty_mode: user_preferences.lefty_mode,
is_dark_mode: user_preferences.is_dark_mode,
display_language: user_preferences.display_language,
is_lefty_mode: user_preferences.is_lefty_mode,
notifications: user_preferences.notifications,
employee_list_display: user_preferences.employee_list_display,
approval_display: user_preferences.approval_display,
is_employee_list_grid: user_preferences.is_employee_list_grid,
is_timesheet_approval_grid: user_preferences.is_timesheet_approval_grid,
};
return { success: true, data: preferences };
}
@ -50,11 +50,11 @@ export class PreferencesService {
where: { user_id: user_id.data },
data: {
notifications: dto.notifications,
dark_mode: dto.dark_mode,
lang_switch: dto.lang_switch,
lefty_mode: dto.lefty_mode,
employee_list_display: dto.employee_list_display,
approval_display: dto.approval_display,
is_dark_mode: dto.is_dark_mode ?? undefined,
display_language: dto.display_language,
is_lefty_mode: dto.is_lefty_mode,
is_employee_list_grid: dto.is_employee_list_grid,
is_timesheet_approval_grid: dto.is_timesheet_approval_grid,
},
include: { user: true },
})