Lead / Worker DTO
Описание сущностей и типов из src/dto/lead/worker/.
Обогащено snapshot-данными бэкенд-DTO (0 из 7 типов сопоставлено, snapshot от 2026-05-05T13:21:51.699Z).
Содержание
- CreateWorkerLeadAddressRequestDto
- CreateWorkerLeadRequestDto
- GetWorkerLeadsRequestDto
- PaginatedWorkerLeadsResponseDto
- WorkerLeadAddressDto
- WorkerLeadDto
- WorkerLeadFailReason
CreateWorkerLeadAddressRequestDto
Address for a public worker-lead POST. Mirrors CreateWorkerLeadAddressRequestDto.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
googlePlaceId | string | да | — |
country | string | да | — |
region | string | да | — |
regionCodeId | number | null | нет | — |
city | string | да | — |
street | string | да | — |
house | string | да | — |
flat | string | null | нет | — |
postalCode | string | да | — |
location | PointDto | null | нет | — |
Пример
{
"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.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
firstName | string | да | — |
lastName | string | да | — |
gender | GenderParam | да | — |
nationality | string | null | нет | — |
birthDate | string | null | нет | — |
phoneNumber | string | да | — |
email | string | да | — |
employmentType | EmploymentTypeParam | да | — |
paidVacationPerYearCount | number | null | нет | — |
hasExperience | boolean | null | нет | — |
hasCertificate | boolean | null | нет | — |
goToWorkDate | string | null | нет | — |
hasAllergy | boolean | null | нет | — |
allergyComment | string | null | нет | — |
transportTypes | TransportTypeParam[] | да | — |
workWithMen | boolean | null | нет | — |
workWithWomen | boolean | null | нет | — |
childs | boolean | null | нет | — |
religion | string | null | нет | — |
comment | string | null | нет | — |
maxClientsCount | number | null | нет | — |
referralSource | ReferralSourceDto | да | How the applicant heard about us. Required by the form. |
addresses | CreateWorkerLeadAddressRequestDto[] | да | — |
utm | UtmRequestDto | null | нет | — |
website | string | null | нет | Honeypot anti-spam field — leave empty. |
Пример
{
"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.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
pagination | Pagination | да | — |
searchQuery | string | нет | 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. |
createFromFilter | string | нет | ISO date. Kept for compatibility — createdAt is the range form. |
createToFilter | string | нет | ISO date. Kept for compatibility — createdAt is the range form. |
firstName | string | нет | Prefix match on the first name. |
lastName | string | нет | Prefix match on the last name. |
createdAt | PaginationRangeFilter<string> | нет | ISO 8601 range over the creation timestamp. |
updatedAt | PaginationRangeFilter<string> | нет | ISO 8601 range over the last-update timestamp. Leads never updated are excluded. |
genders | GenderParam[] | нет | — |
birthDate | PaginationRangeFilter<string> | нет | ISO date (yyyy-MM-dd) range over the birth date. |
nationality | string | нет | Prefix match on the nationality. |
religion | string | нет | Prefix match on the religion. |
employmentTypes | EmploymentTypeParam[] | нет | — |
referralSources | ReferralSourceDto[] | нет | — |
transportTypes | TransportTypeParam[] | нет | Matches leads having any of the listed transport types. |
hasExperience | boolean | нет | — |
hasCertificate | boolean | нет | — |
hasAllergy | boolean | нет | — |
childs | boolean | нет | — |
workWithMen | boolean | нет | — |
workWithWomen | boolean | нет | — |
goToWorkDate | PaginationRangeFilter<string> | нет | ISO date (yyyy-MM-dd) range. |
maxClientsCount | PaginationRangeFilter<number> | нет | — |
paidVacationPerYearCount | PaginationRangeFilter<number> | нет | — |
workerCreated | boolean | нет | Whether a worker has already been created from this lead. |
workerNotCreatedReason | string | нет | Prefix match on the reason the worker was not created. |
linkedWorkerId | number | нет | Worker this lead was converted into. |
city | string | нет | Prefix match on any of the lead addresses. |
postalCode | string | нет | Prefix match on any of the lead addresses. |
street | string | нет | Prefix match on any of the lead addresses. |
regionCodeIds | number[] | нет | — |
utmSource | string | нет | Prefix match on the UTM source. |
utmMedium | string | нет | Prefix match on the UTM medium. |
utmCampaign | string | нет | Prefix match on the UTM campaign. |
utmTerm | string | нет | Prefix match on the UTM term. |
utmContent | string | нет | Prefix match on the UTM content. |
phoneNumber | string | нет | Exact match against the linked phone contacts. Normalized before comparison (digits only, 49-prefixed), so a partial number does not match. |
email | string | нет | Exact match against the linked email contacts. Stored as a value object, so a partial address does not match — pass the full address. |
comment | string | нет | Substring match on the general comment. |
allergyComment | string | нет | Substring match on the allergy comment. |
Пример
{
"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
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
pagination | PaginationResult<WorkerLeadDto> | да | — |
Пример
{
"pagination": "<PaginationResult<WorkerLeadDto>>"
}WorkerLeadAddressDto
Worker lead address. Mirrors WorkerLeadAddressModel JSON shape; location is WKT ("POINT (lng lat)") per PointJsonConverter.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | — |
createDateTime | string | да | — |
updateDateTime | string | null | нет | — |
deleteDateTime | string | null | нет | — |
workerLeadId | number | да | — |
googlePlaceId | string | да | — |
country | string | да | — |
region | string | да | — |
regionCodeId | number | null | нет | — |
city | string | да | — |
street | string | да | — |
house | string | да | — |
flat | string | null | нет | — |
postalCode | string | да | — |
location | string | null | нет | — |
Пример
{
"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.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | — |
createDateTime | string | да | — |
updateDateTime | string | null | нет | — |
deleteDateTime | string | null | нет | — |
firstName | string | да | — |
lastName | string | да | — |
gender | GenderParam | да | — |
nationality | string | null | нет | — |
birthDate | string | null | нет | — |
phoneLinkContacts | PhoneLinkContactDto[] | да | — |
emailLinkContacts | EmailLinkContactDto[] | да | — |
employmentType | EmploymentTypeParam | да | — |
paidVacationPerYearCount | number | null | нет | — |
hasExperience | boolean | null | нет | — |
hasCertificate | boolean | null | нет | — |
goToWorkDate | string | null | нет | — |
hasAllergy | boolean | null | нет | — |
allergyComment | string | null | нет | — |
transportTypes | TransportTypeParam[] | да | — |
workWithMen | boolean | null | нет | — |
workWithWomen | boolean | null | нет | — |
childs | boolean | null | нет | — |
religion | string | null | нет | — |
comment | string | null | нет | — |
maxClientsCount | number | null | нет | — |
addresses | WorkerLeadAddressDto[] | да | — |
utmSource | string | null | нет | — |
utmMedium | string | null | нет | — |
utmCampaign | string | null | нет | — |
utmTerm | string | null | нет | — |
utmContent | string | null | нет | — |
workerCreated | boolean | да | Outcome of the parallel Worker creation triggered by the landing-page POST. |
workerNotCreatedReason | WorkerLeadFailReason | null | нет | Short failure code when workerCreated === false; null on success. |
linkedWorkerId | number | null | нет | Id of the Worker created from this lead; null when workerCreated === false. |
Пример
{
"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"