# HeadHuntService ## Назначение Сервис вакансий и откликов. Позволяет публиковать и редактировать предложения по работе (офферы), управлять их статусами (публикация, архив), а также обрабатывать отклики кандидатов. Контроль доступа реализуется через NBSession (текущая сессия пользователя). ## Публичные методы Админский функционал доступен только для [AccessTypeEnum](/common/accessTypeEnum.md).HeadHuntControl. * `GetWorkOffersAsync(onlyIsPublished = true): WorkOffer[]` - вернуть список доступных вакансий. Если `onlyIsPublished == false`, доступно только администратору. * `GetWorkOfferAsync(offerId): WorkOfferDetails` - получить одну вакансию по идентификатору. * `PostWorkOfferResponseAsync(response): WorkOfferResponse` - оставить отклик кандидата. Все следующие методы исключительно для администрации: * `UpdateWorkOfferAsync(offer): WorkOffer` - создать (если `Id == 0`) или обновить вакансию (редактируются только определённые поля). * `SetPublishedAsync(offerId, isPublished): void` - включить или выключить публикацию вакансии. * `ArchiveOfferAsync(offerId): void` - перевести вакансию в архив. * `GetActiveWorkOfferResponsesAsync(forOfferId): WorkOfferResponse[]` - получить список откликов по вакансии. * `ProcessWorkOfferResponseAsync(responseId): void` - обработать отклик (например, подтвердить или отклонить). ## Модели ### WorkOffer ``` int Id – идентификатор вакансии string Header – заголовок оффера string City – город string[] SubHeaderInfo – краткая дополнительная информация через запятую string EmploymentType – тип занятости (полная, частичная и т. д.) string Schedule – график работы string Experience – требуемый опыт string Salary – зарплата string DescriptionHTML – полное описание вакансии string Contacts – блок контактов string[] Tags – набор тегов bool IsPublished – признак публикации bool IsDeleted – признак удаления DateTimeOffset Created – дата создания ``` ### WorkOfferResponse ``` long Id – идентификатор отклика int OfferId – идентификатор вакансии, на которую отклик string Name – имя кандидата string Phone – телефон кандидата string Email – email кандидата string Comment – комментарий/сопроводительное письмо string HHLink – ссылка на профиль в HeadHunter или резюме bool IsProcessed – признак, что отклик обработан DateTimeOffset Created – дата создания отклика ``` ### WorkOfferDetails ``` WorkOffer WorkOffer – вакансия int ResponsesCount – общее число откликов int ResponsesProcessedCount – число обработанных откликов ``` ## DB Содержит таблицы и индексы ``` -- Migration 1 offers ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Header TEXT NOT NULL, City TEXT NOT NULL, SubHeaderInfo TEXT NOT NULL, EmploymentType TEXT NOT NULL, Schedule TEXT NOT NULL, Experience TEXT NOT NULL, Salary TEXT NOT NULL, DescriptionHTML TEXT NOT NULL, Contacts TEXT NOT NULL, Tags TEXT NOT NULL, IsPublished BOOLEAN NOT NULL DEFAULT FALSE, IsDeleted BOOLEAN NOT NULL DEFAULT FALSE, Created NUMBER NOT NULL ); responses ( Id INTEGER PRIMARY KEY AUTOINCREMENT, OfferId INTEGER NOT NULL, Name TEXT NOT NULL, Phone TEXT NOT NULL, Email TEXT NOT NULL, Comment TEXT NOT NULL, HHLink TEXT NOT NULL, IsProcessed BOOLEAN NOT NULL DEFAULT FALSE, Created NUMBER NOT NULL ) ``` [Назад](/index.md)