Fix: add application_role to account-related fields (#48)

* Fix: fix accounts view, menu

* add migration

* add application_role to account-related fields
This commit is contained in:
Helena
2025-08-14 11:40:53 +03:00
committed by GitHub
parent bbb5e83ed9
commit b4b75438d2
9 changed files with 146 additions and 33 deletions

View File

@@ -32,6 +32,7 @@ import { cn } from '@kit/ui/utils';
import { toTitleCase } from '~/lib/utils';
import { usePersonalAccountData } from '../hooks/use-personal-account-data';
import { ApplicationRole, ApplicationRoleEnum } from '../types/accounts';
const PERSONAL_ACCOUNT_SLUG = 'personal';
@@ -51,13 +52,13 @@ export function PersonalAccountDropdown({
id: string | null;
name: string | null;
picture_url: string | null;
application_role: string;
application_role: ApplicationRole | null;
};
accounts: {
label: string | null;
value: string | null;
image?: string | null;
application_role: string;
application_role: ApplicationRole | null;
}[];
signOutRequested: () => unknown;
@@ -97,13 +98,14 @@ export function PersonalAccountDropdown({
const isSuperAdmin = useMemo(() => {
const hasAdminRole =
personalAccountData?.application_role === 'super_admin';
personalAccountData?.application_role === ApplicationRoleEnum.SuperAdmin;
return hasAdminRole && hasTotpFactor;
}, [user, personalAccountData, hasTotpFactor]);
const isDoctor = useMemo(() => {
const hasDoctorRole = personalAccountData?.application_role === 'doctor';
const hasDoctorRole =
personalAccountData?.application_role === ApplicationRoleEnum.Doctor;
return hasDoctorRole && hasTotpFactor;
}, [user, personalAccountData, hasTotpFactor]);

View File

@@ -1,7 +1,17 @@
import { Database } from '@kit/supabase/database';
export type UserAnalysisElement = Database['medreport']['Tables']['analysis_response_elements']['Row'];
export type UserAnalysisResponse = Database['medreport']['Tables']['analysis_responses']['Row'] & {
elements: UserAnalysisElement[];
};
export type UserAnalysisElement =
Database['medreport']['Tables']['analysis_response_elements']['Row'];
export type UserAnalysisResponse =
Database['medreport']['Tables']['analysis_responses']['Row'] & {
elements: UserAnalysisElement[];
};
export type UserAnalysis = UserAnalysisResponse[];
export type ApplicationRole =
Database['medreport']['Tables']['accounts']['Row']['application_role'];
export enum ApplicationRoleEnum {
User = 'user',
Doctor = 'doctor',
SuperAdmin = 'super_admin',
}

View File

@@ -114,7 +114,8 @@ export class TeamAccountsApi {
role,
name,
slug,
picture_url
picture_url,
application_role
)
`,
)