@iconicompany/imarketplacetypes 1.0.0
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/bun.lock +14 -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 +35 -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,59 @@
|
|
|
1
|
+
import type { Specialist } from "@/entities/specialist";
|
|
2
|
+
import type { Job } from "@/entities/job";
|
|
3
|
+
import type { User } from "@/entities/user";
|
|
4
|
+
import type { OfferStatus } from "@/entities/dictionary";
|
|
5
|
+
import { Company } from "../company";
|
|
6
|
+
|
|
7
|
+
interface OfferRequirement {
|
|
8
|
+
id?: string | null;
|
|
9
|
+
requirement: string;
|
|
10
|
+
mandatory?: boolean | null;
|
|
11
|
+
matched: number;
|
|
12
|
+
comment?: string | null;
|
|
13
|
+
questions?:
|
|
14
|
+
| {
|
|
15
|
+
question?: string | null;
|
|
16
|
+
answer?: string | null;
|
|
17
|
+
id?: string | null;
|
|
18
|
+
}[]
|
|
19
|
+
| null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface DefaultOffer {
|
|
23
|
+
id: string;
|
|
24
|
+
specialist: string | Specialist; // -> связь с Specialist
|
|
25
|
+
specialistCompany?: string | Company; // -> связь с Company
|
|
26
|
+
job: string | Job; // -> связь с Job
|
|
27
|
+
jobCompany?: string | Company; // -> связь с Company
|
|
28
|
+
agent?: string | null | User; // -> связь с User
|
|
29
|
+
rate?: number | null;
|
|
30
|
+
requirements?: OfferRequirement[] | null;
|
|
31
|
+
status: string | OfferStatus; // -> связь с OfferStatus
|
|
32
|
+
salary?: {
|
|
33
|
+
amount?: number | null;
|
|
34
|
+
currency?: ("RUB" | "EUR" | "USD") | null;
|
|
35
|
+
hourlyRate?: number | null;
|
|
36
|
+
};
|
|
37
|
+
matched?: number | null;
|
|
38
|
+
comment?: string | null;
|
|
39
|
+
assessmentOfRequirements?: string | null;
|
|
40
|
+
createdBy?:
|
|
41
|
+
| (
|
|
42
|
+
| "user"
|
|
43
|
+
| "databaseСomparison"
|
|
44
|
+
| "loader"
|
|
45
|
+
| "cosineSimilarity"
|
|
46
|
+
| "importByLink"
|
|
47
|
+
)
|
|
48
|
+
| null;
|
|
49
|
+
respondedAt?: string | null;
|
|
50
|
+
matchedBatch?: number | null;
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
createdAt: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type Offer<TOverride extends Partial<DefaultOffer> = {}> = Omit<
|
|
56
|
+
DefaultOffer,
|
|
57
|
+
keyof TOverride
|
|
58
|
+
> &
|
|
59
|
+
TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Specialist } from './model';
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
|
|
5
|
+
interface DefaultSpecialist {
|
|
6
|
+
id: string;
|
|
7
|
+
user?: (string | null) | User;
|
|
8
|
+
externalId?: string | null;
|
|
9
|
+
title?: string | null;
|
|
10
|
+
name?: string | null;
|
|
11
|
+
top?: boolean | null;
|
|
12
|
+
firstName?: string | null;
|
|
13
|
+
lastName?: string | null;
|
|
14
|
+
middleName?: string | null;
|
|
15
|
+
birthDate?: string | null;
|
|
16
|
+
experience?:
|
|
17
|
+
| {
|
|
18
|
+
name?: string | null;
|
|
19
|
+
start?: string | null;
|
|
20
|
+
end?: string | null;
|
|
21
|
+
untilNow?: boolean | null;
|
|
22
|
+
company?: string | null;
|
|
23
|
+
position?: string | null;
|
|
24
|
+
industry?: (string | null) | Industry;
|
|
25
|
+
description?: string | null;
|
|
26
|
+
aboutTeam?: string | null;
|
|
27
|
+
achievements?: string | null;
|
|
28
|
+
stack?: (string | Skill)[] | null;
|
|
29
|
+
id?: string | null;
|
|
30
|
+
}[]
|
|
31
|
+
| null;
|
|
32
|
+
workFormat?: ('remote' | 'office' | 'mixed') | null;
|
|
33
|
+
employmentType?: ('full' | 'short') | null;
|
|
34
|
+
additionalEducations?:
|
|
35
|
+
| {
|
|
36
|
+
name?: string | null;
|
|
37
|
+
year?: number | null;
|
|
38
|
+
file?: (string | null) | Media;
|
|
39
|
+
id?: string | null;
|
|
40
|
+
}[]
|
|
41
|
+
| null;
|
|
42
|
+
educations?:
|
|
43
|
+
| {
|
|
44
|
+
name?: string | null;
|
|
45
|
+
level: 'secondaryGeneral' | 'CandidateOfSciences' | 'masterOfScience' | 'higher' | 'unfinishedHigher' | 'secondary' | 'other';
|
|
46
|
+
major?: string | null;
|
|
47
|
+
year?: number | null;
|
|
48
|
+
id?: string | null;
|
|
49
|
+
}[]
|
|
50
|
+
| null;
|
|
51
|
+
salary?: {
|
|
52
|
+
amount?: number | null;
|
|
53
|
+
currency?: ('RUB' | 'EUR' | 'USD') | null;
|
|
54
|
+
hourlyRate?: number | null;
|
|
55
|
+
};
|
|
56
|
+
contacts?: {
|
|
57
|
+
phone?: string | null;
|
|
58
|
+
email?: string | null;
|
|
59
|
+
telegram?: string | null;
|
|
60
|
+
other?: string | null;
|
|
61
|
+
};
|
|
62
|
+
language?:
|
|
63
|
+
| {
|
|
64
|
+
language?: (string | null) | Language;
|
|
65
|
+
level?: ('A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2' | 'L1' | '-') | null;
|
|
66
|
+
id?: string | null;
|
|
67
|
+
}[]
|
|
68
|
+
| null;
|
|
69
|
+
availableFrom?: string | null;
|
|
70
|
+
employment?: ('full' | 'part' | 'project' | 'probation') | null;
|
|
71
|
+
relocation?: ('noRelocation' | 'relocation' | 'relocationDesirable') | null;
|
|
72
|
+
schedule?: ('remote' | 'shiftWork' | 'full' | 'flexible') | null;
|
|
73
|
+
hasVehicle?: boolean | null;
|
|
74
|
+
driveExperience?: string | null;
|
|
75
|
+
businessTripReadiness?: ('never' | 'ready' | 'sometimes') | null;
|
|
76
|
+
foreignProjectsReadiness?: ('yes' | 'no') | null;
|
|
77
|
+
age?: number | null;
|
|
78
|
+
status?: ('created' | 'archive') | null;
|
|
79
|
+
citizenship?:
|
|
80
|
+
| {
|
|
81
|
+
name: string | Country;
|
|
82
|
+
id?: string | null;
|
|
83
|
+
}[]
|
|
84
|
+
| null;
|
|
85
|
+
jobSearchStatus?: ('active' | 'open' | 'notLooking') | null;
|
|
86
|
+
driverLicenseTypes?:
|
|
87
|
+
| {
|
|
88
|
+
type: string;
|
|
89
|
+
id?: string | null;
|
|
90
|
+
}[]
|
|
91
|
+
| null;
|
|
92
|
+
travelTime?: ('any' | 'lessThanHour' | 'fromHourToOneAndHalf') | null;
|
|
93
|
+
aboutMe?: string | null;
|
|
94
|
+
gender?: ('female' | 'male') | null;
|
|
95
|
+
img?: (string | null) | Media;
|
|
96
|
+
skills?: (string | Skill)[] | null;
|
|
97
|
+
company?: (string | null) | Company;
|
|
98
|
+
grade?: (string | null) | Grade;
|
|
99
|
+
specialization?: (string | null) | Specialization;
|
|
100
|
+
city?: (string | null) | City;
|
|
101
|
+
country?: (string | null) | Country;
|
|
102
|
+
services?: (string | Service)[] | null;
|
|
103
|
+
visibility?: ('visible' | 'hidden') | null;
|
|
104
|
+
skillsExtracted?: boolean | null;
|
|
105
|
+
formattedExperienceSkills?:
|
|
106
|
+
| {
|
|
107
|
+
[k: string]: unknown;
|
|
108
|
+
}
|
|
109
|
+
| unknown[]
|
|
110
|
+
| string
|
|
111
|
+
| number
|
|
112
|
+
| boolean
|
|
113
|
+
| null;
|
|
114
|
+
dataSource?: (string | null) | DataSource;
|
|
115
|
+
updatedAt: string;
|
|
116
|
+
createdAt: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export type Specialist<TOverride extends Partial<DefaultSpecialist> = {}> = Omit<DefaultSpecialist, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { User } from './model';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Company } from '@/entities/company';
|
|
2
|
+
import type { Role, Media } from '@/entities/dictionary';
|
|
3
|
+
|
|
4
|
+
interface DefaultUser {
|
|
5
|
+
id: string;
|
|
6
|
+
name?: string | null;
|
|
7
|
+
roles: ('admin' | 'user' | 'reader')[];
|
|
8
|
+
email: string;
|
|
9
|
+
confirmToken?: string | null;
|
|
10
|
+
confirmedAt?: string | null;
|
|
11
|
+
password?: string | null;
|
|
12
|
+
company?: (string | null) | Company;
|
|
13
|
+
role?: (string | null) | Role;
|
|
14
|
+
img?: (string | null) | Media;
|
|
15
|
+
tokens?:
|
|
16
|
+
| {
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
| unknown[]
|
|
20
|
+
| string
|
|
21
|
+
| number
|
|
22
|
+
| boolean
|
|
23
|
+
| null;
|
|
24
|
+
useTokens?: boolean | null;
|
|
25
|
+
isConfirmed?: boolean | null;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type User<TOverride extends Partial<DefaultUser> = {}> = Omit<DefaultUser, keyof TOverride> & TOverride;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
City,
|
|
3
|
+
Country,
|
|
4
|
+
Grade,
|
|
5
|
+
Job,
|
|
6
|
+
Specialization,
|
|
7
|
+
Company,
|
|
8
|
+
} from "@/entities";
|
|
9
|
+
|
|
10
|
+
export type PaginatedJob = Job<{
|
|
11
|
+
specialization: Specialization;
|
|
12
|
+
grades: Grade[];
|
|
13
|
+
city: City;
|
|
14
|
+
country: Country;
|
|
15
|
+
company: Company;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
City,
|
|
3
|
+
Country,
|
|
4
|
+
Grade,
|
|
5
|
+
Job,
|
|
6
|
+
Offer,
|
|
7
|
+
OfferStatus,
|
|
8
|
+
Specialist,
|
|
9
|
+
Specialization,
|
|
10
|
+
} from "@/entities";
|
|
11
|
+
|
|
12
|
+
export type PaginatedOffer = Offer<{
|
|
13
|
+
job: Job;
|
|
14
|
+
specialist: Specialist<{
|
|
15
|
+
specialization: Specialization;
|
|
16
|
+
grades: Grade[];
|
|
17
|
+
city: City;
|
|
18
|
+
country: Country;
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
export type DetailedOffer = Offer<{
|
|
23
|
+
specialist: Specialist<{
|
|
24
|
+
specialization: Specialization;
|
|
25
|
+
grades: Grade[];
|
|
26
|
+
city: City;
|
|
27
|
+
country: Country;
|
|
28
|
+
}>;
|
|
29
|
+
job: Job;
|
|
30
|
+
status: OfferStatus;
|
|
31
|
+
}>;
|
package/src/types.ts
ADDED
package/tsconfig.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["ESNext"],
|
|
6
|
+
"moduleResolution": "node",
|
|
7
|
+
"outDir": "./dist",
|
|
8
|
+
"rootDir": "./src",
|
|
9
|
+
"strict": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"declaration": true,
|
|
14
|
+
"baseUrl": ".",
|
|
15
|
+
"paths": {
|
|
16
|
+
"@/*": ["./src/*"]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"include": ["src/**/*.ts"],
|
|
20
|
+
"exclude": ["node_modules", "dist"]
|
|
21
|
+
}
|