@iconicompany/imarketplacetypes 1.0.21 → 1.0.22

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 (99) hide show
  1. package/dist/contracts/job-contract.d.ts +63 -0
  2. package/dist/contracts/job-contract.js +1 -0
  3. package/dist/contracts/offer-contract.d.ts +19 -0
  4. package/dist/contracts/offer-contract.js +1 -0
  5. package/dist/contracts/specialist-contract.d.ts +45 -0
  6. package/dist/contracts/specialist-contract.js +1 -0
  7. package/dist/contracts/user-contract.d.ts +48 -0
  8. package/dist/contracts/user-contract.js +1 -0
  9. package/dist/entities/company/index.d.ts +1 -0
  10. package/dist/entities/company/index.js +1 -0
  11. package/dist/entities/company/model.d.ts +35 -0
  12. package/dist/entities/company/model.js +1 -0
  13. package/dist/entities/dictionary/category/index.d.ts +1 -0
  14. package/dist/entities/dictionary/category/index.js +1 -0
  15. package/dist/entities/dictionary/category/model.d.ts +6 -0
  16. package/dist/entities/dictionary/category/model.js +1 -0
  17. package/dist/entities/dictionary/city/index.d.ts +1 -0
  18. package/dist/entities/dictionary/city/index.js +1 -0
  19. package/dist/entities/dictionary/city/model.d.ts +6 -0
  20. package/dist/entities/dictionary/city/model.js +1 -0
  21. package/dist/entities/dictionary/country/index.d.ts +1 -0
  22. package/dist/entities/dictionary/country/index.js +1 -0
  23. package/dist/entities/dictionary/country/model.d.ts +6 -0
  24. package/dist/entities/dictionary/country/model.js +1 -0
  25. package/dist/entities/dictionary/dataSource/index.d.ts +1 -0
  26. package/dist/entities/dictionary/dataSource/index.js +1 -0
  27. package/dist/entities/dictionary/dataSource/model.d.ts +8 -0
  28. package/dist/entities/dictionary/dataSource/model.js +1 -0
  29. package/dist/entities/dictionary/grade/index.d.ts +1 -0
  30. package/dist/entities/dictionary/grade/index.js +1 -0
  31. package/dist/entities/dictionary/grade/model.d.ts +6 -0
  32. package/dist/entities/dictionary/grade/model.js +1 -0
  33. package/dist/entities/dictionary/index.d.ts +15 -0
  34. package/dist/entities/dictionary/index.js +1 -0
  35. package/dist/entities/dictionary/industry/index.d.ts +1 -0
  36. package/dist/entities/dictionary/industry/index.js +1 -0
  37. package/dist/entities/dictionary/industry/model.d.ts +6 -0
  38. package/dist/entities/dictionary/industry/model.js +1 -0
  39. package/dist/entities/dictionary/language/index.d.ts +1 -0
  40. package/dist/entities/dictionary/language/index.js +1 -0
  41. package/dist/entities/dictionary/language/model.d.ts +6 -0
  42. package/dist/entities/dictionary/language/model.js +1 -0
  43. package/dist/entities/dictionary/media/index.d.ts +1 -0
  44. package/dist/entities/dictionary/media/index.js +1 -0
  45. package/dist/entities/dictionary/media/model.d.ts +16 -0
  46. package/dist/entities/dictionary/media/model.js +1 -0
  47. package/dist/entities/dictionary/offerRejectCause/index.d.ts +1 -0
  48. package/dist/entities/dictionary/offerRejectCause/index.js +1 -0
  49. package/dist/entities/dictionary/offerRejectCause/model.d.ts +7 -0
  50. package/dist/entities/dictionary/offerRejectCause/model.js +1 -0
  51. package/dist/entities/dictionary/offerStatus/index.d.ts +1 -0
  52. package/dist/entities/dictionary/offerStatus/index.js +1 -0
  53. package/dist/entities/dictionary/offerStatus/model.d.ts +7 -0
  54. package/dist/entities/dictionary/offerStatus/model.js +1 -0
  55. package/dist/entities/dictionary/permission/index.d.ts +1 -0
  56. package/dist/entities/dictionary/permission/index.js +1 -0
  57. package/dist/entities/dictionary/permission/model.d.ts +8 -0
  58. package/dist/entities/dictionary/permission/model.js +1 -0
  59. package/dist/entities/dictionary/role/index.d.ts +1 -0
  60. package/dist/entities/dictionary/role/index.js +1 -0
  61. package/dist/entities/dictionary/role/model.d.ts +12 -0
  62. package/dist/entities/dictionary/role/model.js +1 -0
  63. package/dist/entities/dictionary/service/index.d.ts +1 -0
  64. package/dist/entities/dictionary/service/index.js +1 -0
  65. package/dist/entities/dictionary/service/model.d.ts +32 -0
  66. package/dist/entities/dictionary/service/model.js +1 -0
  67. package/dist/entities/dictionary/skill/index.d.ts +1 -0
  68. package/dist/entities/dictionary/skill/index.js +1 -0
  69. package/dist/entities/dictionary/skill/model.d.ts +7 -0
  70. package/dist/entities/dictionary/skill/model.js +1 -0
  71. package/dist/entities/dictionary/specialization/index.d.ts +1 -0
  72. package/dist/entities/dictionary/specialization/index.js +1 -0
  73. package/dist/entities/dictionary/specialization/model.d.ts +9 -0
  74. package/dist/entities/dictionary/specialization/model.js +1 -0
  75. package/dist/entities/index.d.ts +6 -0
  76. package/dist/entities/index.js +1 -0
  77. package/dist/entities/job/index.d.ts +1 -0
  78. package/dist/entities/job/index.js +1 -0
  79. package/dist/entities/job/model.d.ts +66 -0
  80. package/dist/entities/job/model.js +1 -0
  81. package/dist/entities/offer/index.d.ts +1 -0
  82. package/dist/entities/offer/index.js +1 -0
  83. package/dist/entities/offer/model.d.ts +47 -0
  84. package/dist/entities/offer/model.js +1 -0
  85. package/dist/entities/specialist/index.d.ts +1 -0
  86. package/dist/entities/specialist/index.js +1 -0
  87. package/dist/entities/specialist/model.d.ts +100 -0
  88. package/dist/entities/specialist/model.js +1 -0
  89. package/dist/entities/user/index.d.ts +1 -0
  90. package/dist/entities/user/index.js +1 -0
  91. package/dist/entities/user/model.d.ts +36 -0
  92. package/dist/entities/user/model.js +1 -0
  93. package/dist/services/job-service.d.ts +8 -0
  94. package/dist/services/job-service.js +1 -0
  95. package/dist/services/offer-service.d.ts +93 -0
  96. package/dist/services/offer-service.js +1 -0
  97. package/dist/types.d.ts +8 -0
  98. package/dist/types.js +1 -0
  99. package/package.json +2 -2
@@ -0,0 +1,63 @@
1
+ import { PaginatedJob } from "@/services/job-service";
2
+ import { PaginatedResult } from "@/types";
3
+ export type getPaginatedJobsResult = PaginatedResult<PaginatedJob>;
4
+ export type JobSelectItem = {
5
+ id: string;
6
+ name: string;
7
+ };
8
+ export type getJobSelectResult = PaginatedResult<JobSelectItem>;
9
+ /**
10
+ * Тип для отображения вакансии в таблице.
11
+ * Содержит только поля, необходимые для отображения в таблице вакансий.
12
+ */
13
+ export type JobTableItem = {
14
+ id: string;
15
+ name: string;
16
+ status: string;
17
+ workFormat: string;
18
+ amount: number;
19
+ currency: string;
20
+ requiredSkills: string[];
21
+ createdAt: string | Date;
22
+ specialization?: string;
23
+ grades: {
24
+ id: string;
25
+ name: string;
26
+ }[];
27
+ };
28
+ export type getJobsForTableResult = PaginatedResult<JobTableItem>;
29
+ export interface JobsTableFilters {
30
+ page?: number;
31
+ limit?: number;
32
+ query?: string;
33
+ status?: string;
34
+ workFormat?: string;
35
+ employmentType?: string;
36
+ minSalary?: number;
37
+ maxSalary?: number;
38
+ cities?: string;
39
+ industry?: string;
40
+ specialization?: string;
41
+ grades?: string;
42
+ skills?: string;
43
+ orderBy?: string;
44
+ sortDirection?: 'asc' | 'desc';
45
+ }
46
+ export interface JobContract {
47
+ getPaginatedJobs: {
48
+ params: {
49
+ page: number;
50
+ };
51
+ result: getPaginatedJobsResult;
52
+ };
53
+ getJobSelect: {
54
+ params: {
55
+ page: number;
56
+ };
57
+ result: getJobSelectResult;
58
+ };
59
+ getJobsForTable: {
60
+ params: JobsTableFilters;
61
+ result: getJobsForTableResult;
62
+ };
63
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import { PaginatedOffer, DetailedOffer } from "@/services/offer-service";
2
+ import { PaginatedResult } from "@/types";
3
+ export type getPaginatedOffersResult = PaginatedResult<PaginatedOffer>;
4
+ export interface OfferContract {
5
+ getPaginatedOffers: {
6
+ params: {
7
+ page: number;
8
+ minMatchScore?: number;
9
+ maxMatchScore?: number;
10
+ };
11
+ result: getPaginatedOffersResult;
12
+ };
13
+ getOffer: {
14
+ params: {
15
+ id: string;
16
+ };
17
+ result: DetailedOffer | undefined;
18
+ };
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ import { PaginatedResult } from "@/types";
2
+ /**
3
+ * Тип для отображения специалиста в таблице.
4
+ * Содержит только поля, необходимые для отображения в таблице специалистов.
5
+ */
6
+ export interface SpecialistTableItem {
7
+ id: string;
8
+ name: string;
9
+ specialization?: string | {
10
+ name: string;
11
+ };
12
+ grade?: string | {
13
+ name: string;
14
+ };
15
+ salary?: {
16
+ hourlyRate: number;
17
+ currency?: string;
18
+ };
19
+ contacts?: {
20
+ telegram?: string;
21
+ };
22
+ updatedAt: string | Date;
23
+ status?: string;
24
+ }
25
+ export interface GetSpecialistsForTableParams {
26
+ page?: number;
27
+ limit?: number;
28
+ query?: string;
29
+ specialization?: string;
30
+ grades?: string;
31
+ minSalary?: number;
32
+ maxSalary?: number;
33
+ cities?: string;
34
+ skills?: string;
35
+ status?: string;
36
+ orderBy?: string;
37
+ sortDirection?: 'asc' | 'desc';
38
+ }
39
+ export type GetSpecialistsForTableResult = PaginatedResult<SpecialistTableItem>;
40
+ export interface SpecialistContract {
41
+ getSpecialistsForTable: {
42
+ params: GetSpecialistsForTableParams;
43
+ result: GetSpecialistsForTableResult;
44
+ };
45
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ export interface PaginatedData<T> {
2
+ data: T[];
3
+ page: number;
4
+ limit: number;
5
+ total: number;
6
+ pagesCount: number;
7
+ hasMore: boolean;
8
+ }
9
+ export type SpecialistCandidate = {
10
+ id: string;
11
+ name: string;
12
+ city: string | null;
13
+ grade: string | null;
14
+ specialization: string | null;
15
+ lastExperience: {
16
+ company: string | null;
17
+ position: string | null;
18
+ } | null;
19
+ updatedAt: string | null;
20
+ };
21
+ export type GetSpecialistCandidatesResult = PaginatedData<SpecialistCandidate>;
22
+ export interface GetSpecialistCandidatesParams {
23
+ page?: number;
24
+ limit?: number;
25
+ locale?: "ru" | "en";
26
+ }
27
+ export interface UserContract {
28
+ getSpecialistCandidates: {
29
+ params: GetSpecialistCandidatesParams;
30
+ result: GetSpecialistCandidatesResult;
31
+ };
32
+ confirmSpecialistLinks: {
33
+ params: {
34
+ specialistIds: string[];
35
+ };
36
+ result: {
37
+ confirmed: number;
38
+ };
39
+ };
40
+ rejectSpecialistCandidate: {
41
+ params: {
42
+ specialistId: string;
43
+ };
44
+ result: {
45
+ success: boolean;
46
+ };
47
+ };
48
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Company } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ import type { Media, Service } from '@/entities/dictionary';
2
+ interface DefaultCompany {
3
+ id: string;
4
+ name: string;
5
+ inn?: string | null;
6
+ entityType: 'INDIVIDUAL' | 'LEGAL_ENTITY' | 'SOLE_PROPRIETOR' | 'SELF_EMPLOYED';
7
+ entityRole: 'CUSTOMER' | 'AGENCY' | 'SPECIALIST';
8
+ data?: {
9
+ ogrn?: string | null;
10
+ kpp?: string | null;
11
+ okved?: string | null;
12
+ regDate?: string | null;
13
+ regAddress?: string | null;
14
+ factAddress?: string | null;
15
+ director?: string | null;
16
+ taxForm?: string | null;
17
+ bik?: string | null;
18
+ bankName?: string | null;
19
+ accountNumber?: string | null;
20
+ };
21
+ services?: (string | Service)[] | null;
22
+ dossier?: {
23
+ code: 'CV' | 'CHECKLIST';
24
+ content?: (string | null) | Media;
25
+ id?: string | null;
26
+ }[] | null;
27
+ telegramChatId?: string | null;
28
+ telegramChatNotificationId?: string | null;
29
+ isSpecialistNotificationSub?: boolean | null;
30
+ theme?: string | null;
31
+ updatedAt: string;
32
+ createdAt: string;
33
+ }
34
+ export type Company<TOverride extends Partial<DefaultCompany> = {}> = Omit<DefaultCompany, keyof TOverride> & TOverride;
35
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Category } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { City } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Country } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { DataSource } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Grade } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 @@
1
+ export {};
@@ -0,0 +1,15 @@
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';
15
+ export type { OfferRejectCause } from './offerRejectCause';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Industry } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Language } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Media } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { OfferRejectCause } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export interface OfferRejectCause {
2
+ id: string;
3
+ name: string;
4
+ code: string;
5
+ updatedAt: string;
6
+ createdAt: string;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { OfferStatus } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Permission } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Role } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Permission } from '@/entities/dictionary';
2
+ interface DefaultRole {
3
+ id: string;
4
+ name: string;
5
+ code: string;
6
+ description?: string | null;
7
+ permissions?: (string | Permission)[] | null;
8
+ updatedAt: string;
9
+ createdAt: string;
10
+ }
11
+ export type Role<TOverride extends Partial<DefaultRole> = {}> = Omit<DefaultRole, keyof TOverride> & TOverride;
12
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Service } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import type { Media } from '@/entities/dictionary';
2
+ interface DefaultService {
3
+ id: string;
4
+ top?: boolean | null;
5
+ name: string;
6
+ content: {
7
+ root: {
8
+ type: string;
9
+ children: {
10
+ type: any;
11
+ version: number;
12
+ [k: string]: unknown;
13
+ }[];
14
+ direction: ('ltr' | 'rtl') | null;
15
+ format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
16
+ indent: number;
17
+ version: number;
18
+ };
19
+ [k: string]: unknown;
20
+ };
21
+ content_html?: string | null;
22
+ gallery?: {
23
+ photo?: (string | Media)[] | null;
24
+ id?: string | null;
25
+ }[] | null;
26
+ amount?: number | null;
27
+ currency?: ('RUB' | 'EUR' | 'USD') | null;
28
+ updatedAt: string;
29
+ createdAt: string;
30
+ }
31
+ export type Service<TOverride extends Partial<DefaultService> = {}> = Omit<DefaultService, keyof TOverride> & TOverride;
32
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Skill } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};
@@ -0,0 +1 @@
1
+ export type { Specialization } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { Category } from '@/entities/dictionary';
2
+ export interface DefaultSpecialization {
3
+ id: string;
4
+ name: string;
5
+ category?: (string | null) | Category;
6
+ updatedAt: string;
7
+ createdAt: string;
8
+ }
9
+ export type Specialization<TOverride extends Partial<DefaultSpecialization> = {}> = Omit<DefaultSpecialization, keyof TOverride> & TOverride;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export type { Company } from "./company";
2
+ export type * from "./dictionary";
3
+ export type * from "./user";
4
+ export type { Specialist } from "./specialist";
5
+ export type { Offer, OfferCreatedBy, OfferRejectCause } from "./offer";
6
+ export type { Job, JobCreatedBy } from "./job";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Job, JobCreatedBy } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,66 @@
1
+ import type { City, Country, Industry, Grade, Language, DataSource, Specialization } from '@/entities/dictionary';
2
+ import type { Company } from '@/entities/company';
3
+ export type JobCreatedBy = 'user' | 'telegram' | 'headhunter' | 'system';
4
+ interface JobRequirement {
5
+ requirement: string;
6
+ mandatory?: boolean | null;
7
+ id?: string | null;
8
+ }
9
+ interface JobTask {
10
+ name?: string | null;
11
+ id?: string | null;
12
+ }
13
+ interface JobLanguage {
14
+ language?: (string | null) | Language;
15
+ level?: ('A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2' | 'L1' | '-') | null;
16
+ id?: string | null;
17
+ }
18
+ interface DefaultJob {
19
+ id: string;
20
+ name?: string | null;
21
+ top?: boolean | null;
22
+ externId?: string | null;
23
+ requirements?: JobRequirement[] | null;
24
+ tasks?: [] | null;
25
+ description?: string | null;
26
+ descriptionTeam?: JobTask[] | null;
27
+ projectConditions?: string | null;
28
+ industry?: (string | null) | Industry;
29
+ specialization?: (string | null) | Specialization;
30
+ grades: (string | Grade)[];
31
+ amount?: number | null;
32
+ currency?: ('RUB' | 'EUR' | 'USD') | null;
33
+ numberOfSpecialists: number;
34
+ attractionPeriod?: {
35
+ from?: number | null;
36
+ to?: number | null;
37
+ text?: string | null;
38
+ };
39
+ workFormat?: ('remote' | 'office' | 'mixed') | null;
40
+ employmentType?: ('full' | 'short') | null;
41
+ schedule?: string | null;
42
+ workingHours?: string | null;
43
+ projectStart?: string | null;
44
+ city?: (string | null) | City;
45
+ country?: (string | null) | Country;
46
+ language?: [] | null;
47
+ requiredCitizenship?: JobLanguage[] | null;
48
+ status: 'created' | 'selection' | 'suspended' | 'archive' | 'hidden';
49
+ requiredSkills?: {
50
+ [k: string]: unknown;
51
+ } | unknown[] | string | number | boolean | null;
52
+ skills?: string[] | null;
53
+ company?: (string | null) | Company;
54
+ dataSource?: (string | null) | DataSource;
55
+ parent?: (string | null) | Job;
56
+ visibility?: ('visible' | 'hidden') | null;
57
+ priority?: number | null;
58
+ customer?: (string | null) | Company;
59
+ link?: string | null;
60
+ searchQuery?: string | null;
61
+ createdBy?: JobCreatedBy | null;
62
+ updatedAt: string;
63
+ createdAt: string;
64
+ }
65
+ export type Job<TOverride extends Partial<DefaultJob> = {}> = Omit<DefaultJob, keyof TOverride> & TOverride;
66
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Offer, OfferCreatedBy, OfferRejectCause } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
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, OfferRejectCause } from "@/entities/dictionary";
5
+ import { Company } from "../company";
6
+ export type { OfferRejectCause };
7
+ export type OfferCreatedBy = "user" | "databaseСomparison" | "loader" | "cosineSimilarity" | "importByLink" | "headhunter" | "system" | "skill";
8
+ interface OfferRequirement {
9
+ id?: string | null;
10
+ requirement: string;
11
+ mandatory?: boolean | null;
12
+ matched: number;
13
+ comment?: string | null;
14
+ questions?: {
15
+ question?: string | null;
16
+ answer?: string | null;
17
+ id?: string | null;
18
+ }[] | null;
19
+ }
20
+ interface DefaultOffer {
21
+ id: string;
22
+ specialist: string | Specialist;
23
+ specialistCompany?: string | Company;
24
+ job: string | Job;
25
+ jobCompany?: string | Company;
26
+ agent?: string | null | User;
27
+ rate?: number | null;
28
+ requirements?: OfferRequirement[] | null;
29
+ status: string | OfferStatus;
30
+ salary?: {
31
+ amount?: number | null;
32
+ currency?: ("RUB" | "EUR" | "USD") | null;
33
+ hourlyRate?: number | null;
34
+ };
35
+ matched?: number | null;
36
+ comment?: string | null;
37
+ assessmentOfRequirements?: string | null;
38
+ rejectComment?: string | null;
39
+ rejectCause?: string | OfferRejectCause | null;
40
+ createdBy?: OfferCreatedBy | null;
41
+ respondedAt?: string | null;
42
+ matchedBatch?: number | null;
43
+ liked?: boolean | null;
44
+ updatedAt: string;
45
+ createdAt: string;
46
+ }
47
+ export type Offer<TOverride extends Partial<DefaultOffer> = {}> = Omit<DefaultOffer, keyof TOverride> & TOverride;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type { Specialist } from './model';
@@ -0,0 +1 @@
1
+ export {};
@@ -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, CurrentUser, CurrentUserRole } from "./model";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
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 interface CurrentUserRole {
24
+ name: string;
25
+ displayName: string;
26
+ }
27
+ export interface CurrentUser {
28
+ id: string;
29
+ email: string;
30
+ name: string;
31
+ displayName?: string;
32
+ image?: string | null;
33
+ role: CurrentUserRole;
34
+ permissions: string[];
35
+ }
36
+ 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,93 @@
1
+ import type { City, Country, Grade, Job, Offer, OfferStatus, Specialist, Specialization, OfferCreatedBy } 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
+ }>;
21
+ export type OfferRequirement = {
22
+ requirement?: string;
23
+ matched?: number;
24
+ comment?: string;
25
+ questions?: Array<{
26
+ question?: string;
27
+ answer?: string;
28
+ id?: string;
29
+ }>;
30
+ };
31
+ export interface OfferRejectCause {
32
+ id: string;
33
+ name: string;
34
+ code: string;
35
+ updatedAt: string;
36
+ createdAt: string;
37
+ }
38
+ type BaseOfferCard = {
39
+ id: string;
40
+ matched?: number;
41
+ comment?: string;
42
+ rejectComment?: string;
43
+ rejectCause?: OfferRejectCause;
44
+ liked?: boolean;
45
+ createdAt?: string;
46
+ updatedAt?: string;
47
+ createdBy?: OfferCreatedBy;
48
+ status: {
49
+ id: string;
50
+ code: string;
51
+ name?: string;
52
+ };
53
+ salary?: {
54
+ amount?: number;
55
+ currency?: string;
56
+ };
57
+ job: string | {
58
+ id: string;
59
+ };
60
+ specialist: {
61
+ id: string;
62
+ firstName?: string;
63
+ middleName?: string;
64
+ lastName?: string;
65
+ title?: string;
66
+ specialization?: {
67
+ id: string;
68
+ name: string;
69
+ };
70
+ grade?: {
71
+ id: string;
72
+ name: string;
73
+ };
74
+ city?: {
75
+ id: string;
76
+ name: string;
77
+ };
78
+ country?: {
79
+ id: string;
80
+ name: string;
81
+ } | string;
82
+ experience?: Array<{
83
+ start?: string | null;
84
+ end?: string | null;
85
+ }>;
86
+ experienceTotalMonths?: number;
87
+ };
88
+ };
89
+ export type OptimizedOfferCard = BaseOfferCard;
90
+ export type OfferComparisonItem = BaseOfferCard & {
91
+ requirements?: OfferRequirement[];
92
+ };
93
+ export {};
@@ -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 CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@iconicompany/imarketplacetypes",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
7
7
  "type": "module",
8
8
  "scripts": {
9
- "build": "npx tsc --noEmit"
9
+ "build": "npx tsc"
10
10
  },
11
11
  "devDependencies": {
12
12
  "typescript": "^5.0.0"