@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.
Files changed (140) hide show
  1. package/.env +4 -0
  2. package/.github/workflows/publish-release.yml +27 -0
  3. package/.github/workflows/publish-snapshot.yml +44 -0
  4. package/dist/contracts/job-contract.d.ts +22 -0
  5. package/dist/contracts/job-contract.js +1 -0
  6. package/dist/contracts/offer-contract.d.ts +19 -0
  7. package/dist/contracts/offer-contract.js +1 -0
  8. package/dist/entities/company/index.d.ts +1 -0
  9. package/dist/entities/company/index.js +1 -0
  10. package/dist/entities/company/model.d.ts +34 -0
  11. package/dist/entities/company/model.js +1 -0
  12. package/dist/entities/dictionary/category/index.d.ts +1 -0
  13. package/dist/entities/dictionary/category/index.js +1 -0
  14. package/dist/entities/dictionary/category/model.d.ts +6 -0
  15. package/dist/entities/dictionary/category/model.js +1 -0
  16. package/dist/entities/dictionary/city/index.d.ts +1 -0
  17. package/dist/entities/dictionary/city/index.js +1 -0
  18. package/dist/entities/dictionary/city/model.d.ts +6 -0
  19. package/dist/entities/dictionary/city/model.js +1 -0
  20. package/dist/entities/dictionary/country/index.d.ts +1 -0
  21. package/dist/entities/dictionary/country/index.js +1 -0
  22. package/dist/entities/dictionary/country/model.d.ts +6 -0
  23. package/dist/entities/dictionary/country/model.js +1 -0
  24. package/dist/entities/dictionary/dataSource/index.d.ts +1 -0
  25. package/dist/entities/dictionary/dataSource/index.js +1 -0
  26. package/dist/entities/dictionary/dataSource/model.d.ts +8 -0
  27. package/dist/entities/dictionary/dataSource/model.js +1 -0
  28. package/dist/entities/dictionary/grade/index.d.ts +1 -0
  29. package/dist/entities/dictionary/grade/index.js +1 -0
  30. package/dist/entities/dictionary/grade/model.d.ts +6 -0
  31. package/dist/entities/dictionary/grade/model.js +1 -0
  32. package/dist/entities/dictionary/index.d.ts +14 -0
  33. package/dist/entities/dictionary/index.js +1 -0
  34. package/dist/entities/dictionary/industry/index.d.ts +1 -0
  35. package/dist/entities/dictionary/industry/index.js +1 -0
  36. package/dist/entities/dictionary/industry/model.d.ts +6 -0
  37. package/dist/entities/dictionary/industry/model.js +1 -0
  38. package/dist/entities/dictionary/language/index.d.ts +1 -0
  39. package/dist/entities/dictionary/language/index.js +1 -0
  40. package/dist/entities/dictionary/language/model.d.ts +6 -0
  41. package/dist/entities/dictionary/language/model.js +1 -0
  42. package/dist/entities/dictionary/media/index.d.ts +1 -0
  43. package/dist/entities/dictionary/media/index.js +1 -0
  44. package/dist/entities/dictionary/media/model.d.ts +16 -0
  45. package/dist/entities/dictionary/media/model.js +1 -0
  46. package/dist/entities/dictionary/offerStatus/index.d.ts +1 -0
  47. package/dist/entities/dictionary/offerStatus/index.js +1 -0
  48. package/dist/entities/dictionary/offerStatus/model.d.ts +7 -0
  49. package/dist/entities/dictionary/offerStatus/model.js +1 -0
  50. package/dist/entities/dictionary/permission/index.d.ts +1 -0
  51. package/dist/entities/dictionary/permission/index.js +1 -0
  52. package/dist/entities/dictionary/permission/model.d.ts +8 -0
  53. package/dist/entities/dictionary/permission/model.js +1 -0
  54. package/dist/entities/dictionary/role/index.d.ts +1 -0
  55. package/dist/entities/dictionary/role/index.js +1 -0
  56. package/dist/entities/dictionary/role/model.d.ts +12 -0
  57. package/dist/entities/dictionary/role/model.js +1 -0
  58. package/dist/entities/dictionary/service/index.d.ts +1 -0
  59. package/dist/entities/dictionary/service/index.js +1 -0
  60. package/dist/entities/dictionary/service/model.d.ts +32 -0
  61. package/dist/entities/dictionary/service/model.js +1 -0
  62. package/dist/entities/dictionary/skill/index.d.ts +1 -0
  63. package/dist/entities/dictionary/skill/index.js +1 -0
  64. package/dist/entities/dictionary/skill/model.d.ts +7 -0
  65. package/dist/entities/dictionary/skill/model.js +1 -0
  66. package/dist/entities/dictionary/specialization/index.d.ts +1 -0
  67. package/dist/entities/dictionary/specialization/index.js +1 -0
  68. package/dist/entities/dictionary/specialization/model.d.ts +9 -0
  69. package/dist/entities/dictionary/specialization/model.js +1 -0
  70. package/dist/entities/index.d.ts +6 -0
  71. package/dist/entities/index.js +1 -0
  72. package/dist/entities/job/index.d.ts +1 -0
  73. package/dist/entities/job/index.js +1 -0
  74. package/dist/entities/job/model.d.ts +64 -0
  75. package/dist/entities/job/model.js +1 -0
  76. package/dist/entities/offer/index.d.ts +1 -0
  77. package/dist/entities/offer/index.js +1 -0
  78. package/dist/entities/offer/model.d.ts +43 -0
  79. package/dist/entities/offer/model.js +1 -0
  80. package/dist/entities/specialist/index.d.ts +1 -0
  81. package/dist/entities/specialist/index.js +1 -0
  82. package/dist/entities/specialist/model.d.ts +100 -0
  83. package/dist/entities/specialist/model.js +1 -0
  84. package/dist/entities/user/index.d.ts +1 -0
  85. package/dist/entities/user/index.js +1 -0
  86. package/dist/entities/user/model.d.ts +23 -0
  87. package/dist/entities/user/model.js +1 -0
  88. package/dist/services/job-service.d.ts +8 -0
  89. package/dist/services/job-service.js +1 -0
  90. package/dist/services/offer-service.d.ts +20 -0
  91. package/dist/services/offer-service.js +1 -0
  92. package/dist/types.d.ts +8 -0
  93. package/dist/types.js +1 -0
  94. package/package.json +32 -0
  95. package/src/contracts/job-contract.ts +24 -0
  96. package/src/contracts/offer-contract.ts +18 -0
  97. package/src/entities/company/index.ts +1 -0
  98. package/src/entities/company/model.ts +37 -0
  99. package/src/entities/dictionary/category/index.ts +1 -0
  100. package/src/entities/dictionary/category/model.ts +6 -0
  101. package/src/entities/dictionary/city/index.ts +1 -0
  102. package/src/entities/dictionary/city/model.ts +6 -0
  103. package/src/entities/dictionary/country/index.ts +1 -0
  104. package/src/entities/dictionary/country/model.ts +6 -0
  105. package/src/entities/dictionary/dataSource/index.ts +1 -0
  106. package/src/entities/dictionary/dataSource/model.ts +8 -0
  107. package/src/entities/dictionary/grade/index.ts +1 -0
  108. package/src/entities/dictionary/grade/model.ts +6 -0
  109. package/src/entities/dictionary/index.ts +14 -0
  110. package/src/entities/dictionary/industry/index.ts +1 -0
  111. package/src/entities/dictionary/industry/model.ts +6 -0
  112. package/src/entities/dictionary/language/index.ts +1 -0
  113. package/src/entities/dictionary/language/model.ts +6 -0
  114. package/src/entities/dictionary/media/index.ts +1 -0
  115. package/src/entities/dictionary/media/model.ts +16 -0
  116. package/src/entities/dictionary/offerStatus/index.ts +1 -0
  117. package/src/entities/dictionary/offerStatus/model.ts +7 -0
  118. package/src/entities/dictionary/permission/index.ts +1 -0
  119. package/src/entities/dictionary/permission/model.ts +8 -0
  120. package/src/entities/dictionary/role/index.ts +1 -0
  121. package/src/entities/dictionary/role/model.ts +13 -0
  122. package/src/entities/dictionary/service/index.ts +1 -0
  123. package/src/entities/dictionary/service/model.ts +35 -0
  124. package/src/entities/dictionary/skill/index.ts +1 -0
  125. package/src/entities/dictionary/skill/model.ts +7 -0
  126. package/src/entities/dictionary/specialization/index.ts +1 -0
  127. package/src/entities/dictionary/specialization/model.ts +11 -0
  128. package/src/entities/index.ts +8 -0
  129. package/src/entities/job/index.ts +1 -0
  130. package/src/entities/job/model.ts +74 -0
  131. package/src/entities/offer/index.ts +1 -0
  132. package/src/entities/offer/model.ts +59 -0
  133. package/src/entities/specialist/index.ts +1 -0
  134. package/src/entities/specialist/model.ts +119 -0
  135. package/src/entities/user/index.ts +1 -0
  136. package/src/entities/user/model.ts +30 -0
  137. package/src/services/job-service.ts +16 -0
  138. package/src/services/offer-service.ts +31 -0
  139. package/src/types.ts +8 -0
  140. 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,8 @@
1
+ import { City, Country, Grade, Job, Specialization, Company } from "@/entities";
2
+ export type PaginatedJob = Job<{
3
+ specialization: Specialization;
4
+ grades: Grade[];
5
+ city: City;
6
+ country: Country;
7
+ company: Company;
8
+ }>;
@@ -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 {};
@@ -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/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,6 @@
1
+ export interface Category {
2
+ id: string;
3
+ name: string;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -0,0 +1 @@
1
+ export type { City } from './model';
@@ -0,0 +1,6 @@
1
+ export interface City {
2
+ id: string;
3
+ name: string;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -0,0 +1 @@
1
+ export type { Country } from './model';
@@ -0,0 +1,6 @@
1
+ export interface Country {
2
+ id: string;
3
+ name: string;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -0,0 +1 @@
1
+ export type { DataSource } from './model';
@@ -0,0 +1,8 @@
1
+ export interface DataSource {
2
+ id: string;
3
+ name: string;
4
+ href?: string | null;
5
+ type: 'website' | 'telegram' | 'other';
6
+ updatedAt: string;
7
+ createdAt: string;
8
+ }
@@ -0,0 +1 @@
1
+ export type { Grade } from './model';
@@ -0,0 +1,6 @@
1
+ export interface Grade {
2
+ id: string;
3
+ name?: string | null;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -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,6 @@
1
+ export interface Industry {
2
+ id: string;
3
+ name: string;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -0,0 +1 @@
1
+ export type { Language } from './model';
@@ -0,0 +1,6 @@
1
+ export interface Language {
2
+ id: string;
3
+ name: string;
4
+ updatedAt: string;
5
+ createdAt: string;
6
+ }
@@ -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,7 @@
1
+ export interface OfferStatus {
2
+ id: string;
3
+ name: string;
4
+ code: string;
5
+ updatedAt: string;
6
+ createdAt: string;
7
+ }
@@ -0,0 +1 @@
1
+ export type { Permission } from './model';
@@ -0,0 +1,8 @@
1
+ export interface Permission {
2
+ id: string;
3
+ name: string;
4
+ code: string;
5
+ description?: string | null;
6
+ updatedAt: string;
7
+ createdAt: string;
8
+ }
@@ -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,7 @@
1
+ export interface Skill {
2
+ id: string;
3
+ name?: string | null;
4
+ parent?: (string | null) | Skill;
5
+ updatedAt: string;
6
+ createdAt: string;
7
+ }
@@ -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,8 @@
1
+ export type { Company } from "./company";
2
+ export type * from "./dictionary";
3
+ export type { User } from "./user";
4
+ export type { Specialist } from "./specialist";
5
+ export type { Offer } from "./offer";
6
+ export type { Job } from "./job";
7
+
8
+
@@ -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';