import { File, Ring } from './rings'; export interface UserAnswer { id?: string; number: number; answer: string; } export interface RingAnswers { ring: Ring; id: string; testAnswers: UserAnswer[]; challengeAnswer: UserAnswer; phase: number; } export interface ScoreItem { id?: string; points: number; user: string | User; ring: string | Ring; concept: string; } export interface RingScore { ring: Ring | string; score: number; } export interface Team { id: string; name: string; members: number; users: User[]; totalScore: number; extraPoints?: boolean; ringScores: RingScore[]; score: ScoreItem[]; clinicCase?: File; } export interface Notification { date: string; notificationsInfo: NotificationInfo[]; newNotificationsInfo: NotificationInfo[]; } export interface NotificationInfo { text: string; newUser?: User; requestedTeam?: Team; accepted?: boolean; } export interface SetNotificationParams { date: string; notificationsInfo: SetNotificationInfoParams[]; newNotificationsInfo: SetNotificationInfoParams[]; } export interface SetNotificationInfoParams { text: string; newUser?: User | string; requestedTeam?: Team | string; accepted?: boolean; } export interface NewUserNotification { newUser: User; requestedTeam: Team; accepted: boolean; } export interface User { isAdmin: boolean; _id: string; email: string; username: string; birthDate: string; licenseNumber: string; answers?: RingAnswers[]; team: Team; department: Department; avatar: AvatarEnum; notifications: Notification[]; } export interface LoginResponse { jwt: string; user: User; } export type NewTeam = Omit< Team, 'id' | 'members' | 'users' | 'score' | 'totalScore' | 'ringScores' >; export interface Department { id: string; name: string; } export enum AvatarEnum { Avatar1 = 'avatar1', Avatar2 = 'avatar2', Avatar3 = 'avatar3', Avatar4 = 'avatar4', Avatar5 = 'avatar5', Avatar6 = 'avatar6', Avatar7 = 'avatar7', Avatar8 = 'avatar8', Avatar9 = 'avatar9', Avatar10 = 'avatar10', Avatar11 = 'avatar11', Avatar12 = 'avatar12', } export const allAvatars = [ AvatarEnum.Avatar1, AvatarEnum.Avatar2, AvatarEnum.Avatar3, AvatarEnum.Avatar4, AvatarEnum.Avatar5, AvatarEnum.Avatar6, AvatarEnum.Avatar7, AvatarEnum.Avatar8, AvatarEnum.Avatar9, AvatarEnum.Avatar10, AvatarEnum.Avatar11, AvatarEnum.Avatar12, ];