Skip to content

Lead / Worker DTO

Описание сущностей и типов из src/dto/lead/worker/.

Обогащено snapshot-данными бэкенд-DTO (0 из 7 типов сопоставлено, snapshot от 2026-05-05T13:21:51.699Z).

Содержание


CreateWorkerLeadAddressRequestDto

Address for a public worker-lead POST. Mirrors CreateWorkerLeadAddressRequestDto.

Поля

ПолеТипОбязательноеОписание
googlePlaceIdstringда
countrystringда
regionstringда
regionCodeIdnumber | nullнет
citystringда
streetstringда
housestringда
flatstring | nullнет
postalCodestringда
locationPointDto | nullнет

Пример

json
{
  "googlePlaceId": "uuid",
  "country": "string",
  "region": "string",
  "regionCodeId": 0,
  "city": "string",
  "street": "string",
  "house": "string",
  "flat": "2026-05-05T08:00:00Z",
  "postalCode": "string",
  "location": "<pointdto>"
}


CreateWorkerLeadRequestDto

Payload for the public landing-page worker-lead POST (Api/WorkerLeads). Mirrors CreateWorkerLeadRequestDto.

Поля

ПолеТипОбязательноеОписание
firstNamestringда
lastNamestringда
genderGenderParamда
nationalitystring | nullнет
birthDatestring | nullнет
phoneNumberstringда
emailstringда
employmentTypeEmploymentTypeParamда
paidVacationPerYearCountnumber | nullнет
hasExperienceboolean | nullнет
hasCertificateboolean | nullнет
goToWorkDatestring | nullнет
hasAllergyboolean | nullнет
allergyCommentstring | nullнет
transportTypesTransportTypeParam[]да
workWithMenboolean | nullнет
workWithWomenboolean | nullнет
childsboolean | nullнет
religionstring | nullнет
commentstring | nullнет
maxClientsCountnumber | nullнет
referralSourceReferralSourceDtoдаHow the applicant heard about us. Required by the form.
addressesCreateWorkerLeadAddressRequestDto[]да
utmUtmRequestDto | nullнет
websitestring | nullнетHoneypot anti-spam field — leave empty.

Пример

json
{
  "firstName": "string",
  "lastName": "string",
  "gender": "<GenderParam>",
  "nationality": "string",
  "birthDate": "2026-05-05T08:00:00Z",
  "phoneNumber": "+49123456789",
  "email": "user@example.com",
  "employmentType": "<EmploymentTypeParam>",
  "paidVacationPerYearCount": 0,
  "hasExperience": false,
  "hasCertificate": false,
  "goToWorkDate": "2026-05-05T08:00:00Z",
  "hasAllergy": false,
  "allergyComment": "string",
  "transportTypes": [],
  "workWithMen": false,
  "workWithWomen": false,
  "childs": false,
  "religion": "string",
  "comment": "string",
  "maxClientsCount": 0,
  "referralSource": "<ReferralSourceDto>",
  "addresses": [],
  "utm": "<utmrequestdto>",
  "website": "string"
}


GetWorkerLeadsRequestDto

Filters for GET Api/WorkerLeads. Every field except pagination is optional — an absent field means the condition is not applied. Passing several narrows by all of them.

Address filters (city, postalCode, street, regionCodeIds) match if ANY of the lead's addresses matches.

Поля

ПолеТипОбязательноеОписание
paginationPaginationда
searchQuerystringнетFull-text search over first and last name together. Independent of the per-field filters below; word-based, so it does not match a partial word.
createFromFilterstringнетISO date. Kept for compatibility — createdAt is the range form.
createToFilterstringнетISO date. Kept for compatibility — createdAt is the range form.
firstNamestringнетPrefix match on the first name.
lastNamestringнетPrefix match on the last name.
createdAtPaginationRangeFilter<string>нетISO 8601 range over the creation timestamp.
updatedAtPaginationRangeFilter<string>нетISO 8601 range over the last-update timestamp. Leads never updated are excluded.
gendersGenderParam[]нет
birthDatePaginationRangeFilter<string>нетISO date (yyyy-MM-dd) range over the birth date.
nationalitystringнетPrefix match on the nationality.
religionstringнетPrefix match on the religion.
employmentTypesEmploymentTypeParam[]нет
referralSourcesReferralSourceDto[]нет
transportTypesTransportTypeParam[]нетMatches leads having any of the listed transport types.
hasExperiencebooleanнет
hasCertificatebooleanнет
hasAllergybooleanнет
childsbooleanнет
workWithMenbooleanнет
workWithWomenbooleanнет
goToWorkDatePaginationRangeFilter<string>нетISO date (yyyy-MM-dd) range.
maxClientsCountPaginationRangeFilter<number>нет
paidVacationPerYearCountPaginationRangeFilter<number>нет
workerCreatedbooleanнетWhether a worker has already been created from this lead.
workerNotCreatedReasonstringнетPrefix match on the reason the worker was not created.
linkedWorkerIdnumberнетWorker this lead was converted into.
citystringнетPrefix match on any of the lead addresses.
postalCodestringнетPrefix match on any of the lead addresses.
streetstringнетPrefix match on any of the lead addresses.
regionCodeIdsnumber[]нет
utmSourcestringнетPrefix match on the UTM source.
utmMediumstringнетPrefix match on the UTM medium.
utmCampaignstringнетPrefix match on the UTM campaign.
utmTermstringнетPrefix match on the UTM term.
utmContentstringнетPrefix match on the UTM content.
phoneNumberstringнетExact match against the linked phone contacts. Normalized before comparison (digits only, 49-prefixed), so a partial number does not match.
emailstringнетExact match against the linked email contacts. Stored as a value object, so a partial address does not match — pass the full address.
commentstringнетSubstring match on the general comment.
allergyCommentstringнетSubstring match on the allergy comment.

Пример

json
{
  "pagination": "<Pagination>",
  "searchQuery": "string",
  "createFromFilter": "string",
  "createToFilter": "string",
  "firstName": "string",
  "lastName": "string",
  "createdAt": "<PaginationRangeFilter<string>>",
  "updatedAt": "<PaginationRangeFilter<string>>",
  "genders": [],
  "birthDate": "<PaginationRangeFilter<string>>",
  "nationality": "string",
  "religion": "string",
  "employmentTypes": [],
  "referralSources": [],
  "transportTypes": [],
  "hasExperience": false,
  "hasCertificate": false,
  "hasAllergy": false,
  "childs": false,
  "workWithMen": false,
  "workWithWomen": false,
  "goToWorkDate": "<PaginationRangeFilter<string>>",
  "maxClientsCount": "<PaginationRangeFilter<number>>",
  "paidVacationPerYearCount": "<PaginationRangeFilter<number>>",
  "workerCreated": false,
  "workerNotCreatedReason": "string",
  "linkedWorkerId": 0,
  "city": "string",
  "postalCode": "string",
  "street": "string",
  "regionCodeIds": [],
  "utmSource": "string",
  "utmMedium": "string",
  "utmCampaign": "string",
  "utmTerm": "string",
  "utmContent": "string",
  "phoneNumber": "+49123456789",
  "email": "user@example.com",
  "comment": "string",
  "allergyComment": "string"
}


PaginatedWorkerLeadsResponseDto

Поля

ПолеТипОбязательноеОписание
paginationPaginationResult<WorkerLeadDto>да

Пример

json
{
  "pagination": "<PaginationResult<WorkerLeadDto>>"
}


WorkerLeadAddressDto

Worker lead address. Mirrors WorkerLeadAddressModel JSON shape; location is WKT ("POINT (lng lat)") per PointJsonConverter.

Поля

ПолеТипОбязательноеОписание
idnumberда
createDateTimestringда
updateDateTimestring | nullнет
deleteDateTimestring | nullнет
workerLeadIdnumberда
googlePlaceIdstringда
countrystringда
regionstringда
regionCodeIdnumber | nullнет
citystringда
streetstringда
housestringда
flatstring | nullнет
postalCodestringда
locationstring | nullнет

Пример

json
{
  "id": 0,
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "workerLeadId": 0,
  "googlePlaceId": "uuid",
  "country": "string",
  "region": "string",
  "regionCodeId": 0,
  "city": "string",
  "street": "string",
  "house": "string",
  "flat": "2026-05-05T08:00:00Z",
  "postalCode": "string",
  "location": "string"
}


WorkerLeadDto

Worker lead — landing-page application. Mirrors WorkerLeadModel JSON shape.

Поля

ПолеТипОбязательноеОписание
idnumberда
createDateTimestringда
updateDateTimestring | nullнет
deleteDateTimestring | nullнет
firstNamestringда
lastNamestringда
genderGenderParamда
nationalitystring | nullнет
birthDatestring | nullнет
phoneLinkContactsPhoneLinkContactDto[]да
emailLinkContactsEmailLinkContactDto[]да
employmentTypeEmploymentTypeParamда
paidVacationPerYearCountnumber | nullнет
hasExperienceboolean | nullнет
hasCertificateboolean | nullнет
goToWorkDatestring | nullнет
hasAllergyboolean | nullнет
allergyCommentstring | nullнет
transportTypesTransportTypeParam[]да
workWithMenboolean | nullнет
workWithWomenboolean | nullнет
childsboolean | nullнет
religionstring | nullнет
commentstring | nullнет
maxClientsCountnumber | nullнет
addressesWorkerLeadAddressDto[]да
utmSourcestring | nullнет
utmMediumstring | nullнет
utmCampaignstring | nullнет
utmTermstring | nullнет
utmContentstring | nullнет
workerCreatedbooleanдаOutcome of the parallel Worker creation triggered by the landing-page POST.
workerNotCreatedReasonWorkerLeadFailReason | nullнетShort failure code when workerCreated === false; null on success.
linkedWorkerIdnumber | nullнетId of the Worker created from this lead; null when workerCreated === false.

Пример

json
{
  "id": 0,
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "firstName": "string",
  "lastName": "string",
  "gender": "<GenderParam>",
  "nationality": "string",
  "birthDate": "2026-05-05T08:00:00Z",
  "phoneLinkContacts": [],
  "emailLinkContacts": [],
  "employmentType": "<EmploymentTypeParam>",
  "paidVacationPerYearCount": 0,
  "hasExperience": false,
  "hasCertificate": false,
  "goToWorkDate": "2026-05-05T08:00:00Z",
  "hasAllergy": false,
  "allergyComment": "string",
  "transportTypes": [],
  "workWithMen": false,
  "workWithWomen": false,
  "childs": false,
  "religion": "string",
  "comment": "string",
  "maxClientsCount": 0,
  "addresses": [],
  "utmSource": "string",
  "utmMedium": "string",
  "utmCampaign": "string",
  "utmTerm": "string",
  "utmContent": "string",
  "workerCreated": false,
  "workerNotCreatedReason": "<workerleadfailreason>",
  "linkedWorkerId": 0
}


WorkerLeadFailReason

"user-exists" | "internal-error"