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"