@iconicompany/imarketplacetypes 0.0.0-snapshot.20251208135153.ed4ba730
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +4 -0
- package/.github/workflows/publish-release.yml +27 -0
- package/.github/workflows/publish-snapshot.yml +44 -0
- package/dist/contracts/job-contract.d.ts +22 -0
- package/dist/contracts/job-contract.js +1 -0
- package/dist/contracts/offer-contract.d.ts +19 -0
- package/dist/contracts/offer-contract.js +1 -0
- package/dist/entities/company/index.d.ts +1 -0
- package/dist/entities/company/index.js +1 -0
- package/dist/entities/company/model.d.ts +34 -0
- package/dist/entities/company/model.js +1 -0
- package/dist/entities/dictionary/category/index.d.ts +1 -0
- package/dist/entities/dictionary/category/index.js +1 -0
- package/dist/entities/dictionary/category/model.d.ts +6 -0
- package/dist/entities/dictionary/category/model.js +1 -0
- package/dist/entities/dictionary/city/index.d.ts +1 -0
- package/dist/entities/dictionary/city/index.js +1 -0
- package/dist/entities/dictionary/city/model.d.ts +6 -0
- package/dist/entities/dictionary/city/model.js +1 -0
- package/dist/entities/dictionary/country/index.d.ts +1 -0
- package/dist/entities/dictionary/country/index.js +1 -0
- package/dist/entities/dictionary/country/model.d.ts +6 -0
- package/dist/entities/dictionary/country/model.js +1 -0
- package/dist/entities/dictionary/dataSource/index.d.ts +1 -0
- package/dist/entities/dictionary/dataSource/index.js +1 -0
- package/dist/entities/dictionary/dataSource/model.d.ts +8 -0
- package/dist/entities/dictionary/dataSource/model.js +1 -0
- package/dist/entities/dictionary/grade/index.d.ts +1 -0
- package/dist/entities/dictionary/grade/index.js +1 -0
- package/dist/entities/dictionary/grade/model.d.ts +6 -0
- package/dist/entities/dictionary/grade/model.js +1 -0
- package/dist/entities/dictionary/index.d.ts +14 -0
- package/dist/entities/dictionary/index.js +1 -0
- package/dist/entities/dictionary/industry/index.d.ts +1 -0
- package/dist/entities/dictionary/industry/index.js +1 -0
- package/dist/entities/dictionary/industry/model.d.ts +6 -0
- package/dist/entities/dictionary/industry/model.js +1 -0
- package/dist/entities/dictionary/language/index.d.ts +1 -0
- package/dist/entities/dictionary/language/index.js +1 -0
- package/dist/entities/dictionary/language/model.d.ts +6 -0
- package/dist/entities/dictionary/language/model.js +1 -0
- package/dist/entities/dictionary/media/index.d.ts +1 -0
- package/dist/entities/dictionary/media/index.js +1 -0
- package/dist/entities/dictionary/media/model.d.ts +16 -0
- package/dist/entities/dictionary/media/model.js +1 -0
- package/dist/entities/dictionary/offerStatus/index.d.ts +1 -0
- package/dist/entities/dictionary/offerStatus/index.js +1 -0
- package/dist/entities/dictionary/offerStatus/model.d.ts +7 -0
- package/dist/entities/dictionary/offerStatus/model.js +1 -0
- package/dist/entities/dictionary/permission/index.d.ts +1 -0
- package/dist/entities/dictionary/permission/index.js +1 -0
- package/dist/entities/dictionary/permission/model.d.ts +8 -0
- package/dist/entities/dictionary/permission/model.js +1 -0
- package/dist/entities/dictionary/role/index.d.ts +1 -0
- package/dist/entities/dictionary/role/index.js +1 -0
- package/dist/entities/dictionary/role/model.d.ts +12 -0
- package/dist/entities/dictionary/role/model.js +1 -0
- package/dist/entities/dictionary/service/index.d.ts +1 -0
- package/dist/entities/dictionary/service/index.js +1 -0
- package/dist/entities/dictionary/service/model.d.ts +32 -0
- package/dist/entities/dictionary/service/model.js +1 -0
- package/dist/entities/dictionary/skill/index.d.ts +1 -0
- package/dist/entities/dictionary/skill/index.js +1 -0
- package/dist/entities/dictionary/skill/model.d.ts +7 -0
- package/dist/entities/dictionary/skill/model.js +1 -0
- package/dist/entities/dictionary/specialization/index.d.ts +1 -0
- package/dist/entities/dictionary/specialization/index.js +1 -0
- package/dist/entities/dictionary/specialization/model.d.ts +9 -0
- package/dist/entities/dictionary/specialization/model.js +1 -0
- package/dist/entities/index.d.ts +6 -0
- package/dist/entities/index.js +1 -0
- package/dist/entities/job/index.d.ts +1 -0
- package/dist/entities/job/index.js +1 -0
- package/dist/entities/job/model.d.ts +64 -0
- package/dist/entities/job/model.js +1 -0
- package/dist/entities/offer/index.d.ts +1 -0
- package/dist/entities/offer/index.js +1 -0
- package/dist/entities/offer/model.d.ts +43 -0
- package/dist/entities/offer/model.js +1 -0
- package/dist/entities/specialist/index.d.ts +1 -0
- package/dist/entities/specialist/index.js +1 -0
- package/dist/entities/specialist/model.d.ts +100 -0
- package/dist/entities/specialist/model.js +1 -0
- package/dist/entities/user/index.d.ts +1 -0
- package/dist/entities/user/index.js +1 -0
- package/dist/entities/user/model.d.ts +23 -0
- package/dist/entities/user/model.js +1 -0
- package/dist/services/job-service.d.ts +8 -0
- package/dist/services/job-service.js +1 -0
- package/dist/services/offer-service.d.ts +20 -0
- package/dist/services/offer-service.js +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.js +1 -0
- package/package.json +32 -0
- package/src/contracts/job-contract.ts +24 -0
- package/src/contracts/offer-contract.ts +18 -0
- package/src/entities/company/index.ts +1 -0
- package/src/entities/company/model.ts +37 -0
- package/src/entities/dictionary/category/index.ts +1 -0
- package/src/entities/dictionary/category/model.ts +6 -0
- package/src/entities/dictionary/city/index.ts +1 -0
- package/src/entities/dictionary/city/model.ts +6 -0
- package/src/entities/dictionary/country/index.ts +1 -0
- package/src/entities/dictionary/country/model.ts +6 -0
- package/src/entities/dictionary/dataSource/index.ts +1 -0
- package/src/entities/dictionary/dataSource/model.ts +8 -0
- package/src/entities/dictionary/grade/index.ts +1 -0
- package/src/entities/dictionary/grade/model.ts +6 -0
- package/src/entities/dictionary/index.ts +14 -0
- package/src/entities/dictionary/industry/index.ts +1 -0
- package/src/entities/dictionary/industry/model.ts +6 -0
- package/src/entities/dictionary/language/index.ts +1 -0
- package/src/entities/dictionary/language/model.ts +6 -0
- package/src/entities/dictionary/media/index.ts +1 -0
- package/src/entities/dictionary/media/model.ts +16 -0
- package/src/entities/dictionary/offerStatus/index.ts +1 -0
- package/src/entities/dictionary/offerStatus/model.ts +7 -0
- package/src/entities/dictionary/permission/index.ts +1 -0
- package/src/entities/dictionary/permission/model.ts +8 -0
- package/src/entities/dictionary/role/index.ts +1 -0
- package/src/entities/dictionary/role/model.ts +13 -0
- package/src/entities/dictionary/service/index.ts +1 -0
- package/src/entities/dictionary/service/model.ts +35 -0
- package/src/entities/dictionary/skill/index.ts +1 -0
- package/src/entities/dictionary/skill/model.ts +7 -0
- package/src/entities/dictionary/specialization/index.ts +1 -0
- package/src/entities/dictionary/specialization/model.ts +11 -0
- package/src/entities/index.ts +8 -0
- package/src/entities/job/index.ts +1 -0
- package/src/entities/job/model.ts +74 -0
- package/src/entities/offer/index.ts +1 -0
- package/src/entities/offer/model.ts +59 -0
- package/src/entities/specialist/index.ts +1 -0
- package/src/entities/specialist/model.ts +119 -0
- package/src/entities/user/index.ts +1 -0
- package/src/entities/user/model.ts +30 -0
- package/src/services/job-service.ts +16 -0
- package/src/services/offer-service.ts +31 -0
- package/src/types.ts +8 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Industry, Media, Language, Country, City, DataSource, Grade, Service, Skill, Specialization } from '@/entities/dictionary';
|
|
2
|
+
import type { User } from '@/entities/user';
|
|
3
|
+
import type { Company } from '@/entities/company';
|
|
4
|
+
interface DefaultSpecialist {
|
|
5
|
+
id: string;
|
|
6
|
+
user?: (string | null) | User;
|
|
7
|
+
externalId?: string | null;
|
|
8
|
+
title?: string | null;
|
|
9
|
+
name?: string | null;
|
|
10
|
+
top?: boolean | null;
|
|
11
|
+
firstName?: string | null;
|
|
12
|
+
lastName?: string | null;
|
|
13
|
+
middleName?: string | null;
|
|
14
|
+
birthDate?: string | null;
|
|
15
|
+
experience?: {
|
|
16
|
+
name?: string | null;
|
|
17
|
+
start?: string | null;
|
|
18
|
+
end?: string | null;
|
|
19
|
+
untilNow?: boolean | null;
|
|
20
|
+
company?: string | null;
|
|
21
|
+
position?: string | null;
|
|
22
|
+
industry?: (string | null) | Industry;
|
|
23
|
+
description?: string | null;
|
|
24
|
+
aboutTeam?: string | null;
|
|
25
|
+
achievements?: string | null;
|
|
26
|
+
stack?: (string | Skill)[] | null;
|
|
27
|
+
id?: string | null;
|
|
28
|
+
}[] | null;
|
|
29
|
+
workFormat?: ('remote' | 'office' | 'mixed') | null;
|
|
30
|
+
employmentType?: ('full' | 'short') | null;
|
|
31
|
+
additionalEducations?: {
|
|
32
|
+
name?: string | null;
|
|
33
|
+
year?: number | null;
|
|
34
|
+
file?: (string | null) | Media;
|
|
35
|
+
id?: string | null;
|
|
36
|
+
}[] | null;
|
|
37
|
+
educations?: {
|
|
38
|
+
name?: string | null;
|
|
39
|
+
level: 'secondaryGeneral' | 'CandidateOfSciences' | 'masterOfScience' | 'higher' | 'unfinishedHigher' | 'secondary' | 'other';
|
|
40
|
+
major?: string | null;
|
|
41
|
+
year?: number | null;
|
|
42
|
+
id?: string | null;
|
|
43
|
+
}[] | null;
|
|
44
|
+
salary?: {
|
|
45
|
+
amount?: number | null;
|
|
46
|
+
currency?: ('RUB' | 'EUR' | 'USD') | null;
|
|
47
|
+
hourlyRate?: number | null;
|
|
48
|
+
};
|
|
49
|
+
contacts?: {
|
|
50
|
+
phone?: string | null;
|
|
51
|
+
email?: string | null;
|
|
52
|
+
telegram?: string | null;
|
|
53
|
+
other?: string | null;
|
|
54
|
+
};
|
|
55
|
+
language?: {
|
|
56
|
+
language?: (string | null) | Language;
|
|
57
|
+
level?: ('A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2' | 'L1' | '-') | null;
|
|
58
|
+
id?: string | null;
|
|
59
|
+
}[] | null;
|
|
60
|
+
availableFrom?: string | null;
|
|
61
|
+
employment?: ('full' | 'part' | 'project' | 'probation') | null;
|
|
62
|
+
relocation?: ('noRelocation' | 'relocation' | 'relocationDesirable') | null;
|
|
63
|
+
schedule?: ('remote' | 'shiftWork' | 'full' | 'flexible') | null;
|
|
64
|
+
hasVehicle?: boolean | null;
|
|
65
|
+
driveExperience?: string | null;
|
|
66
|
+
businessTripReadiness?: ('never' | 'ready' | 'sometimes') | null;
|
|
67
|
+
foreignProjectsReadiness?: ('yes' | 'no') | null;
|
|
68
|
+
age?: number | null;
|
|
69
|
+
status?: ('created' | 'archive') | null;
|
|
70
|
+
citizenship?: {
|
|
71
|
+
name: string | Country;
|
|
72
|
+
id?: string | null;
|
|
73
|
+
}[] | null;
|
|
74
|
+
jobSearchStatus?: ('active' | 'open' | 'notLooking') | null;
|
|
75
|
+
driverLicenseTypes?: {
|
|
76
|
+
type: string;
|
|
77
|
+
id?: string | null;
|
|
78
|
+
}[] | null;
|
|
79
|
+
travelTime?: ('any' | 'lessThanHour' | 'fromHourToOneAndHalf') | null;
|
|
80
|
+
aboutMe?: string | null;
|
|
81
|
+
gender?: ('female' | 'male') | null;
|
|
82
|
+
img?: (string | null) | Media;
|
|
83
|
+
skills?: (string | Skill)[] | null;
|
|
84
|
+
company?: (string | null) | Company;
|
|
85
|
+
grade?: (string | null) | Grade;
|
|
86
|
+
specialization?: (string | null) | Specialization;
|
|
87
|
+
city?: (string | null) | City;
|
|
88
|
+
country?: (string | null) | Country;
|
|
89
|
+
services?: (string | Service)[] | null;
|
|
90
|
+
visibility?: ('visible' | 'hidden') | null;
|
|
91
|
+
skillsExtracted?: boolean | null;
|
|
92
|
+
formattedExperienceSkills?: {
|
|
93
|
+
[k: string]: unknown;
|
|
94
|
+
} | unknown[] | string | number | boolean | null;
|
|
95
|
+
dataSource?: (string | null) | DataSource;
|
|
96
|
+
updatedAt: string;
|
|
97
|
+
createdAt: string;
|
|
98
|
+
}
|
|
99
|
+
export type Specialist<TOverride extends Partial<DefaultSpecialist> = {}> = Omit<DefaultSpecialist, keyof TOverride> & TOverride;
|
|
100
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { User } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Company } from '@/entities/company';
|
|
2
|
+
import type { Role, Media } from '@/entities/dictionary';
|
|
3
|
+
interface DefaultUser {
|
|
4
|
+
id: string;
|
|
5
|
+
name?: string | null;
|
|
6
|
+
roles: ('admin' | 'user' | 'reader')[];
|
|
7
|
+
email: string;
|
|
8
|
+
confirmToken?: string | null;
|
|
9
|
+
confirmedAt?: string | null;
|
|
10
|
+
password?: string | null;
|
|
11
|
+
company?: (string | null) | Company;
|
|
12
|
+
role?: (string | null) | Role;
|
|
13
|
+
img?: (string | null) | Media;
|
|
14
|
+
tokens?: {
|
|
15
|
+
[k: string]: unknown;
|
|
16
|
+
} | unknown[] | string | number | boolean | null;
|
|
17
|
+
useTokens?: boolean | null;
|
|
18
|
+
isConfirmed?: boolean | null;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
createdAt: string;
|
|
21
|
+
}
|
|
22
|
+
export type User<TOverride extends Partial<DefaultUser> = {}> = Omit<DefaultUser, keyof TOverride> & TOverride;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { City, Country, Grade, Job, Offer, OfferStatus, Specialist, Specialization } from "@/entities";
|
|
2
|
+
export type PaginatedOffer = Offer<{
|
|
3
|
+
job: Job;
|
|
4
|
+
specialist: Specialist<{
|
|
5
|
+
specialization: Specialization;
|
|
6
|
+
grades: Grade[];
|
|
7
|
+
city: City;
|
|
8
|
+
country: Country;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
export type DetailedOffer = Offer<{
|
|
12
|
+
specialist: Specialist<{
|
|
13
|
+
specialization: Specialization;
|
|
14
|
+
grades: Grade[];
|
|
15
|
+
city: City;
|
|
16
|
+
country: Country;
|
|
17
|
+
}>;
|
|
18
|
+
job: Job;
|
|
19
|
+
status: OfferStatus;
|
|
20
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@iconicompany/imarketplacetypes",
|
|
3
|
+
"version": "0.0.0-snapshot.20251208135153.ed4ba730",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"typescript": "^5.0.0"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./entities": {
|
|
20
|
+
"import": "./dist/entities/index.js",
|
|
21
|
+
"types": "./dist/entities/index.d.ts"
|
|
22
|
+
},
|
|
23
|
+
"./contracts/*": {
|
|
24
|
+
"import": "./dist/contracts/*.js",
|
|
25
|
+
"types": "./dist/contracts/*.d.ts"
|
|
26
|
+
},
|
|
27
|
+
"./services/*": {
|
|
28
|
+
"import": "./dist/services/*.js",
|
|
29
|
+
"types": "./dist/services/*.d.ts"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PaginatedJob } from "@/services/job-service";
|
|
2
|
+
import { PaginatedResult } from "@/types";
|
|
3
|
+
|
|
4
|
+
export type getPaginatedJobsResult = PaginatedResult<PaginatedJob>;
|
|
5
|
+
|
|
6
|
+
export type JobSelectItem = {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type getJobSelectResult = PaginatedResult<JobSelectItem>;
|
|
12
|
+
|
|
13
|
+
export interface JobContract {
|
|
14
|
+
// /jobs
|
|
15
|
+
getPaginatedJobs: {
|
|
16
|
+
params: { page: number };
|
|
17
|
+
result: getPaginatedJobsResult;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
getJobSelect: {
|
|
21
|
+
params: { page: number };
|
|
22
|
+
result: getJobSelectResult;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PaginatedOffer, DetailedOffer } from "@/services/offer-service";
|
|
2
|
+
import { PaginatedResult } from "@/types";
|
|
3
|
+
|
|
4
|
+
export type getPaginatedOffersResult = PaginatedResult<PaginatedOffer>;
|
|
5
|
+
|
|
6
|
+
export interface OfferContract {
|
|
7
|
+
// /offers
|
|
8
|
+
getPaginatedOffers: {
|
|
9
|
+
params: { page: number; minMatchScore?: number; maxMatchScore?: number };
|
|
10
|
+
result: getPaginatedOffersResult;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// /offers/:id
|
|
14
|
+
getCandidate: {
|
|
15
|
+
params: { id: string };
|
|
16
|
+
result: DetailedOffer | undefined;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Company } from './model';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Media, Service } from '@/entities/dictionary';
|
|
2
|
+
|
|
3
|
+
interface DefaultCompany {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
inn?: string | null;
|
|
7
|
+
entityType: 'INDIVIDUAL' | 'LEGAL_ENTITY' | 'SOLE_PROPRIETOR' | 'SELF_EMPLOYED';
|
|
8
|
+
entityRole: 'CUSTOMER' | 'AGENCY' | 'SPECIALIST';
|
|
9
|
+
data?: {
|
|
10
|
+
ogrn?: string | null;
|
|
11
|
+
kpp?: string | null;
|
|
12
|
+
okved?: string | null;
|
|
13
|
+
regDate?: string | null;
|
|
14
|
+
regAddress?: string | null;
|
|
15
|
+
factAddress?: string | null;
|
|
16
|
+
director?: string | null;
|
|
17
|
+
taxForm?: string | null;
|
|
18
|
+
bik?: string | null;
|
|
19
|
+
bankName?: string | null;
|
|
20
|
+
accountNumber?: string | null;
|
|
21
|
+
};
|
|
22
|
+
services?: (string | Service)[] | null;
|
|
23
|
+
dossier?:
|
|
24
|
+
| {
|
|
25
|
+
code: 'CV' | 'CHECKLIST';
|
|
26
|
+
content?: (string | null) | Media;
|
|
27
|
+
id?: string | null;
|
|
28
|
+
}[]
|
|
29
|
+
| null;
|
|
30
|
+
telegramChatId?: string | null;
|
|
31
|
+
telegramChatNotificationId?: string | null;
|
|
32
|
+
isSpecialistNotificationSub?: boolean | null;
|
|
33
|
+
updatedAt: string;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type Company<TOverride extends Partial<DefaultCompany> = {}> = Omit<DefaultCompany, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Category } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { City } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Country } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { DataSource } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Grade } from './model';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type { Category } from './category';
|
|
2
|
+
export type { City } from './city';
|
|
3
|
+
export type { DataSource } from './dataSource';
|
|
4
|
+
export type { Country } from './country';
|
|
5
|
+
export type { Grade } from './grade';
|
|
6
|
+
export type { Industry } from './industry';
|
|
7
|
+
export type { Language } from './language';
|
|
8
|
+
export type { Media } from './media';
|
|
9
|
+
export type { OfferStatus } from './offerStatus';
|
|
10
|
+
export type { Permission } from './permission';
|
|
11
|
+
export type { Role } from './role';
|
|
12
|
+
export type { Service } from './service';
|
|
13
|
+
export type { Skill } from './skill';
|
|
14
|
+
export type { Specialization } from './specialization';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Industry } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Language } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Media } from './model';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface Media {
|
|
2
|
+
id: string;
|
|
3
|
+
content?: string | null;
|
|
4
|
+
prefix?: string | null;
|
|
5
|
+
updatedAt: string;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
url?: string | null;
|
|
8
|
+
thumbnailURL?: string | null;
|
|
9
|
+
filename?: string | null;
|
|
10
|
+
mimeType?: string | null;
|
|
11
|
+
filesize?: number | null;
|
|
12
|
+
width?: number | null;
|
|
13
|
+
height?: number | null;
|
|
14
|
+
focalX?: number | null;
|
|
15
|
+
focalY?: number | null;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { OfferStatus } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Permission } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Role } from './model';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Permission } from '@/entities/dictionary';
|
|
2
|
+
|
|
3
|
+
interface DefaultRole {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
code: string;
|
|
7
|
+
description?: string | null;
|
|
8
|
+
permissions?: (string | Permission)[] | null;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type Role<TOverride extends Partial<DefaultRole> = {}> = Omit<DefaultRole, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Service } from './model';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Media } from '@/entities/dictionary';
|
|
2
|
+
|
|
3
|
+
interface DefaultService {
|
|
4
|
+
id: string;
|
|
5
|
+
top?: boolean | null;
|
|
6
|
+
name: string;
|
|
7
|
+
content: {
|
|
8
|
+
root: {
|
|
9
|
+
type: string;
|
|
10
|
+
children: {
|
|
11
|
+
type: any;
|
|
12
|
+
version: number;
|
|
13
|
+
[k: string]: unknown;
|
|
14
|
+
}[];
|
|
15
|
+
direction: ('ltr' | 'rtl') | null;
|
|
16
|
+
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
|
17
|
+
indent: number;
|
|
18
|
+
version: number;
|
|
19
|
+
};
|
|
20
|
+
[k: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
content_html?: string | null;
|
|
23
|
+
gallery?:
|
|
24
|
+
| {
|
|
25
|
+
photo?: (string | Media)[] | null;
|
|
26
|
+
id?: string | null;
|
|
27
|
+
}[]
|
|
28
|
+
| null;
|
|
29
|
+
amount?: number | null;
|
|
30
|
+
currency?: ('RUB' | 'EUR' | 'USD') | null;
|
|
31
|
+
updatedAt: string;
|
|
32
|
+
createdAt: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type Service<TOverride extends Partial<DefaultService> = {}> = Omit<DefaultService, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Skill } from './model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Specialization } from './model';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Category } from '@/entities/dictionary';
|
|
2
|
+
|
|
3
|
+
export interface DefaultSpecialization {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
category?: (string | null) | Category;
|
|
7
|
+
updatedAt: string;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type Specialization<TOverride extends Partial<DefaultSpecialization> = {}> = Omit<DefaultSpecialization, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Job } from './model';
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { City, Country, Industry, Grade, Language, DataSource, Specialization } from '@/entities/dictionary';
|
|
2
|
+
import type { Company } from '@/entities/company';
|
|
3
|
+
|
|
4
|
+
interface JobRequirement {
|
|
5
|
+
requirement: string;
|
|
6
|
+
mandatory?: boolean | null;
|
|
7
|
+
id?: string | null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface JobTask {
|
|
11
|
+
name?: string | null;
|
|
12
|
+
id?: string | null;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface JobLanguage {
|
|
16
|
+
language?: (string | null) | Language;
|
|
17
|
+
level?: ('A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2' | 'L1' | '-') | null;
|
|
18
|
+
id?: string | null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface DefaultJob {
|
|
22
|
+
id: string;
|
|
23
|
+
name?: string | null;
|
|
24
|
+
top?: boolean | null;
|
|
25
|
+
externId?: string | null;
|
|
26
|
+
requirements?: JobRequirement[] | null;
|
|
27
|
+
tasks?: [] | null;
|
|
28
|
+
description?: string | null;
|
|
29
|
+
descriptionTeam?: JobTask[] | null;
|
|
30
|
+
projectConditions?: string | null;
|
|
31
|
+
industry?: (string | null) | Industry;
|
|
32
|
+
specialization?: (string | null) | Specialization;
|
|
33
|
+
grades: (string | Grade)[];
|
|
34
|
+
amount?: number | null;
|
|
35
|
+
currency?: ('RUB' | 'EUR' | 'USD') | null;
|
|
36
|
+
numberOfSpecialists: number;
|
|
37
|
+
attractionPeriod?: {
|
|
38
|
+
from?: number | null;
|
|
39
|
+
to?: number | null;
|
|
40
|
+
text?: string | null;
|
|
41
|
+
};
|
|
42
|
+
workFormat?: ('remote' | 'office' | 'mixed') | null;
|
|
43
|
+
employmentType?: ('full' | 'short') | null;
|
|
44
|
+
schedule?: string | null;
|
|
45
|
+
workingHours?: string | null;
|
|
46
|
+
projectStart?: string | null;
|
|
47
|
+
city?: (string | null) | City;
|
|
48
|
+
country?: (string | null) | Country;
|
|
49
|
+
language?: [] | null;
|
|
50
|
+
requiredCitizenship?: JobLanguage[] | null;
|
|
51
|
+
status: 'created' | 'selection' | 'suspended' | 'archive' | 'hidden';
|
|
52
|
+
requiredSkills?:
|
|
53
|
+
| {
|
|
54
|
+
[k: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
| unknown[]
|
|
57
|
+
| string
|
|
58
|
+
| number
|
|
59
|
+
| boolean
|
|
60
|
+
| null;
|
|
61
|
+
company?: (string | null) | Company;
|
|
62
|
+
dataSource?: (string | null) | DataSource;
|
|
63
|
+
parent?: (string | null) | Job;
|
|
64
|
+
visibility?: ('visible' | 'hidden') | null;
|
|
65
|
+
priority?: number | null;
|
|
66
|
+
customer?: (string | null) | Company;
|
|
67
|
+
link?: string | null;
|
|
68
|
+
searchQuery?: string | null;
|
|
69
|
+
createdBy?: ('user' | 'telegram') | null;
|
|
70
|
+
updatedAt: string;
|
|
71
|
+
createdAt: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type Job<TOverride extends Partial<DefaultJob> = {}> = Omit<DefaultJob, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Offer } from './model';
|