bbuddy-ui/src/types/experts.ts

115 lines
2.3 KiB
TypeScript

import {Tag, ThemeGroups} from './tags';
export type GeneralFilter = Filter & AdditionalFilter;
export type Filter = {
themesTagIds?: number[];
priceFrom?: number | null;
priceTo?: number | null;
durationFrom?: number | null;
durationTo?: number | null;
userLanguages?: string[];
pageSize?: number;
page?: number;
tagLanguage?: string;
};
export type AdditionalFilter = {
text?: string;
coachSort?: string;
};
export type File = {
id: number;
fileType: string;
url: string;
};
export interface ExpertDocument {
fileName: string;
original?: File;
preview?: File;
fullSize?: File;
}
export type Details = {
id: number;
userId?:number;
title?: string;
description?: string;
document?: ExpertDocument;
};
export type Certificate = {
id: number;
userId?: number;
associationLevelId?: number;
document?: ExpertDocument;
};
export type Practice = {
id: number;
userId?: number;
description?: string;
themesGroupIds?: number[];
};
export type ThemeGroup = {
id: number;
name: string;
isActive?: boolean;
canDeleted?: boolean;
};
export type Association = {
id: number;
name: string;
};
export type AssociationLevel = {
id: number;
associationId: number;
name: string;
};
export interface ExpertItem {
id: number;
name: string;
surname?: string;
faceImageUrl?: string;
sessionDuration: number;
sessionCost: number;
coachRating?: number;
tags: Tag[];
speciality?: string;
specialityDesc?: string;
description?: string;
coachLanguages?: string[]
}
export type ExpertsData = {
coaches: ExpertItem[];
themesGroups?: ThemeGroups[],
sessionCostMin?: number;
sessionCostMax?: number;
sessionDurationMin?: number;
sessionDurationMax?: number;
total: number;
};
export type ExpertDetails = {
publicCoachDetails: ExpertItem & {
practiceHours?: number;
supervisionPerYearId?: number;
educations?: Details[];
certificates?: Certificate[];
trainings?: Details[];
mbas?: Details[];
experiences?: Details[];
practiceCases?: Practice[];
themesGroups?: ThemeGroup[];
};
associations?: Association[];
associationLevels?: AssociationLevel[];
};