@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.
Files changed (138) hide show
  1. package/bun.lock +14 -0
  2. package/dist/contracts/job-contract.d.ts +22 -0
  3. package/dist/contracts/job-contract.js +1 -0
  4. package/dist/contracts/offer-contract.d.ts +19 -0
  5. package/dist/contracts/offer-contract.js +1 -0
  6. package/dist/entities/company/index.d.ts +1 -0
  7. package/dist/entities/company/index.js +1 -0
  8. package/dist/entities/company/model.d.ts +34 -0
  9. package/dist/entities/company/model.js +1 -0
  10. package/dist/entities/dictionary/category/index.d.ts +1 -0
  11. package/dist/entities/dictionary/category/index.js +1 -0
  12. package/dist/entities/dictionary/category/model.d.ts +6 -0
  13. package/dist/entities/dictionary/category/model.js +1 -0
  14. package/dist/entities/dictionary/city/index.d.ts +1 -0
  15. package/dist/entities/dictionary/city/index.js +1 -0
  16. package/dist/entities/dictionary/city/model.d.ts +6 -0
  17. package/dist/entities/dictionary/city/model.js +1 -0
  18. package/dist/entities/dictionary/country/index.d.ts +1 -0
  19. package/dist/entities/dictionary/country/index.js +1 -0
  20. package/dist/entities/dictionary/country/model.d.ts +6 -0
  21. package/dist/entities/dictionary/country/model.js +1 -0
  22. package/dist/entities/dictionary/dataSource/index.d.ts +1 -0
  23. package/dist/entities/dictionary/dataSource/index.js +1 -0
  24. package/dist/entities/dictionary/dataSource/model.d.ts +8 -0
  25. package/dist/entities/dictionary/dataSource/model.js +1 -0
  26. package/dist/entities/dictionary/grade/index.d.ts +1 -0
  27. package/dist/entities/dictionary/grade/index.js +1 -0
  28. package/dist/entities/dictionary/grade/model.d.ts +6 -0
  29. package/dist/entities/dictionary/grade/model.js +1 -0
  30. package/dist/entities/dictionary/index.d.ts +14 -0
  31. package/dist/entities/dictionary/index.js +1 -0
  32. package/dist/entities/dictionary/industry/index.d.ts +1 -0
  33. package/dist/entities/dictionary/industry/index.js +1 -0
  34. package/dist/entities/dictionary/industry/model.d.ts +6 -0
  35. package/dist/entities/dictionary/industry/model.js +1 -0
  36. package/dist/entities/dictionary/language/index.d.ts +1 -0
  37. package/dist/entities/dictionary/language/index.js +1 -0
  38. package/dist/entities/dictionary/language/model.d.ts +6 -0
  39. package/dist/entities/dictionary/language/model.js +1 -0
  40. package/dist/entities/dictionary/media/index.d.ts +1 -0
  41. package/dist/entities/dictionary/media/index.js +1 -0
  42. package/dist/entities/dictionary/media/model.d.ts +16 -0
  43. package/dist/entities/dictionary/media/model.js +1 -0
  44. package/dist/entities/dictionary/offerStatus/index.d.ts +1 -0
  45. package/dist/entities/dictionary/offerStatus/index.js +1 -0
  46. package/dist/entities/dictionary/offerStatus/model.d.ts +7 -0
  47. package/dist/entities/dictionary/offerStatus/model.js +1 -0
  48. package/dist/entities/dictionary/permission/index.d.ts +1 -0
  49. package/dist/entities/dictionary/permission/index.js +1 -0
  50. package/dist/entities/dictionary/permission/model.d.ts +8 -0
  51. package/dist/entities/dictionary/permission/model.js +1 -0
  52. package/dist/entities/dictionary/role/index.d.ts +1 -0
  53. package/dist/entities/dictionary/role/index.js +1 -0
  54. package/dist/entities/dictionary/role/model.d.ts +12 -0
  55. package/dist/entities/dictionary/role/model.js +1 -0
  56. package/dist/entities/dictionary/service/index.d.ts +1 -0
  57. package/dist/entities/dictionary/service/index.js +1 -0
  58. package/dist/entities/dictionary/service/model.d.ts +32 -0
  59. package/dist/entities/dictionary/service/model.js +1 -0
  60. package/dist/entities/dictionary/skill/index.d.ts +1 -0
  61. package/dist/entities/dictionary/skill/index.js +1 -0
  62. package/dist/entities/dictionary/skill/model.d.ts +7 -0
  63. package/dist/entities/dictionary/skill/model.js +1 -0
  64. package/dist/entities/dictionary/specialization/index.d.ts +1 -0
  65. package/dist/entities/dictionary/specialization/index.js +1 -0
  66. package/dist/entities/dictionary/specialization/model.d.ts +9 -0
  67. package/dist/entities/dictionary/specialization/model.js +1 -0
  68. package/dist/entities/index.d.ts +6 -0
  69. package/dist/entities/index.js +1 -0
  70. package/dist/entities/job/index.d.ts +1 -0
  71. package/dist/entities/job/index.js +1 -0
  72. package/dist/entities/job/model.d.ts +64 -0
  73. package/dist/entities/job/model.js +1 -0
  74. package/dist/entities/offer/index.d.ts +1 -0
  75. package/dist/entities/offer/index.js +1 -0
  76. package/dist/entities/offer/model.d.ts +43 -0
  77. package/dist/entities/offer/model.js +1 -0
  78. package/dist/entities/specialist/index.d.ts +1 -0
  79. package/dist/entities/specialist/index.js +1 -0
  80. package/dist/entities/specialist/model.d.ts +100 -0
  81. package/dist/entities/specialist/model.js +1 -0
  82. package/dist/entities/user/index.d.ts +1 -0
  83. package/dist/entities/user/index.js +1 -0
  84. package/dist/entities/user/model.d.ts +23 -0
  85. package/dist/entities/user/model.js +1 -0
  86. package/dist/services/job-service.d.ts +8 -0
  87. package/dist/services/job-service.js +1 -0
  88. package/dist/services/offer-service.d.ts +20 -0
  89. package/dist/services/offer-service.js +1 -0
  90. package/dist/types.d.ts +8 -0
  91. package/dist/types.js +1 -0
  92. package/package.json +35 -0
  93. package/src/contracts/job-contract.ts +24 -0
  94. package/src/contracts/offer-contract.ts +18 -0
  95. package/src/entities/company/index.ts +1 -0
  96. package/src/entities/company/model.ts +37 -0
  97. package/src/entities/dictionary/category/index.ts +1 -0
  98. package/src/entities/dictionary/category/model.ts +6 -0
  99. package/src/entities/dictionary/city/index.ts +1 -0
  100. package/src/entities/dictionary/city/model.ts +6 -0
  101. package/src/entities/dictionary/country/index.ts +1 -0
  102. package/src/entities/dictionary/country/model.ts +6 -0
  103. package/src/entities/dictionary/dataSource/index.ts +1 -0
  104. package/src/entities/dictionary/dataSource/model.ts +8 -0
  105. package/src/entities/dictionary/grade/index.ts +1 -0
  106. package/src/entities/dictionary/grade/model.ts +6 -0
  107. package/src/entities/dictionary/index.ts +14 -0
  108. package/src/entities/dictionary/industry/index.ts +1 -0
  109. package/src/entities/dictionary/industry/model.ts +6 -0
  110. package/src/entities/dictionary/language/index.ts +1 -0
  111. package/src/entities/dictionary/language/model.ts +6 -0
  112. package/src/entities/dictionary/media/index.ts +1 -0
  113. package/src/entities/dictionary/media/model.ts +16 -0
  114. package/src/entities/dictionary/offerStatus/index.ts +1 -0
  115. package/src/entities/dictionary/offerStatus/model.ts +7 -0
  116. package/src/entities/dictionary/permission/index.ts +1 -0
  117. package/src/entities/dictionary/permission/model.ts +8 -0
  118. package/src/entities/dictionary/role/index.ts +1 -0
  119. package/src/entities/dictionary/role/model.ts +13 -0
  120. package/src/entities/dictionary/service/index.ts +1 -0
  121. package/src/entities/dictionary/service/model.ts +35 -0
  122. package/src/entities/dictionary/skill/index.ts +1 -0
  123. package/src/entities/dictionary/skill/model.ts +7 -0
  124. package/src/entities/dictionary/specialization/index.ts +1 -0
  125. package/src/entities/dictionary/specialization/model.ts +11 -0
  126. package/src/entities/index.ts +8 -0
  127. package/src/entities/job/index.ts +1 -0
  128. package/src/entities/job/model.ts +74 -0
  129. package/src/entities/offer/index.ts +1 -0
  130. package/src/entities/offer/model.ts +59 -0
  131. package/src/entities/specialist/index.ts +1 -0
  132. package/src/entities/specialist/model.ts +119 -0
  133. package/src/entities/user/index.ts +1 -0
  134. package/src/entities/user/model.ts +30 -0
  135. package/src/services/job-service.ts +16 -0
  136. package/src/services/offer-service.ts +31 -0
  137. package/src/types.ts +8 -0
  138. 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
@@ -0,0 +1,8 @@
1
+ export interface PaginatedResult<T> {
2
+ data: T[];
3
+ page: number;
4
+ limit: number;
5
+ total: number;
6
+ pagesCount: number;
7
+ hasMore: boolean;
8
+ }
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
+ }