{"version":3,"file":"tutor-logic.mjs","sources":["../../../projects/tutor-logic/src/lib/tutor-logic.module.ts","../../../projects/tutor-logic/src/lib/services/TestService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupEnterService.ts","../../../projects/tutor-logic/src/lib/services/TestSolutionQueryService.ts","../../../projects/tutor-logic/src/lib/services/TestSolutionResultService.ts","../../../projects/tutor-logic/src/lib/services/StudentTestSolutionStartService.ts","../../../projects/tutor-logic/src/lib/services/open-api/OpenApiQuestionLikeService.ts","../../../projects/tutor-logic/src/lib/services/open-api/OpenApiTestSolutionService.ts","../../../projects/tutor-logic/src/lib/services/StudentTestSolutionService.ts","../../../projects/tutor-logic/src/lib/services/StudentTestSolutionQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupTestRelationQueryService.ts","../../../projects/tutor-logic/src/lib/services/CuratorMessageTemplateService.ts","../../../projects/tutor-logic/src/lib/services/CourseDeadlineWarningService.ts","../../../projects/tutor-logic/src/lib/services/CourseThemeItemTestRestrictionService.ts","../../../projects/tutor-logic/src/lib/services/SubjectQueryService.ts","../../../projects/tutor-logic/src/lib/services/SubjectsService.ts","../../../projects/tutor-logic/src/lib/services/CourseThemeItemTestRestrictionStudentService.ts","../../../projects/tutor-logic/src/lib/services/StudentCourseViewService.ts","../../../projects/tutor-logic/src/lib/services/TestSolutionDetailedQueryService.ts","../../../projects/tutor-logic/src/lib/services/CourseLandingPageQueryService.ts","../../../projects/tutor-logic/src/lib/services/CourseOrderService.ts","../../../projects/tutor-logic/src/lib/services/CourseShopWindowDetailedService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupPaymentPlanQueryService.ts","../../../projects/tutor-logic/src/lib/services/TutorAppConfigurationService.ts","../../../projects/tutor-logic/src/lib/services/QuestionLikeService.ts","../../../projects/tutor-logic/src/lib/services/StudentCourseProgressQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentCourseProgressService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupMaterialService.ts","../../../projects/tutor-logic/src/lib/services/CoursePaymentService.ts","../../../projects/tutor-logic/src/lib/services/CoursePaymentQueryService.ts","../../../projects/tutor-logic/src/lib/services/TestQuestionStatisticQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupCourseAccessService.ts","../../../projects/tutor-logic/src/lib/services/StudentRegistrationService.ts","../../../projects/tutor-logic/src/lib/services/PmtSystemService.ts","../../../projects/tutor-logic/src/lib/services/DefaultCourseLandingPageQueryService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupInfoPageService.ts","../../../projects/tutor-logic/src/lib/services/StudentAggregatedStatisticSnapshotService.ts","../../../projects/tutor-logic/src/lib/services/GroupStatisticSnapshotStudentService.ts","../../../projects/tutor-logic/src/lib/services/SubjectMenuService.ts","../../../projects/tutor-logic/src/lib/services/TutorUserTelegramService.ts","../../../projects/tutor-logic/src/lib/services/StudentGroupBlockService.ts","../../../projects/tutor-logic/src/lib/models/group-models.ts","../../../projects/tutor-logic/src/lib/models/test-solution-models.ts","../../../projects/tutor-logic/src/lib/models/solution-validation-models.ts","../../../projects/tutor-logic/src/lib/models/test-restriction-models.ts","../../../projects/tutor-logic/src/lib/models/question-models.ts","../../../projects/tutor-logic/src/lib/models/course-payment-models.ts","../../../projects/tutor-logic/src/lib/models/student-statistic-models.ts","../../../projects/tutor-logic/src/lib/consts/TutorRoles.ts","../../../projects/tutor-logic/src/lib/extensions/ImageSrcExtensions.ts","../../../projects/tutor-logic/src/public-api.ts","../../../projects/tutor-logic/src/tutor-logic.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\n\n@NgModule({\n  declarations: [    \n  ],\n  imports: [\n  ],\n  exports: [\n  ]\n})\nexport class TutorLogicModule { }\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { BaseApiResponse, GetListResult, StudentGroupSimpleModel } from \"../models\";\nimport { SearchTestsRequest, CreateTestRequest, EditTestRequest } from \"../models/test-models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class TestService {\n    baseControllerUrl:string;\n    \n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string){\n        const adding = 'api/tutor/test';\n        this.baseControllerUrl = baseUrl + adding;\n    }\n\n    public searchGroupRelationsInTest(model: SearchTestsRequest): Observable<GetListResult<StudentGroupSimpleModel>>{\n        return this._httpClient.post<GetListResult<StudentGroupSimpleModel>>(`${this.baseControllerUrl}/groups/search/in`, model);\n    }\n\n    public create(model: CreateTestRequest): Observable<BaseApiResponse> {\n        return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/create`, model);\n    }\n\n    public edit(model: EditTestRequest): Observable<BaseApiResponse> {\n        return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/edit`, model);\n    }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { GetListResult, StudentGroupSimpleModel } from \"../models\";\nimport { SearchStudentGroupsRequest, StudentGroupDetailedModel, SearchStudentsInGroup, StudentInGroupSimpleModel, SearchStudentGroupsByStudentRequest, StudentGroupWithCourseProgressModel } from \"../models/group-models\";\n\n/**\n* Методы контроллера StudentGroupQueryController\n*/\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentGroupQueryService {\n\n    getBaseUrl() {\n        return this._baseUrl + 'api/tutor/student-group';\n    }\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') private _baseUrl: string) {\n    }\n\n    /**\n     * Поиск групп учеников\n     */\n    public search(model: SearchStudentGroupsRequest): Observable<GetListResult<StudentGroupSimpleModel>> {\n        return this._httpClient.post<GetListResult<StudentGroupSimpleModel>>(`${this.getBaseUrl()}/query/search`, model);\n    }\n\n    public searchWithProgresses(model: SearchStudentGroupsByStudentRequest): Observable<GetListResult<StudentGroupWithCourseProgressModel>> {\n        return this._httpClient.post<GetListResult<StudentGroupWithCourseProgressModel>>(`${this.getBaseUrl()}/query/search/with-progresses`, model);\n    }\n\n    /**\n     * Получить группу по идентификатору\n     * @param id идентификатор группы учеников\n     * @returns группу учеников\n     */\n    public getById(id: string): Observable<StudentGroupDetailedModel> {\n        return this._httpClient.get<StudentGroupDetailedModel>(`${this.getBaseUrl()}/query/by-id/${id}`);\n    }\n\n    public getByStudentId(id: string): Observable<StudentGroupSimpleModel[]> {\n        return this._httpClient.get<StudentGroupSimpleModel[]>(`${this.getBaseUrl()}/by-student/${id}`);\n    }\n\n    /**\n     * Получить список студентов в группе по фильтру\n     * @param model модель для поиска\n     * @returns список студентов\n     */\n    public getStudentsList(model: SearchStudentsInGroup): Observable<GetListResult<StudentInGroupSimpleModel>> {\n        return this._httpClient.post<GetListResult<StudentInGroupSimpleModel>>(`${this.getBaseUrl()}/students/search`, model);\n    }\n\n    /**\n     * Получить студента в группе\n     * @param groupId идентификатор группы\n     * @param studentId идентификатор студента\n     * @returns \n     */\n    public getStudentById(groupId: string, studentId: string): Observable<StudentInGroupSimpleModel> {\n        return this._httpClient.get<StudentInGroupSimpleModel>(`${this.getBaseUrl()}/students/get-by-id/${groupId}/${studentId}`);\n    }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { GetListResult, SearchStudentsRequest, StudentSimpleModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentQueryService {\n    baseControllerUrl: string;\n\n    constructor(private _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/student/query/';\n    }\n\n    public getById(id: string): Observable<StudentSimpleModel> {\n        return this._httpClient.get<StudentSimpleModel>(this.baseControllerUrl + `ById/${id}`);\n    }\n\n    public getByTelegramId(telegramId: number): Observable<StudentSimpleModel> {\n        return this._httpClient.get<StudentSimpleModel>(this.baseControllerUrl + `ByTelegramId/${telegramId}`);\n    }\n\n    public search(searchModel: SearchStudentsRequest): Observable<GetListResult<StudentSimpleModel>> {\n        return this._httpClient.post<GetListResult<StudentSimpleModel>>(this.baseControllerUrl + 'Search', searchModel);\n    }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { GetToGroupByCodeRequest, EnterGroupResponse } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentGroupEnterService {\n    private readonly _baseControllerUrl: string;\n\n    constructor(private _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this._baseControllerUrl = baseUrl + 'api/tutor/student-group/enter';\n    }\n\n    public enterViaCode(model: GetToGroupByCodeRequest) {\n        return this._httpClient.post<EnterGroupResponse>(`${this._baseControllerUrl}/ViaCode`, model);\n    }\n\n    public enterFreeOfCharge(id: string) {\n        return this._httpClient.post<EnterGroupResponse>(`${this._baseControllerUrl}/FreeOfCharge/${id}`, {});\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { SearchStudentTestSolutionsRequest, GetListResult, TestSolutionCourseData, StudentTestSolutionWithChatInfo, StudentTestSolutionModel, StudentTestSolutionWithStudentAndChatInfo } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class TestSolutionQueryService {\n\n    private readonly _baseUrl: string = \"\";\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string,\n    ) {\n        this._baseUrl = `${baseUrl}api/tutor/test-solution/query`;\n    }\n\n    public search(model: SearchStudentTestSolutionsRequest) {\n        return this._httpClient.post<GetListResult<StudentTestSolutionWithChatInfo>>(`${this._baseUrl}/search`, model);\n    }\n\n    public searchDetailed(model: SearchStudentTestSolutionsRequest) {\n        return this._httpClient.post<GetListResult<StudentTestSolutionWithStudentAndChatInfo>>(`${this._baseUrl}/search-detailed`, model);\n    }\n\n    public getCourseData(id: string) {\n        return this._httpClient.get<TestSolutionCourseData>(`${this._baseUrl}/Get/By/Id/${id}/course-data`);\n    }\n\n    public getSolutionById(id: string) {\n        return this._httpClient.get<StudentTestSolutionModel>(`${this._baseUrl}/Get/By/Id/${id}`);\n    }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { BaseApiResponse, GenericBaseApiResponse, QuestionAnswerWithResult, QuestionInSolutionIdModel, SaveQuestionPointsValidation, TestQuestionWithModifiers, TestSolutionWithPointsValidation } from \"../models\";\n\n/**\nМетоды контроллера Tutor.Api.Controllers.TestSolutions.TestSolutionResultController\nBasePath = api/tutor/test-solution-result\n*/\n@Injectable({\n    providedIn: 'root',\n})\nexport class TestSolutionResultService {\n    readonly baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/test-solution-result`;\n    }\n\n    public getQuestionsWithModifiersBySolution(solutionId: string) {\n        return this._httpClient.get<TestQuestionWithModifiers[]>(`${this.baseControllerUrl}/modifiers/${solutionId}`);\n    }\n\n    public getQuestionsWithPointsValidationBySolution(solutionId: string) {\n        return this._httpClient.get<TestSolutionWithPointsValidation>(`${this.baseControllerUrl}/points/${solutionId}`);\n    }\n\n    public create(solutionId: string) {\n        return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/create/${solutionId}`, {});\n    }\n\n    public recalculate(solutionId: string) {\n        return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/recalculate/${solutionId}`, {});\n    }\n\n    public saveQuestionResult(model: SaveQuestionPointsValidation) {\n        return this._httpClient.post<GenericBaseApiResponse<QuestionAnswerWithResult>>(`${this.baseControllerUrl}/question/validation/save`, model);\n    }\n\n    public removeQuestionResult(model: QuestionInSolutionIdModel) {\n        return this._httpClient.post<GenericBaseApiResponse<QuestionAnswerWithResult>>(`${this.baseControllerUrl}/question/validation/remove`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { CreateTestForStudentErrorsRequest, StartSolutionFromDirectoryRequest, StartTestSolutionByTestIdRequest, TestSolutionCreatedResult } from \"../models\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentTestSolutionStartService {\n   private readonly baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/test-solution/start';\n    }\n\n    startByTestId(model: StartTestSolutionByTestIdRequest): Observable<TestSolutionCreatedResult> {\n        return this._httpClient.post<TestSolutionCreatedResult>(`${this.baseControllerUrl}/By/TestId`, model);\n    }\n\n    startByDirectory(model: StartSolutionFromDirectoryRequest): Observable<TestSolutionCreatedResult> {\n        return this._httpClient.post<TestSolutionCreatedResult>(`${this.baseControllerUrl}/By/Directory`, model);\n    }\n\n    startByErrors(model: CreateTestForStudentErrorsRequest): Observable<TestSolutionCreatedResult> {\n        return this._httpClient.post<TestSolutionCreatedResult>(`${this.baseControllerUrl}/By/Errors`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { GetListResult, SearchQuestionsByLikes, TestQuestionModel } from \"../../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class OpenApiQuestionLikeService {\n    \n    private readonly _baseUrl: string = \"\";\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string,\n    ) {\n        this._baseUrl = `${baseUrl}api/tutor/open-api/question-like`;\n    }\n\n    public search(model: SearchQuestionsByLikes) {\n        return this._httpClient.post<GetListResult<TestQuestionModel>>(`${this._baseUrl}/search`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { StudentTestSolutionModel } from \"../../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class OpenApiTestSolutionService {\n    \n    private readonly _baseUrl: string = \"\";\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string,\n    ) {\n        this._baseUrl = `${this._baseUrl}api/tutor/open-api/test-soluton`;\n    }\n\n    public getById(id: string) {\n        return this._httpClient.get<StudentTestSolutionModel>(`${this._baseUrl}/${id}`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { GenericBaseApiResponse, QuestionAnswerWithResult, SolutionWithAnswerModel, SolutionWithAnswersModel, StudentTestSolutionDataModel } from \"../models\";\nimport { Observable } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentTestSolutionService {\n    baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/test-solution/';\n    }\n\n    checkAnswer(model: SolutionWithAnswerModel) {\n        return this._httpClient.post<GenericBaseApiResponse<QuestionAnswerWithResult>>(this.baseControllerUrl + `check-answer`, model);\n    }\n\n    finishSolution(model: SolutionWithAnswersModel): Observable<GenericBaseApiResponse<StudentTestSolutionDataModel>> {\n        return this._httpClient.post<GenericBaseApiResponse<StudentTestSolutionDataModel>>(this.baseControllerUrl + \"finish\", model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { GenericBaseApiResponse, GetListResult, SearchMyTestSolutionsRequest, StudentTestSolutionDataModel, StudentTestSolutionWithChatInfo, TestWithActiveSolutionModel } from \"../models\";\n\n/**\nМетоды контроллера Tutor.Api.Controllers.TestSolutions.StudentTestSolutionQueryController\nBasePath = api/tutor/test-solution/query/mine\n*/\n@Injectable({ providedIn: 'root' })\nexport class StudentTestSolutionQueryService {\n    private readonly baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/test-solution/query/mine';\n    }\n\n    search(model: SearchMyTestSolutionsRequest) {\n        return this._httpClient.post<GetListResult<StudentTestSolutionWithChatInfo>>(`${this.baseControllerUrl}/search`, model);\n    }\n\n    getResultById(id: string){\n        let url = `${this.baseControllerUrl}/Get/By/Id/${id}/result`;\n\n        return this._httpClient.get<GenericBaseApiResponse<StudentTestSolutionDataModel>>(url);\n    }\n\n    getByTestId(testId: string){\n        let url = `${this.baseControllerUrl}/Get/By/TestId/${testId}`;\n\n        return this._httpClient.get<TestWithActiveSolutionModel>(url);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { StudentTestGroupRelationDetailedModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentGroupTestRelationQueryService {\n\n    getBaseUrl() {\n        return `${this._baseUrl}api/tutor/student-group/tests`;\n    }\n\n    private readonly _baseUrl: string = \"\";\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string,\n    ) {\n        this._baseUrl = baseUrl;\n    }\n\n    getById(studentGroupId: string, testId: string) {\n        return this._httpClient.get<StudentTestGroupRelationDetailedModel>(`${this.getBaseUrl()}/getById/${testId}/${studentGroupId}`);\n    }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiResponse, GetListResult } from '../models';\nimport { CreateOrUpdateCuratorMessageTemplate, DeleteCuratorMessageTemplate, SearchCuratorMessageTemplates, CuratorMessageTemplateModel } from '../models/curator-models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CuratorMessageTemplateService {\n  getBaseControllerUrl() {\n    return this._baseUrl + 'api/tutor/curator/message-template/';\n  }\n\n  private readonly _baseUrl: string = \"\";\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this._baseUrl = baseUrl;\n  }\n\n  public createOrUpdate(model: CreateOrUpdateCuratorMessageTemplate): Observable<BaseApiResponse> {\n    return this._httpClient.post<BaseApiResponse>(this.getBaseControllerUrl() + 'create-or-update', model);\n  }\n\n  public delete(model: DeleteCuratorMessageTemplate): Observable<BaseApiResponse> {\n    return this._httpClient.post<BaseApiResponse>(this.getBaseControllerUrl() + 'delete', model);\n  }\n\n  public search(model: SearchCuratorMessageTemplates): Observable<GetListResult<CuratorMessageTemplateModel>> {\n    return this._httpClient.post<GetListResult<CuratorMessageTemplateModel>>(\n      this.getBaseControllerUrl() + 'search',\n      model,\n    );\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { GetStudentCourseThemeItemsDeadlineWarningsRequest, CourseThemeItemStudentDeadlineWarningModel, CourseThemeIdWithDeadlineWarnings } from \"../models/test-restriction-models\";\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Courses.CourseThemeItemStudentTestRestrictionController\n * \n * Предоставляет методы для работы с предупреждениями о наступающем дедлайне в курсе\n * \n * базовый путь = api/tutor/course-theme-item/test-restriction/student\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class CourseDeadlineWarningService {\n    baseControllerUrl: string;\n\n    constructor(\n        private _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/course-deadline-warning/';\n    }\n\n    getStudentWarnings(model: GetStudentCourseThemeItemsDeadlineWarningsRequest) {\n        return this._httpClient.post<CourseThemeItemStudentDeadlineWarningModel[]>(this.baseControllerUrl + `query/for-student/all`, model);\n    }\n\n    getStudentWarningsGrouped(model: GetStudentCourseThemeItemsDeadlineWarningsRequest) {\n        return this._httpClient.post<CourseThemeIdWithDeadlineWarnings[]>(this.baseControllerUrl + `query/for-student/grouped`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { BaseApiResponse } from \"../models\";\nimport { CourseItemGlobalTestRestrictionModel, CourseRemovingAllTestRestrictionsState, TestRestrictionModel } from \"../models/test-restriction-models\";\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Courses.CourseThemeItemTestRestrictionController\n * \n * Предоставляет методы для управления глобальными ограничениями теста для блока курса\n * \n * базовый путь = api/tutor/course-theme-item/test-restriction\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class CourseThemeItemTestRestrictionService {\n    private readonly baseControllerUrl: string;\n\n    constructor(\n        private readonly _http: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/course-theme-item/test-restriction`;\n    }\n\n    setGlobal(model: CourseItemGlobalTestRestrictionModel) {\n        return this._http.post<BaseApiResponse>(`${this.baseControllerUrl}/global`, model);\n    }\n\n    getGlobal(id: string) {\n        return this._http.get<TestRestrictionModel>(`${this.baseControllerUrl}/global/${id}`);\n    }\n\n    removeAll(courseId: string) {\n        return this._http.post<BaseApiResponse>(`${this.baseControllerUrl}/remove-all/${courseId}`, {});\n    }\n\n    startRemovingAll(courseId: string) {\n        return this._http.post<BaseApiResponse>(`${this.baseControllerUrl}/removing-all/${courseId}/start`, {})\n    }\n\n    getRemovingAllState(courseId: string) {\n        return this._http.get<CourseRemovingAllTestRestrictionsState>(`${this.baseControllerUrl}/removing-all/${courseId}/state`)\n    }\n}","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n  SubjectCountsModel,\n  SubjectModel,\n  SubjectWithClarificationsModel\n} from '../models/subject.models';\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Subjects.SubjectQueryController\n * \n * Базовый урл = api/tutor/subject/query\n * \n * Методы для получения предметов\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SubjectQueryService {\n  private readonly _baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this._baseControllerUrl = `${baseUrl}api/tutor/subject/query`;\n  }\n\n  public getAll() {\n    return this._httpClient.get<SubjectModel[]>(`${this._baseControllerUrl}/get-all`);\n  }\n\n  public getAllCached() {\n    return this._httpClient.get<SubjectModel[]>(`${this._baseControllerUrl}/get-all/cached`);\n  }\n\n  public getAllWithClarifications() {\n    return this._httpClient.get<SubjectWithClarificationsModel[]>(`${this._baseControllerUrl}/get-all/with-clarifications`);\n  }\n\n  public getAllWithClarificationsCached() {\n    return this._httpClient.get<SubjectWithClarificationsModel[]>(`${this._baseControllerUrl}/get-all/with-clarifications/cached`);\n  }\n\n  public getByAliasOrId(id: string) {\n    return this._httpClient.get<SubjectCountsModel>(`${this._baseControllerUrl}/GetByAliasOrId?idOrAlias=${id}`);\n  }\n\n  public getByAliasOrIdCached(idOrAlias: string) {\n    return this._httpClient.get<SubjectCountsModel>(`${this._baseControllerUrl}/GetByAliasOrId/Cached?idOrAlias=${idOrAlias}`);\n  }\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n  CreateSubjectRequest,\n  OrderSubjectsRequest,\n  UpdateSubjectRequest,\n} from '../models/subject.models';\nimport { BaseApiResponse } from '../models';\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Subjects.SubjectController\n * \n * Базовый урл = api/tutor/subject\n * \n * Методы для работы с предметами\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SubjectsService {\n  private readonly baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this.baseControllerUrl = baseUrl + 'api/tutor/subject';\n  }\n\n  public create(model: CreateSubjectRequest) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/create`, model);\n  }\n\n  public order(model: OrderSubjectsRequest) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/order`, model);\n  }\n\n  public update(model: UpdateSubjectRequest) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/update`, model);\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { BaseApiResponse, GetListResult } from \"../models\";\nimport { CourseItemStudentTestRestrictionModel, GetCourseThemeItemStudentTestRestrictionRequest, TestRestrictionValidationResult, TestRestrictionValidationWithDeadLineWarningResult, SearchStudentThemeItemTestRestrictionsRequest, ThemeItemTestStudentRestrictionModel } from \"../models/test-restriction-models\";\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Courses.CourseThemeItemStudentTestRestrictionController\n *\n * Предоставляет методы для управления ограничениями теста для блока курса\n *\n * базовый путь = api/tutor/course-theme-item/test-restriction/student\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class CourseThemeItemTestRestrictionStudentService {\n    private baseControllerUrl: string;\n\n    constructor(\n        private readonly _http: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/course-theme-item/test-restriction/student/';\n    }\n\n    updateForStudent(model: CourseItemStudentTestRestrictionModel) {\n        return this._http.post<BaseApiResponse>(this.baseControllerUrl + `update`, model);\n    }\n\n    getStudentRestriction(model: GetCourseThemeItemStudentTestRestrictionRequest) {\n        return this._http.post<TestRestrictionValidationResult>(this.baseControllerUrl + `query/get-validated-item-restriction`, model);\n    }\n\n    getStudentRestrictionWithDeadLineWarning(model: GetCourseThemeItemStudentTestRestrictionRequest) {\n        return this._http.post<TestRestrictionValidationWithDeadLineWarningResult>(this.baseControllerUrl + `query/get-validated-item-restriction-with-deadline-warning`, model);\n    }\n\n    searchStudents(model: SearchStudentThemeItemTestRestrictionsRequest) {\n        return this._http.post<GetListResult<ThemeItemTestStudentRestrictionModel>>(this.baseControllerUrl + 'query/search', model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { CourseThemeItemsTestSolutionsRestrictionsModel } from \"../models\";\n\n/**\n * Предоставляет методы контроллера Tutor.Api.Controllers.Courses.StudentCourseViewController\n * Оптимизированные методы для работы студентов с курсами\n * Базовый урл = api/tutor/student-course-view\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentCourseViewService {\n    baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/student-course-view`;\n    }\n\n    /**\n     * Запрос для получения решений тестов по блоку в теме курса и ограничения по количеству попыток и дедлайну. Метод кешируется на 30 секунд. \n     * @param courseId - идентификатор курса\n     * @param studentProgressId - идентификатор прогресса ученика\n     * @param themeItemId - идентификатор блока тема внутри курса\n     * @param solutionsCount - количество решений тестов\n     * @param key - ключ для сброса кеширования\n     * @returns \n     */\n    public loadThemeItemSolutionsAndTestRestriction(courseId: string, studentProgressId: string, themeItemId: string, solutionsCount: number, key: string): Observable<CourseThemeItemsTestSolutionsRestrictionsModel[]> {\n\n        const paramsStr = `courseId=${courseId}&studentProgressId=${studentProgressId}&themeItemId=${themeItemId}&solutionsCount=${solutionsCount}&key=${key}`;``\n\n        return this._httpClient.get<CourseThemeItemsTestSolutionsRestrictionsModel[]>(`${this.baseControllerUrl}/load-theme-item-solutions-and-restriction?${paramsStr}`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { StudentTestSolutionDetailedModel } from \"../models\";\n\n/**\n * Предоставляет методы для поиска решений тестов \n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class TestSolutionDetailedQueryService {\n\n    private _baseUrl: string = \"\";\n\n    constructor(\n        private _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this._baseUrl = baseUrl + \"api/tutor/test-solution/query/\";\n    }\n\n    /**\n     * \n     * @param id Идентификатор решения теста\n     * @returns \n     */\n    public get(id: string): Observable<StudentTestSolutionDetailedModel> {\n        return this._httpClient.get<StudentTestSolutionDetailedModel>(this._baseUrl + `Get/By/Id/${id}/detailed`);\n    }\n}","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { CourseLandingPageDetailedModel, CourseLandingPageSimpleModel, GetListResult, SearchCourseLandingPageRequest } from '../models';\n\n/**\n * Предоставляет методы для работы с лендинг страницами для курса\n * Контроллер = Tutor.Api.Controllers.Landings.CourseLandingPageController\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class CourseLandingPageQueryService {\n\n  private readonly _baseUrl: string = \"\";\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this._baseUrl = baseUrl + 'api/tutor/course-landing-page/query';\n  }\n\n  /**\n   * Поиск лендинг страниц\n   * @param model \n   * @returns \n   */\n  search(model: SearchCourseLandingPageRequest) {\n    return this._httpClient.post<GetListResult<CourseLandingPageSimpleModel>>(`${this._baseUrl}/search`, model);\n  }\n\n  /**\n   * Получить лендинг страницу по идентификатору\n   * @param id идентификатор страницы\n   * @param useCache использовать кеш\n   * @returns \n   */\n  getById(id: string, useCache: boolean) {\n    if (useCache) {\n      return this.getByIdCached(id);\n    }\n\n    return this._httpClient.get<CourseLandingPageDetailedModel>(`${this._baseUrl}/get-by-id?id=${id}`);\n  }\n\n  private getByIdCached(id: string) {\n    return this._httpClient.get<CourseLandingPageDetailedModel>(`${this._baseUrl}/get-by-id/cached?id=${id}`);\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { CourseOrderModel, CreateCourseOrderRequest, CreateCourseOrderResponse } from \"../models/course-shop-models\";\n\n/**\n * Предоставляем методы контроллера Tutor.Api.Controllers.Courses.CourseOrderController\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class CourseOrderService {\n    baseControllerUrl: string;\n\n    constructor(\n        private _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/course-order';\n    }\n\n    /**\n     * Получить заказ на покупку курса по идентификатору\n     * @param id идентификатор заказа\n     * @returns \n     */\n    getById(id: string) {\n        return this._httpClient.get<CourseOrderModel>(`${this.baseControllerUrl}/query/get-by-id/${id}`);\n    }\n\n    /**\n     * созать заказ на покупку курса\n     * @param model запрос для создания заказа на покупку курса\n     * @returns \n     */\n    create(model: CreateCourseOrderRequest) {\n        return this._httpClient.post<CreateCourseOrderResponse>(`${this.baseControllerUrl}/create`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { CourseShopWindowDetailedModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class CourseShopWindowDetailedService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/course-shop-window-detailed';\n    }\n\n    getMain() {\n        return this._httpClient.get<CourseShopWindowDetailedModel>(`${this.baseControllerUrl}/main`);\n    }\n\n    getMainCached() {\n        return this._httpClient.get<CourseShopWindowDetailedModel>(`${this.baseControllerUrl}/main/cached`);\n    }\n\n    getById(id: string) {\n        return this._httpClient.get<CourseShopWindowDetailedModel>(`${this.baseControllerUrl}/by-id/${id}`);\n    }\n\n    getByIdCached(id: string) {\n        return this._httpClient.get<CourseShopWindowDetailedModel>(`${this.baseControllerUrl}/by-id/${id}/cached`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { StudentGroupPaymentPlansModel } from \"../models\";\n\n/**\n * Предоставляет методы контроллера Tutor.Api.Controllers.StudentGroupPaymentPlans.StudentGroupPaymentPlanQueryController\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class StudentGroupPaymentPlanQueryService {\n    getBaseUrl() {\n        return `${this._baseUrl}api/tutor/student-group-payment-plan/query`;\n    }\n\n    constructor(\n        private _httpClient: HttpClient,\n        @Inject('BASE_URL') private _baseUrl: string\n    ) { }\n\n    /**\n     * Получить группу и глобальные планы оплаты с ней связанные\n     * @param id идентификатор группы\n     * @returns групп с планами оплаты\n     */\n    public getPaymentPlans(id: string): Observable<StudentGroupPaymentPlansModel> {\n        return this._httpClient.get<StudentGroupPaymentPlansModel>(`${this.getBaseUrl()}/payment-plans/${id}`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { TutorFullApplicationPublicOptions } from \"../models\";\nimport { of, tap } from \"rxjs\";\n\n/**\n * Сервис для предоставления публичной конфигурации по приложению\n */\n@Injectable({\n    providedIn: 'root',\n})\nexport class TutorAppConfigurationService {\n\n    static readonly VariableKey = \"__Tutor.FullConfiguration\";\n\n    private baseControllerUrl: string;\n\n    constructor(\n        private readonly _http: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/settings/application`;\n    }\n\n    /**\n     * Получить конифгурацию из window\n     * @returns\n     */\n    get(): TutorFullApplicationPublicOptions {\n        return TutorAppConfigurationService.getFromWindow();\n    }\n\n    /**\n     * Получить конифгурацию из window\n     * @returns\n     */\n    static getFromWindow(): TutorFullApplicationPublicOptions {\n        const value = window[TutorAppConfigurationService.VariableKey];\n\n        if (value === undefined || value === null) {\n            throw new Error(`в window не установлена переменная ${TutorAppConfigurationService.VariableKey}`);\n        }\n\n        return value;\n    }\n\n    set(value: TutorFullApplicationPublicOptions) {\n        window[TutorAppConfigurationService.VariableKey] = value;\n    }\n\n    getFromServerIfValueNotSet() {\n\n        const value = window[TutorAppConfigurationService.VariableKey];\n\n        if (value === undefined || value === null) {\n            return this._http.get<TutorFullApplicationPublicOptions>(this.baseControllerUrl).pipe(tap(value => {\n                this.set(value);\n                return value;\n            }));\n        }\n\n\n        return of<TutorFullApplicationPublicOptions>(value);\n    }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiResponse, ChangeQuestionLike, QuestionIdWithLike } from '../models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class QuestionLikeService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this.baseControllerUrl = baseUrl + 'api/tutor/question-likes/';\n  }\n\n  public change(model: ChangeQuestionLike): Observable<BaseApiResponse> {\n    return this._httpClient.post<BaseApiResponse>(this.baseControllerUrl + `change`, model);\n  }\n\n  public getBySolutionId(id: string): Observable<QuestionIdWithLike[]> {\n    return this._httpClient.get<QuestionIdWithLike[]>(this.baseControllerUrl + `for-solution/${id}`);\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { SearchCourseProgressesRequest, StudentCourseProgressModel, StudentCourseProgressWithStudentModel } from '../models/student-course-models';\nimport { GetListResult } from \"../models\";\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StudentCourseProgressQueryService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this.baseControllerUrl = `${baseUrl}api/tutor/student-course-progress/query`;\n  }\n\n  /**\n   * Получить прогресс студента по курсу\n   * @param courseId Идентификатор курса\n   * @returns \n   */\n  getMine(courseId: string) {\n    return this._httpClient.get<StudentCourseProgressModel>(`${this.baseControllerUrl}/mine/${courseId}`);\n  }\n\n  search(model: SearchCourseProgressesRequest) {\n    return this._httpClient.post<GetListResult<StudentCourseProgressWithStudentModel>>(\n      `${this.baseControllerUrl}/search`,\n      model\n    );\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BaseApiResponse } from '../models';\nimport { StartCourseThemeItemTestRequest, StartCourseThemeItemTestResult, StartCourseThemeRequest, UpdateStudentCourseThemeProgressRequest, UpdateStudentCourseThemeProgressResult } from '../models/student-course-models';\n\n/**\n * Сервис для прохождения курса учеником.\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class StudentCourseProgressService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this.baseControllerUrl = `${baseUrl}api/tutor/student-course-progress`;\n  }\n\n  startTheme(model: StartCourseThemeRequest) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/theme/start`, model);\n  }\n\n  updateThemeProgress(model: UpdateStudentCourseThemeProgressRequest) {\n    return this._httpClient.post<UpdateStudentCourseThemeProgressResult>(`${this.baseControllerUrl}/theme/update`, model);\n  }\n\n  startTestForItemBlock(model: StartCourseThemeItemTestRequest) {\n    return this._httpClient.post<StartCourseThemeItemTestResult>(`${this.baseControllerUrl}/theme/item/start-test`, model);\n  }\n}\n\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { SearchStudentGroupMaterialsRequest, StudentGroupWithMaterialsModel } from \"../models/material-models\";\nimport { Observable } from \"rxjs\";\nimport { GetListResult } from \"../models\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentGroupMaterialService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/student-group/query`;\n    }\n\n    getMaterials(model: SearchStudentGroupMaterialsRequest): Observable<GetListResult<StudentGroupWithMaterialsModel>> {\n        return this._httpClient.post<GetListResult<StudentGroupWithMaterialsModel>>(`${this.baseControllerUrl}/materials/search`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { AddCoursePaymentRequest, AddCoursePaymentResult, SetPaymentSystemForCoursePayment } from \"../models/course-payment-models\";\nimport { BaseApiResponse } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class CoursePaymentService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/student-course/payments`;\n    }\n\n    add(model: AddCoursePaymentRequest) {\n        return this._httpClient.post<AddCoursePaymentResult>(`${this.baseControllerUrl}/add`, model);\n    }\n\n    setPaymentSystem(model: SetPaymentSystemForCoursePayment) {\n        return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/set-payment-system`, model);\n    }\n}\n\n\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { EnumValueTypeWithDescriptionStudentCoursePaymentType, SearchStudentCoursePaymentsRequest, StudentCoursePaymentDetailedModel, StudentCoursePaymentModel } from \"../models/course-payment-models\";\nimport { GetListResult } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class CoursePaymentQueryService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/student-course/payments/query';\n    }\n\n    getById(id: string) {\n        return this._httpClient.get<StudentCoursePaymentModel>(`${this.baseControllerUrl}/byId/${id}`);\n    }\n\n    getByPaymentId(id: string) {\n        return this._httpClient.get<StudentCoursePaymentModel>(`${this.baseControllerUrl}/by/pmt-id/${id}`);\n    }\n\n    search(model: SearchStudentCoursePaymentsRequest) {\n        return this._httpClient.post<GetListResult<StudentCoursePaymentModel>>(`${this.baseControllerUrl}/search`, model);\n    }\n\n    searchDetailed(model: SearchStudentCoursePaymentsRequest) {\n        return this._httpClient.post<GetListResult<StudentCoursePaymentDetailedModel>>(\n            `${this.baseControllerUrl}/search-detailed`,\n            model\n        );\n    }\n\n    getTypes() {\n        return this._httpClient.get<EnumValueTypeWithDescriptionStudentCoursePaymentType[]>(this.baseControllerUrl + 'Types');\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { GetListResult, QuestionStatisticComputingState, SearchTestQuestionErrorsStatisticRequest, StudentTestQuestionStatisticDetailedModel } from \"../models\";\n\n@Injectable({ providedIn: 'root' })\nexport class TestQuestionStatisticQueryService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this.baseControllerUrl = baseUrl + 'api/tutor/question-statistic';\n  }\n\n  search(model: SearchTestQuestionErrorsStatisticRequest) {\n    return this._httpClient.post<GetListResult<StudentTestQuestionStatisticDetailedModel>>(\n      `${this.baseControllerUrl}/query/search`,\n      model\n    );\n  }\n\n  getState() {\n    return this._httpClient.get<QuestionStatisticComputingState>(`${this.baseControllerUrl}/state`);\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { GetStudentGroupCourseAccessRequest, StudentGroupCourseWithDetailedAccessModel } from \"../models/group-access-models\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentGroupCourseAccessService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/student-group-access';\n    }\n\n    get(model: GetStudentGroupCourseAccessRequest) {\n        return this._httpClient.post<StudentGroupCourseWithDetailedAccessModel>(`${this.baseControllerUrl}/get`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { RegisterModel, RegisterStudentRequest, StudentRegistrationResult } from \"../models/student-models\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentRegistrationService {\n    private readonly _baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this._baseControllerUrl = baseUrl + 'api/tutor/student';\n    }\n\n    register(model: RegisterModel) {\n        return this._httpClient.post<StudentRegistrationResult>(`${this._baseControllerUrl}/register`, model);\n    }\n\n    registerV2(model: RegisterStudentRequest) {\n        return this._httpClient.post<StudentRegistrationResult>(`${this._baseControllerUrl}/register/v2`, model);\n    }\n\n    demoRegistration() {\n        return this._httpClient.post<StudentRegistrationResult>(`${this._baseControllerUrl}/register/demo`, {});\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { BaseApiResponse, GetListResult, OrderPaymentSystemsRequest, PaymentSystemModel, SearchPaymentSystemsRequest } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class PmtSystemService {\n    private baseControllerUrl: string;\n\n    constructor(\n        private readonly _http: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = `${baseUrl}api/pmt/system`;\n    }\n\n    search(model: SearchPaymentSystemsRequest) {\n        return this._http.post<GetListResult<PaymentSystemModel>>(`${this.baseControllerUrl}/search`, model);\n    }\n\n    getEnabledSystemsCached() {\n        return this._http.get<PaymentSystemModel[]>(`${this.baseControllerUrl}/cache/enabled-list`);\n    }\n\n    getById(name: string) {\n        return this._http.get<PaymentSystemModel>(`${this.baseControllerUrl}/get/by-id/${name}`);\n    }\n\n    order(model: OrderPaymentSystemsRequest) {\n        return this._http.post<BaseApiResponse>(`${this.baseControllerUrl}/order`, model);\n    }\n\n    createOrUpdate(model: PaymentSystemModel) {\n        return this._http.post<BaseApiResponse>(`${this.baseControllerUrl}/create-or-update`, model);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { DefaultCourseLandingPageModel } from \"../models/default-course-landing-page-models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class DefaultCourseLandingPageQueryService {\n    private readonly _baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this._baseControllerUrl = `${baseUrl}api/tutor/default-course-landing-page/query`;\n    }\n\n    getById(id: string) {\n        return this._httpClient.get<DefaultCourseLandingPageModel>(`${this._baseControllerUrl}/get-by-id/${id}`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { GetStudentGroupInfoPageRequest, StudentGroupInfoPageDetailedModel } from \"../models/group-page-info-models\";\nimport { Observable } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentGroupInfoPageService {\n    baseControllerUrl: string;\n\n    constructor(\n        private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string\n    ) {\n        this.baseControllerUrl = baseUrl + 'api/tutor/student-group/info-page';\n    }\n\n    get(model: GetStudentGroupInfoPageRequest): Observable<StudentGroupInfoPageDetailedModel> {\n        return this._httpClient.post<StudentGroupInfoPageDetailedModel>(\n            `${this.baseControllerUrl}/get`,\n            model\n        );\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { StudentStatisticSnapshotValueDebugInfoModel, StudentStatisticSnapshotValueModel } from \"../models\";\n\n@Injectable({ providedIn: 'root' })\nexport class StudentAggregatedStatisticSnapshotService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this.baseControllerUrl = `${baseUrl}api/tutor/student-aggregated-statistic-snapshot`;\n  }\n\n  public get(studentId: string) {\n    return this._httpClient.get<StudentStatisticSnapshotValueModel>(`${this.baseControllerUrl}/query/get-by-id/${studentId}`);\n  }\n\n  public getDebugInfo(studentId: string) {\n    return this._httpClient.get<StudentStatisticSnapshotValueDebugInfoModel>(`${this.baseControllerUrl}/query/get-by-id/${studentId}/debug-info`);\n  }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { GetStudentInGroupStatisticSnapshotRequest, StudentGroupStatisticSnapshotInfoModel, StudentInGroupStatisticSnapshotModel } from \"../models\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class GroupStatisticSnapshotStudentService {\n    baseControllerUrl: string;\n\n    constructor(private readonly _httpClient: HttpClient,\n        @Inject('BASE_URL') baseUrl: string) {\n        this.baseControllerUrl = `${baseUrl}api/tutor/student-in-group-statistic-snapshot`;\n    }\n\n    /**\n     * \n     * @param model запрос для получения снапшота агрегированной статистики ученика по предметам и тегам в рамках группы (курса)\n     * @returns \n     */\n    get(model: GetStudentInGroupStatisticSnapshotRequest) {\n        return this._httpClient.post<StudentInGroupStatisticSnapshotModel | null>(`${this.baseControllerUrl}/get`, model);\n    }\n\n    /**\n     * Получить информацию о снапшоте.\n     * @param id идентификатор снепшота\n     * @returns \n     */\n    getSnapshotInfo(id: string) {\n        return this._httpClient.get<StudentGroupStatisticSnapshotInfoModel | null>(`${this.baseControllerUrl}/snapshot-info/${id}`);\n    }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, Inject } from \"@angular/core\";\nimport { BaseApiResponse } from \"croco-generic-app-logic\";\nimport { CreateSubjectMenuRequest, SubjectMenuSimpleModel } from \"../models\";\n\n/**\n * Методы контроллера Tutor.Api.Controllers.Subjects.SubjectMenuController\n * \n * Базовый урл = api/tutor/subject/menu\n * \n * Методы для работы с меню предмета\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SubjectMenuService {\n  private readonly baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string\n  ) {\n    this.baseControllerUrl = `${baseUrl}api/tutor/subject/menu`;\n  }\n\n  public create(model: CreateSubjectMenuRequest) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/create`, model);\n  }\n\n  public getMain() {\n    return this._httpClient.get<SubjectMenuSimpleModel>(`${this.baseControllerUrl}/query/main`);\n  }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { GenericBaseApiResponse, BaseApiResponse } from \"croco-generic-app-logic\";\nimport { TelegramLinkResponse, TutorUserTelegramData } from \"../models\";\n\n@Injectable({ providedIn: 'root' })\nexport class TutorUserTelegramService {\n  baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this.baseControllerUrl = `${baseUrl}api/tutor/user-telegram`;\n  }\n\n  createLink() {\n    return this._httpClient.post<GenericBaseApiResponse<TelegramLinkResponse>>(\n      `${this.baseControllerUrl}/create-link`,\n      {},\n    );\n  }\n\n  unLink(id: string) {\n    return this._httpClient.post<BaseApiResponse>(`${this.baseControllerUrl}/un-link/${id}`, {});\n  }\n\n  getData() {\n    return this._httpClient.get<TutorUserTelegramData>(`${this.baseControllerUrl}/get-data`);\n  }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { BaseApiResponse,  } from \"../models\";\nimport { GetMyStudentGroupBlockRequest, StudentInGroupSetBlockingDateModel, StudentInGroupSetBlockingModel, StudentInGroupWithBlockModel } from \"../models/student-block-models\";\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StudentGroupBlockService {\n  private readonly _baseControllerUrl: string;\n\n  constructor(\n    private readonly _httpClient: HttpClient,\n    @Inject('BASE_URL') baseUrl: string,\n  ) {\n    this._baseControllerUrl = `${baseUrl}api/tutor/student-group/block`;\n  }\n\n  public setDate(model: StudentInGroupSetBlockingDateModel) {\n    return this._httpClient.post<BaseApiResponse>(`${this._baseControllerUrl}/date`, model);\n  }\n\n  public setState(model: StudentInGroupSetBlockingModel) {\n    return this._httpClient.post<BaseApiResponse>(`${this._baseControllerUrl}/state`, model);\n  }\n\n  public getMineV2(model: GetMyStudentGroupBlockRequest) {\n    return this._httpClient.post<StudentInGroupWithBlockModel>(`${this._baseControllerUrl}/query/v2/mine`, model);\n  }\n}\n\n","import { IconSimpleModel } from \"./icon-models\";\nimport { StudentSimpleModel } from \"./student-models\";\n\nexport interface SearchStudentGroupsRequest {\n    q: string;\n    schoolId: string;\n    types: Array<StudentGroupType>;\n    count: number | null;\n    offSet: number;\n}\n\nexport enum StudentGroupType {\n    Course = 'Course',\n    ClassRoom = 'ClassRoom',\n    ExternalProduct = 'ExternalProduct'\n}\n\nexport enum StudentGroupTaskType {\n    LinkCourseTemplate = 'LinkCourseTemplate',\n    ClearSolutions = 'ClearSolutions'\n}\n\nexport interface StudentGroupSimpleModel {\n    id: string;\n    alias: string;\n    name: string;\n    isDeleting: boolean;\n    useHtmlForName: boolean;\n    useCourse: boolean;\n    type: StudentGroupType;\n    nameHtml: string;\n    isFreeOfCharge: boolean;\n    schoolId: string;\n    courseShopWindowId: string;\n    hasNotProcessedTask: boolean;\n}\n\nexport interface StudentGroupDetailedModel {\n    id: string;\n    name: string;\n    alias: string;\n    enterCode: string;\n    useCourse: boolean;\n    studentsCount: number;\n    isDeleting: boolean;\n    type: StudentGroupType;\n    courseTemplateId: string;\n    useHtmlForName: boolean;\n    nameHtml: string;\n    useSchedule: boolean;\n    scheduleId: string;\n    useMaterials: boolean;\n    materialsHtml: string;\n    solutionsCount: number;\n    scheduleStudentSubscribersCount: number;\n    hasDefaultLandingPage: boolean;\n    defaultCourseLandingPageUrl: string;\n    schoolId: string;\n    courseShopWindowId: string;\n    computedDataOnUtc: string;\n    task: StudentGroupTaskType | null;\n    taskInfo: StudentGroupTaskInfo;\n}\n\nexport interface StudentGroupTaskInfo {\n    title: string;\n    description: string;\n}\n\nexport interface StudentInGroupSimpleModel {\n    student: StudentSimpleModel;\n    isBlocked: boolean;\n    shouldBlockOnUtc: string;\n    enteredOnUtc: string;\n}\n\nexport interface SearchStudentsInGroup {\n    groupId: string;\n    q: string;\n    hasIndividualPaymentPlans: boolean | null;\n    isBlocked: boolean | null;\n    count: number | null;\n    offSet: number;\n}\n\nexport interface StudentTestGroupRelationDetailedModel {\n    studentGroupId: string;\n    testId: string;\n    canCheckSingleQuestion: boolean;\n    html: string;\n    showHtml: boolean;\n    testName: string;\n    testDescription: string;\n}\n\nexport interface SearchStudentGroupsByStudentRequest {\n    studentId: string;\n    q: string;\n    iconSetId: string | null;\n    count: number | null;\n    offSet: number;\n}\n\nexport interface StudentGroupWithCourseProgressModel {\n    groupId: string;\n    groupName: string;\n    groupUseHtmlForName: boolean;\n    groupNameHtml: string;\n    useCourse: boolean;\n    isBlocked: boolean;\n    shouldBlockOnUtc: string | null;\n    courseProgress: StudentGroupCourseProgressSimpleModel;\n    icon: IconSimpleModel;\n}\n\nexport interface StudentGroupCourseProgressSimpleModel {\n    totalWeight: number;\n    currentProgress: number;\n    progressPercents: number;\n}\n","import { TestQuestionModel, TestQuestionType } from \"./question-models\";\nimport { QuestionValidationSourceType } from \"./solution-validation-models\";\nimport { StudentSimpleModel } from \"./student-models\";\nimport { TestQuestionErrorsStatisticOrderType } from \"./student-statistic-models\";\n\nexport interface SearchStudentTestSolutionsRequest {\n    isFinished: boolean | null;\n    studentId: string;\n    testId: string;\n    withUnreadMessages: boolean;\n    count: number | null;\n    offSet: number;\n}\n\nexport interface TestSolutionCourseData {\n    solutionId: string;\n    courseThemeItemId: string;\n    courseThemeItemIndex: number;\n    courseThemeId: string;\n    courseThemeName: string;\n    courseName: string;\n    courseId: string;\n    testId: string;\n}\n\nexport interface SolutionWithAnswerModel {\n    solutionId: string;\n    answer: QuestionAnswer;\n}\n\nexport interface QuestionAnswer {\n    questionId: string;\n    answerOrAnswers: string;\n}\n\nexport interface StudentTestSolutionWithChatInfo {\n    solution: StudentTestSolutionSimpleModel;\n    systemValidation: TestSolutionSystemValidationModel;\n    unreadMessagesCount: number;\n}\n\nexport interface StudentTestSolutionWithStudentAndChatInfo {\n    solution: StudentTestSolutionSimpleModel;\n    student: StudentSimpleModel;\n    systemValidation: TestSolutionSystemValidationModel;\n    unreadMessagesCount: number;\n}\n\nexport interface TestSolutionSystemValidationModel {\n    studentTotalPoints: number;\n    studentProgressPercents: number;\n    maxTotalPoints: number;\n    questionsCount: number;\n    validatedQuestionsCount: number;\n    hasRightAnswerQuestionsCount: number;\n}\n\nexport interface StartSolutionFromDirectoryRequest {\n    workSpaceId: string;\n    directoryId: string;\n    useFilter: boolean;\n    canCheckSingleQuestion: boolean;\n    filter: QuestionsFilter;\n}\n\nexport interface CreateTestForStudentErrorsRequest {\n    testName: string;\n    questionsCount: number;\n    questionTypes: Array<TestQuestionType>;\n    orderType: TestQuestionErrorsStatisticOrderType;\n    canCheckSingleQuestion: boolean;\n    isLastAnswerCorrect: boolean | null;\n    isActualQuestionVersion: boolean | null;\n}\n\nexport interface TestSolutionCreatedResult {\n    succeeded: boolean;\n    errorMessage: string;\n    solutionId: string;\n}\n\nexport interface QuestionsFilter {\n    types: Array<TestQuestionType>;\n}\n\nexport interface StartTestSolutionByTestIdRequest {\n    testId: string;\n    studentGroupId: string;\n    canCheckSingleQuestion: boolean;\n}\n\nexport interface SearchMyTestSolutionsRequest {\n    isFinished: boolean | null;\n    testId: string;\n    withUnreadMessages: boolean;\n    count: number | null;\n    offSet: number;\n}\n\nexport interface StudentTestSolutionSimpleModel {\n    id: string;\n    testName: string;\n    testId: string;\n    isFinished: boolean;\n    startedOnUtc: string; /* Date */\n    finishedOnUtc: string | null; /* Date */\n}\n\nexport enum AnswerValidationResultType {\n    NeedToCheckByYourSelf = 'NeedToCheckByYourSelf',\n    NotCorrectAnswer = 'NotCorrectAnswer',\n    PartiallyCorrectAnswer = 'PartiallyCorrectAnswer',\n    CorrectAnswer = 'CorrectAnswer',\n    InProcess = 'InProcess'\n}\n\nexport interface SolutionWithAnswersModel {\n    solutionId: string;\n    answers: Array<QuestionAnswer>;\n}\n\nexport interface StudentTestSolutionModel {\n    solutionId: string;\n    hasCuratorValidation: boolean;\n    canCheckSingleQuestion: boolean;\n    studentId: string;\n    startedOnUtc: string;\n    studentGroupId: string;\n    finishedOnUtc: string | null;\n    isFinished: boolean;\n    solution: StudentTestSolutionDataModel;\n    test: TestModel;\n}\n\n\nexport interface StudentTestSolutionDataModel {\n    /**\n     * Есть ли вопросы, которые находятся в процессе расчёта результата\n    */\n    hasAnswersInProcess: boolean;\n    answers: Array<QuestionAnswerWithResult>;\n}\n\nexport interface TestModel {\n    name: string;\n    description: string;\n    questions: Array<TestQuestionModel>;\n}\n\nexport interface TestWithActiveSolutionModel {\n    testId: string;\n    activeSolutionId: string;\n    test: TestModel;\n}\n\n\nexport interface QuestionAnswerWithResult {\n    isChecked: boolean;\n    questionId: string;\n    answerOrAnswers: string;\n    pointsValidation: QuestionPointsValidationModel;\n    resultType: AnswerValidationResultType;\n}\n\nexport interface QuestionPointsValidationModel {\n    errorOccured: boolean;\n    inProcess: boolean;\n    answerPoints: number;\n    questionTotalPoints: number;\n    description: string;\n    isValidated: boolean;\n    sourceType: QuestionValidationSourceType;\n    validatorId: string;\n}\n\nexport interface StudentTestSolutionDetailedModel {\n    solutionId: string;\n    hasAnswersInProcess: boolean;\n    hasCuratorValidation: boolean;\n    canCheckSingleQuestion: boolean;\n    studentId: string;\n    startedOnUtc: string;\n    finishedOnUtc: string | null;\n    isFinished: boolean;\n    studentGroupId: string;\n    marketingOptions: SolutionMarketingOptions;\n    test: StudentTestSolutionDetailedTestModel;\n}\n\nexport interface SolutionMarketingOptions {\n    showAfterSolutionMarkUp: boolean;\n    afterSolutionMarkUp: string;\n}\n\nexport interface StudentTestSolutionDetailedTestModel {\n    name: string;\n    description: string;\n    questions: Array<StudentTestSolutionDetailedTestQuestion>;\n}\n\nexport interface StudentTestSolutionDetailedTestQuestion {\n    question: TestQuestionModel;\n    answerWithValidation: QuestionAnswerWithResult;\n    isQuestionLikedByStudent: boolean;\n}\n","import { QuestionAnswerWithResult } from \"./test-solution-models\";\n\nexport interface TestSolutionWithPointsValidation {\n    solutionId: string;\n    isFinished: boolean;\n    hasPointsResult: boolean;\n    questions: QuestionAnswerWithResult[];\n    studentTotalPoints: number;\n    maxTotalPoints: number;\n    questionsCount: number;\n    validatedQuestionsCount: number;\n    inProcessQuestionsCount: number;\n    hasRightAnswerQuestionsCount: number;\n}\n\nexport enum QuestionValidationSourceType {\n    System = 'System',\n    Student = 'Student',\n    Curator = 'Curator'\n}\n\nexport interface TestQuestionWithModifiers {\n    questionId: string;\n    modifiers: TestQuestionModiferModel[];\n}\n\nexport interface TestQuestionModiferModel {\n    name: string;\n    data: string;\n}\n\nexport interface SaveQuestionPointsValidation {\n    idModel: QuestionInSolutionIdModel;\n    answerPoints: number;\n    questionTotalPoints: number;\n    description: string;\n}\n\nexport interface QuestionInSolutionIdModel {\n    solutionId: string;\n    questionId: string;\n}","import { StudentSimpleModel } from \"./student-models\";\n\nexport interface CourseItemGlobalTestRestrictionModel {\n    courseThemeItemId: string;\n    testId: string;\n    testRestriction: TestRestrictionModel;\n}\n\nexport interface TestRestrictionModel {\n    maxTriesCount: number | null;\n    maxStartDate: string | null;\n}\n\nexport interface SearchStudentThemeItemTestRestrictionsRequest {\n    q: string;\n    courseThemeItemId: string;\n    testId: string;\n    isIndividual: boolean | null;\n    count: number | null;\n    offSet: number;\n}\n\nexport interface ThemeItemTestStudentRestrictionModel {\n    restriction: TestRestrictionModel;\n    isIndividual: boolean;\n    testId: string;\n    testName: string;\n    student: StudentSimpleModel;\n}\n\nexport interface CourseItemStudentTestRestrictionModel {\n    courseThemeItemId: string;\n    studentId: string;\n    testId: string;\n    isIndividual: boolean;\n    testRestriction: TestRestrictionModel;\n}\n\nexport interface TestRestrictionValidationResult {\n    testRestriction: TestRestrictionModel;\n    canStartTest: boolean;\n    restrictionRuleType: TestRestrictionValidationResultRuleType | null;\n    validationMessage: string;\n    solutionsCount: number;\n    attemptsLeft: number;\n}\n\nexport enum TestRestrictionValidationResultRuleType {\n    DateExpired = 'DateExpired',\n    AttemptsExceeded = 'AttemptsExceeded'\n}\n\nexport interface GetCourseThemeItemStudentTestRestrictionRequest {\n    courseThemeItemId: string;\n    testId: string;\n    studentId: string;\n}\n\nexport interface TestRestrictionValidationWithDeadLineWarningResult {\n    deadLineWarning: DeadLineWithWarningMessage;\n    restrictionValidationResult: TestRestrictionValidationResult;\n}\n\nexport interface CourseThemeItemStudentDeadlineWarningModel {\n    themeItemId: string;\n    courseThemeId: string;\n    deadLine: string;\n    warningMessage: string;\n}\n\nexport interface GetStudentCourseThemeItemsDeadlineWarningsRequest {\n    courseId: string;\n    studentId: string;\n}\n\nexport interface CourseThemeIdWithDeadlineWarnings {\n    courseThemeId: string;\n    deadlines: Array<DeadLineWithWarningMessage>;\n}\n\nexport interface DeadLineWithWarningMessage {\n    deadLine: string;\n    warningMessage: string;\n}\n\nexport interface CourseRemovingAllTestRestrictionsState {\n    taskId: string;\n    inProcess: boolean;\n    state: CourseRemovingAllTestRestrictionsStateModel;\n}\n\nexport interface CourseRemovingAllTestRestrictionsStateModel {\n    courseId: string;\n    themeIdsLeftToUpdate: Array<string>;\n    totalThemesToUpdateCount: number;\n    updateProgressPercents: number;\n}\n","export enum TestQuestionType {\n    SelectRightAnswerOrAnswers = 'SelectRightAnswerOrAnswers',\n    TypeRightAnswer = 'TypeRightAnswer',\n    DetailedAnswer = 'DetailedAnswer',\n    TypeAnswerWithErrors = 'TypeAnswerWithErrors',\n    ManyAnswersBoxes = 'ManyAnswersBoxes',\n    FillGaps = 'FillGaps'\n}\n\nexport enum GapType {\n    Select = 'Select',\n    Input = 'Input'\n}\n\nexport interface GapModel {\n    type: GapType;\n    correctAnswers: Array<string>;\n    answersToSelect: Array<string>;\n}\n\nexport interface GapsQuestionData {\n    gapText: string;\n    gaps: Array<GapModel>;\n}\n\nexport interface TestQuestionModel {\n    id: string;\n    title: string;\n    titleBodyMarkUp: string;\n    helpBodyMarkUp: string;\n    answerExplanationMarkUp: string;\n    versionId: string;\n    type: TestQuestionType;\n    selectRightAnswerOrAnswersData: SelectRightAnswerOrAnswersQuestionData;\n    typeRightAnswerQuestionData: TypeRightAnswerQuestionData;\n    typeAnswerWithErrorsData: TypeAnswerWithErrorsQuestionData;\n    manyAnswersBoxesData: ManyAnswersBoxesQuestionData;\n    gapsData: GapsQuestionData;\n}\n\nexport interface ManyAnswersBoxesQuestionData {\n    answerBoxes: Array<QuestionAnswerBox>;\n}\n\nexport interface QuestionAnswerBox {\n    label: string;\n    correctAnswer: string;\n}\n\nexport interface TypeAnswerWithErrorsQuestionData {\n    rightAnswer: string;\n    ignoreTextOrder: boolean;\n}\n\nexport interface SelectRightAnswerOrAnswersQuestionData {\n    selectRightAnswerTitle: string;\n    useRadio: boolean;\n    itemType: SelectRightAnswerOrAnswersQuestionDataItemType | null;\n    answers: Array<Answer>;\n}\n\n\nexport interface Answer {\n    text: string;\n    data: string;\n    isRightAnswer: boolean;\n}\n\n\nexport enum SelectRightAnswerOrAnswersQuestionDataItemType {\n    FileId = 'FileId',\n    MarkUp = 'MarkUp'\n}\n\nexport interface TypeRightAnswerQuestionData {\n    caseInSensitive: boolean;\n    rightAnswers: Array<string>;\n}\n","import { StudentGroupSimpleModel } from \"./group-models\";\nimport { StudentSimpleModel } from \"./student-models\";\n\nexport interface AddCoursePaymentRequest {\n    planId: string;\n    isPrivatePaymentPlan: boolean;\n    type: StudentCoursePaymentType;\n    courseId: string;\n    source: string;\n    sourceDescription: string;\n    paymentSystemId: string;\n}\n\nexport enum StudentCoursePaymentType {\n    BuyCourse = 'BuyCourse',\n    ExtendSubscription = 'ExtendSubscription'\n}\n\nexport interface AddCoursePaymentResult {\n    succeeded: boolean;\n    coursePaymentId: string;\n    errorMessage: string;\n}\n\nexport interface SetPaymentSystemForCoursePayment {\n    coursePaymentId: string;\n    paymentSystemId: string;\n}\n\nexport interface DemoPaymentDescription {\n    html: string;\n}\n\nexport interface StudentCoursePaymentModel {\n    id: string;\n    name: string;\n    description: string;\n    courseName: string;\n    courseMiniHtml: string;\n    courseDetailedHtml: string;\n    daysLength: number;\n    amount: number;\n    amountString: string;\n    paymentId: string;\n    studentGroupId: string;\n    paymentSystemId: string;\n    paymentSystemProviderName: string;\n    isFinished: boolean;\n    isPaid: boolean;\n    type: StudentCoursePaymentType;\n    studentProcessedToGroup: boolean;\n    hasError: boolean;\n    errorType: string;\n    errorMessage: string;\n    providerErrorType: string;\n    providerErrorMessage: string;\n    createdOnUtc: string;\n    paidOnUtc: string;\n    finishedOnUtc: string;\n}\n\nexport interface SearchStudentCoursePaymentsRequest {\n    q: string;\n    studentId: string;\n    groupId: string;\n    isPaid: boolean | null;\n    paymentType: StudentCoursePaymentType | null;\n    hasError: boolean | null;\n    count: number | null;\n    offSet: number;\n}\n\n\nexport interface StudentCoursePaymentDetailedModel {\n    id: string;\n    name: string;\n    description: string;\n    courseName: string;\n    courseMiniHtml: string;\n    courseDetailedHtml: string;\n    daysLength: number;\n    amount: number;\n    amountString: string;\n    paymentId: string;\n    paymentSystemId: string;\n    paymentSystemProviderName: string;\n    isFinished: boolean;\n    isPaid: boolean;\n    studentProcessedToGroup: boolean;\n    hasError: boolean;\n    errorType: string;\n    errorMessage: string;\n    providerErrorType: string;\n    providerErrorMessage: string;\n    createdOnUtc: string;\n    paidOnUtc: string;\n    finishedOnUtc: string;\n    type: StudentCoursePaymentType;\n    student: StudentSimpleModel;\n    group: StudentGroupSimpleModel;\n}\n\nexport interface EnumValueTypeWithDescriptionStudentCoursePaymentType {\n    type: StudentCoursePaymentType;\n    description: string;\n}","import { TestQuestionModel, TestQuestionType } from \"./question-models\";\n\nexport interface StudentTestQuestionStatisticDetailedModel {\n    id: string;\n    studentId: string;\n    questionVersionId: string;\n    errorsAnswersCount: number;\n    almostRightAnswersCount: number;\n    rightAnswersCount: number;\n    score: number;\n    question: TestQuestionModel;\n}\n\nexport interface SearchTestQuestionErrorsStatisticRequest {\n    isLastAnswerCorrect: boolean | null;\n    isActualQuestionVersion: boolean | null;\n    studentId: string;\n    questionTypes: Array<TestQuestionType>;\n    orderType: TestQuestionErrorsStatisticOrderType;\n    count: number | null;\n    offSet: number;\n}\n\nexport enum TestQuestionErrorsStatisticOrderType {\n    MostErrors = 'MostErrors',\n    RecentErrors = 'RecentErrors'\n}\n\nexport interface QuestionStatisticComputingState {\n    toComputeQuestionReportsCount: number;\n    notActualQuestionVersionReportsCount: number;\n    toComputeStudentSnapshotsCount: number;\n    toComputeStudentGroupSnapshotsCount: number;\n    toComputeAggregatedSnapshotRequestsCount: number;\n    toRecomputeIsActualVersionPropertyCount: number;\n    dataOnUtc: string;\n}\n\nexport interface StudentStatisticSnapshotValueModel {\n    studentId: string;\n    dataOnUtc: string;\n    computedOnUtc: string;\n    recomputingRequired: boolean;\n    checkedQuestionsCount: number;\n    tags: Array<StudentStatisticSnapshotTagValueModel>;\n    subjects: Array<StudentStatisticSnapshotSubjectValueModel>;\n}\n\nexport interface StudentStatisticSnapshotValueDebugInfoModel {\n    hasSnapshot: boolean;\n    studentId: string;\n    dataOnUtc: string;\n    computedOnUtc: string;\n    recomputingRequired: boolean;\n    lastRecomputingRequiredSetOnUtc: string;\n    checkedQuestionsCount: number;\n    lastQuestionAnsweredOnUtc: string;\n    lastQuestionAggregateComputedOnUtc: string;\n}\n\nexport interface StudentStatisticSnapshotTagValueModel {\n    tagId: string;\n    tagDisplayName: string;\n    statistic: ComputedStatisticPresentationModel;\n}\n\nexport interface ComputedStatisticPresentationModel {\n    errorsAnswersCount: number;\n    almostRightAnswersCount: number;\n    rightAnswersCount: number;\n    score: number;\n    attemptsWithScoreTotalCount: number;\n    totalAttemptsCount: number;\n    successRatePercents: string;\n    successRateRankValue: number;\n    earnedPoints: number;\n    totalPoints: number;\n}\n\nexport interface StudentStatisticSnapshotSubjectValueModel {\n    subjectId: string;\n    subjectName: string;\n    statistic: ComputedStatisticPresentationModel;\n}","/**\n * Роли для модуля Tutor\n */\nexport class TutorRoles {\n\n    /**\n     * Куратор - проверяет домашние задания студентов (учеников).\n     */\n    static readonly curator: string = 'Tutor.Curator';\n\n    /**\n     * Администратор - управляет и настраивает платформу\n     */\n    static readonly admin: string = 'Tutor.Admin';\n\n    /**\n     * Студент (ученик) - проходит курсы, решает тесты, просматривает материалы.\n     */\n    static readonly student: string = 'Tutor.Student';\n\n    /**\n     * Пользователь, который может вносить вопросы\n     */\n    static readonly testAuthor: string = 'Tutor.TestAuthor';\n\n    /**\n     * Администратор конкретной школы\n     */\n    static readonly schoolAdmin: string = 'Tutor.SchoolAdmin';\n}","export class ImageSrcExtensions {\n\n    /**\n     * Вовзращает полный путь к изображению по идентификатору файла и типу размера изображения \n     * @param publicImageUrlFormat Форматированная строка содержащая {fileId} и {sizeType} для замены\n     * @param imageFileId Идентификатор изображения\n     * @param imageType Тип изображения\n     * @returns \n     */\n    static createImagePath(publicImageUrlFormat: string, imageFileId: number | string, sizeType = 'Medium'): string | null {\n        \n        if (imageFileId === null || imageFileId === undefined) {\n            return null;\n        }\n\n        return publicImageUrlFormat.replace('{sizeType}', sizeType).replace('{fileId}', imageFileId.toString())\n    }\n}\n","/*\n * Public API Surface of tutor-logic\n */\n\nexport * from './lib/tutor-logic.module';\nexport * from './lib/services';\nexport * from './lib/models';\nexport * from './lib/consts';\nexport * from './lib/extensions'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}