oralify-common
Version:
Public shared repository for Oralify
102 lines (101 loc) • 2.54 kB
TypeScript
import { ServiceType, SpecialityKey } from './serviceType';
import { AppointmentType, AvailabilitySettingsType } from './availabilityExpertTypes';
import { LanguageKey } from './languageTypes';
export declare enum Gender {
Male = "Male",
Female = "Female"
}
export declare enum RoleKey {
Admin = "Admin",
Expert = "Expert",
Curious = "Curious"
}
export type CompanyType = {
id?: string;
specialityKey?: SpecialityKey;
keywords?: string[];
description?: string;
location?: string;
web?: string;
color?: string;
icon?: string;
img?: string;
name: string;
position?: string;
};
export type UserConciseType = {
id?: string;
nameShort?: string;
job?: string;
avatar?: string;
is_connected?: boolean;
avgReview?: number;
nReviews?: number;
isVerified?: boolean;
};
export type UserBackendType = UserConciseType & {
username?: string;
name?: string;
phone?: string;
creation_date?: Date | string;
birthday?: Date | string;
sex?: Gender;
languages?: LanguageKey[];
score?: number;
headline?: string;
education?: string;
email?: string;
role?: RoleKey;
email_verified?: boolean;
phone_verified?: boolean;
provider?: 'phone' | 'password' | 'google.com';
last_sign_in?: string;
speciality?: SpecialityKey[];
};
/** 1 - user*/
/** 2 - availability []*/
/** 3 - services[] */
/** 4 - for each => backend generates timeSlots[] */
/** User type to frontend to generate the whole users*/
export type UserType = UserBackendType & {
services?: ServiceType[];
reviews?: number | ReviewType[];
highlights?: CompanyType;
notifications?: AppointmentType[];
availabilityexpert?: AvailabilitySettingsType[];
history?: AppointmentType[];
};
export type ShownUserType = UserConciseType & {
services?: ServiceType[];
availabilityexpert?: AvailabilitySettingsType[];
};
export type ReviewType = {
id?: string;
curiousId: string;
review: number;
serviceId: string;
comment?: string;
expertId: string;
date: Date;
};
export type ShownReviewType = ReviewType & {
curiousUser: UserConciseType;
service: ServiceType;
};
/** Roles*/
export declare const roleMap: {
Curious: {
icon: string;
img: string;
name: string;
subtitle: string;
key: RoleKey;
};
Expert: {
icon: string;
img: string;
name: string;
subtitle: string;
key: RoleKey;
};
};