@laboratoria/sdk-js 5.2.0 → 5.3.0-beta.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -27,7 +27,6 @@ const app = createApp({
27
27
  firebaseApiKey: '',
28
28
  firebaseProject: '',
29
29
  coreApiUrl: '',
30
- jobsApiUrl: '',
31
30
  });
32
31
  ```
33
32
 
package/index.js CHANGED
@@ -8,7 +8,6 @@ import {
8
8
  } from 'firebase/auth';
9
9
  import { createAPI as createCoreAPI } from './lib/core';
10
10
  import { createAPI as createCurriculumAPI } from './lib/curriculum';
11
- import { createAPI as createJobsAPI } from './lib/jobs';
12
11
 
13
12
  export * from './lib/util';
14
13
 
@@ -16,7 +15,6 @@ export const createApp = ({
16
15
  firebaseApiKey = 'AIzaSyAXbaEbpq8NOfn0r8mIrcoHvoGRkJThwdc',
17
16
  firebaseProject = 'laboratoria-la',
18
17
  coreApiUrl = 'https://us-central1-outpost-272720.cloudfunctions.net/core-api',
19
- jobsApiUrl = 'https://us-central1-outpost-272720.cloudfunctions.net/jobs-api',
20
18
  } = {}) => {
21
19
  const firebaseApp = initializeApp({
22
20
  apiKey: firebaseApiKey,
@@ -28,7 +26,6 @@ export const createApp = ({
28
26
  const firebaseAuth = getAuth(firebaseApp);
29
27
  const state = { authUser: undefined, user: undefined };
30
28
  const coreAPI = createCoreAPI(coreApiUrl, state);
31
- const jobsAPI = createJobsAPI(jobsApiUrl, state);
32
29
  const curriculumAPI = createCurriculumAPI();
33
30
 
34
31
  const authAPI = {
@@ -59,7 +56,6 @@ export const createApp = ({
59
56
  };
60
57
 
61
58
  return {
62
- ...jobsAPI,
63
59
  ...curriculumAPI,
64
60
  ...coreAPI,
65
61
  auth: authAPI,
package/lib/core.js CHANGED
@@ -348,6 +348,15 @@ const extended = {
348
348
  plural: 'universities',
349
349
  searchProps: ['name'],
350
350
  },
351
+ Job: {
352
+ // inputProps: [],
353
+ // properties: {},
354
+ },
355
+ Company: {
356
+ plural: 'companies',
357
+ // inputProps: [],
358
+ // properties: {},
359
+ },
351
360
  };
352
361
 
353
362
  export const createAPI = (url, state) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laboratoria/sdk-js",
3
- "version": "5.2.0",
3
+ "version": "5.3.0-beta.0",
4
4
  "description": "Laboratoria JavaScript (browser) SDK",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -26,11 +26,11 @@
26
26
  "testEnvironment": "jsdom",
27
27
  "coverageThreshold": {
28
28
  "global": {
29
- "statements": 97,
30
- "branches": 94,
29
+ "statements": 98,
30
+ "branches": 95,
31
31
  "functions": 100,
32
- "lines": 97
32
+ "lines": 98
33
33
  }
34
34
  }
35
35
  }
36
- }
36
+ }
package/schemas/core.json CHANGED
@@ -83,6 +83,18 @@
83
83
  "items": {
84
84
  "$ref": "#/definitions/University"
85
85
  }
86
+ },
87
+ "companies": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/definitions/Company"
91
+ }
92
+ },
93
+ "jobs": {
94
+ "type": "array",
95
+ "items": {
96
+ "$ref": "#/definitions/Job"
97
+ }
86
98
  }
87
99
  }
88
100
  },
@@ -297,6 +309,18 @@
297
309
  "items": {
298
310
  "$ref": "#/definitions/ActivityLogEntry"
299
311
  }
312
+ },
313
+ "jobValidityReviews": {
314
+ "type": "array",
315
+ "items": {
316
+ "$ref": "#/definitions/JobValidityReview"
317
+ }
318
+ },
319
+ "jobApplications": {
320
+ "type": "array",
321
+ "items": {
322
+ "$ref": "#/definitions/JobApplication"
323
+ }
300
324
  }
301
325
  }
302
326
  },
@@ -545,6 +569,12 @@
545
569
  "items": {
546
570
  "$ref": "#/definitions/ActivityLogEntry"
547
571
  }
572
+ },
573
+ "jobApplications": {
574
+ "type": "array",
575
+ "items": {
576
+ "$ref": "#/definitions/JobApplication"
577
+ }
548
578
  }
549
579
  }
550
580
  },
@@ -1362,6 +1392,461 @@
1362
1392
  "$ref": "#/definitions/Message"
1363
1393
  }
1364
1394
  }
1395
+ },
1396
+ "Industry": {
1397
+ "type": "object",
1398
+ "properties": {
1399
+ "id": {
1400
+ "type": "integer"
1401
+ },
1402
+ "createdAt": {
1403
+ "type": "string",
1404
+ "format": "date-time"
1405
+ },
1406
+ "updatedAt": {
1407
+ "type": "string",
1408
+ "format": "date-time"
1409
+ },
1410
+ "createdBy": {
1411
+ "type": [
1412
+ "string",
1413
+ "null"
1414
+ ]
1415
+ },
1416
+ "name": {
1417
+ "type": "string"
1418
+ },
1419
+ "companies": {
1420
+ "type": "array",
1421
+ "items": {
1422
+ "$ref": "#/definitions/Company"
1423
+ }
1424
+ }
1425
+ }
1426
+ },
1427
+ "Company": {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "id": {
1431
+ "type": "integer"
1432
+ },
1433
+ "createdAt": {
1434
+ "type": "string",
1435
+ "format": "date-time"
1436
+ },
1437
+ "updatedAt": {
1438
+ "type": "string",
1439
+ "format": "date-time"
1440
+ },
1441
+ "createdBy": {
1442
+ "type": [
1443
+ "string",
1444
+ "null"
1445
+ ]
1446
+ },
1447
+ "source": {
1448
+ "type": "string"
1449
+ },
1450
+ "sourceId": {
1451
+ "type": "string"
1452
+ },
1453
+ "name": {
1454
+ "type": "string"
1455
+ },
1456
+ "size": {
1457
+ "type": [
1458
+ "string",
1459
+ "null"
1460
+ ],
1461
+ "enum": [
1462
+ "A_2_10",
1463
+ "B_11_50",
1464
+ "C_51_200",
1465
+ "D_201_500",
1466
+ "E_501_1000",
1467
+ "F_1001_5000",
1468
+ "G_5001_10000",
1469
+ "H_10001_plus"
1470
+ ]
1471
+ },
1472
+ "data": {
1473
+ "type": [
1474
+ "number",
1475
+ "string",
1476
+ "boolean",
1477
+ "object",
1478
+ "array",
1479
+ "null"
1480
+ ]
1481
+ },
1482
+ "web": {
1483
+ "type": [
1484
+ "string",
1485
+ "null"
1486
+ ]
1487
+ },
1488
+ "twitter": {
1489
+ "type": [
1490
+ "string",
1491
+ "null"
1492
+ ]
1493
+ },
1494
+ "github": {
1495
+ "type": [
1496
+ "string",
1497
+ "null"
1498
+ ]
1499
+ },
1500
+ "facebook": {
1501
+ "type": [
1502
+ "string",
1503
+ "null"
1504
+ ]
1505
+ },
1506
+ "country": {
1507
+ "anyOf": [
1508
+ {
1509
+ "$ref": "#/definitions/Country"
1510
+ },
1511
+ {
1512
+ "type": "null"
1513
+ }
1514
+ ]
1515
+ },
1516
+ "industry": {
1517
+ "anyOf": [
1518
+ {
1519
+ "$ref": "#/definitions/Industry"
1520
+ },
1521
+ {
1522
+ "type": "null"
1523
+ }
1524
+ ]
1525
+ },
1526
+ "jobs": {
1527
+ "type": "array",
1528
+ "items": {
1529
+ "$ref": "#/definitions/Job"
1530
+ }
1531
+ },
1532
+ "categories": {
1533
+ "type": "array",
1534
+ "enum": [
1535
+ "Tech_Consultancy",
1536
+ "Digital_Transformation",
1537
+ "Agency",
1538
+ "Startups",
1539
+ "High_tech",
1540
+ "Traditional_Consulting"
1541
+ ]
1542
+ }
1543
+ }
1544
+ },
1545
+ "Job": {
1546
+ "type": "object",
1547
+ "properties": {
1548
+ "id": {
1549
+ "type": "integer"
1550
+ },
1551
+ "createdAt": {
1552
+ "type": "string",
1553
+ "format": "date-time"
1554
+ },
1555
+ "updatedAt": {
1556
+ "type": "string",
1557
+ "format": "date-time"
1558
+ },
1559
+ "createdBy": {
1560
+ "type": [
1561
+ "string",
1562
+ "null"
1563
+ ]
1564
+ },
1565
+ "source": {
1566
+ "type": "string"
1567
+ },
1568
+ "sourceId": {
1569
+ "type": "string"
1570
+ },
1571
+ "title": {
1572
+ "type": "string"
1573
+ },
1574
+ "publishedAt": {
1575
+ "type": "string",
1576
+ "format": "date-time"
1577
+ },
1578
+ "modality": {
1579
+ "type": "string"
1580
+ },
1581
+ "publicUrl": {
1582
+ "type": [
1583
+ "string",
1584
+ "null"
1585
+ ]
1586
+ },
1587
+ "location": {
1588
+ "type": [
1589
+ "string",
1590
+ "null"
1591
+ ]
1592
+ },
1593
+ "data": {
1594
+ "type": [
1595
+ "number",
1596
+ "string",
1597
+ "boolean",
1598
+ "object",
1599
+ "array",
1600
+ "null"
1601
+ ]
1602
+ },
1603
+ "description": {
1604
+ "type": [
1605
+ "string",
1606
+ "null"
1607
+ ]
1608
+ },
1609
+ "descriptionHTML": {
1610
+ "type": [
1611
+ "string",
1612
+ "null"
1613
+ ]
1614
+ },
1615
+ "functions": {
1616
+ "type": [
1617
+ "string",
1618
+ "null"
1619
+ ]
1620
+ },
1621
+ "functionsHTML": {
1622
+ "type": [
1623
+ "string",
1624
+ "null"
1625
+ ]
1626
+ },
1627
+ "seniority": {
1628
+ "type": [
1629
+ "string",
1630
+ "null"
1631
+ ]
1632
+ },
1633
+ "remote": {
1634
+ "type": [
1635
+ "boolean",
1636
+ "null"
1637
+ ]
1638
+ },
1639
+ "remoteOption": {
1640
+ "type": [
1641
+ "string",
1642
+ "null"
1643
+ ],
1644
+ "enum": [
1645
+ "remote_for_now",
1646
+ "locally_remote",
1647
+ "fully_remote",
1648
+ "no_remote",
1649
+ "mixed"
1650
+ ]
1651
+ },
1652
+ "lang": {
1653
+ "type": [
1654
+ "string",
1655
+ "null"
1656
+ ],
1657
+ "enum": [
1658
+ "en",
1659
+ "es",
1660
+ "pt"
1661
+ ]
1662
+ },
1663
+ "maxSalary": {
1664
+ "type": [
1665
+ "integer",
1666
+ "null"
1667
+ ]
1668
+ },
1669
+ "minSalary": {
1670
+ "type": [
1671
+ "integer",
1672
+ "null"
1673
+ ]
1674
+ },
1675
+ "tags": {
1676
+ "type": "array",
1677
+ "items": {
1678
+ "type": "string"
1679
+ }
1680
+ },
1681
+ "company": {
1682
+ "$ref": "#/definitions/Company"
1683
+ },
1684
+ "country": {
1685
+ "anyOf": [
1686
+ {
1687
+ "$ref": "#/definitions/Country"
1688
+ },
1689
+ {
1690
+ "type": "null"
1691
+ }
1692
+ ]
1693
+ },
1694
+ "validityReviews": {
1695
+ "type": "array",
1696
+ "items": {
1697
+ "$ref": "#/definitions/JobValidityReview"
1698
+ }
1699
+ },
1700
+ "applications": {
1701
+ "type": "array",
1702
+ "items": {
1703
+ "$ref": "#/definitions/JobApplication"
1704
+ }
1705
+ }
1706
+ }
1707
+ },
1708
+ "JobValidityReview": {
1709
+ "type": "object",
1710
+ "properties": {
1711
+ "id": {
1712
+ "type": "integer"
1713
+ },
1714
+ "createdAt": {
1715
+ "type": "string",
1716
+ "format": "date-time"
1717
+ },
1718
+ "updatedAt": {
1719
+ "type": "string",
1720
+ "format": "date-time"
1721
+ },
1722
+ "isValid": {
1723
+ "type": "boolean"
1724
+ },
1725
+ "profileType": {
1726
+ "type": [
1727
+ "string",
1728
+ "null"
1729
+ ],
1730
+ "enum": [
1731
+ "design",
1732
+ "front_end",
1733
+ "angular",
1734
+ "react",
1735
+ "vue",
1736
+ "back_end",
1737
+ "full_stack",
1738
+ "ux",
1739
+ "other"
1740
+ ]
1741
+ },
1742
+ "invalidReason": {
1743
+ "type": [
1744
+ "string",
1745
+ "null"
1746
+ ],
1747
+ "enum": [
1748
+ "unrelated",
1749
+ "experience",
1750
+ "qualifications",
1751
+ "other"
1752
+ ]
1753
+ },
1754
+ "comment": {
1755
+ "type": [
1756
+ "string",
1757
+ "null"
1758
+ ]
1759
+ },
1760
+ "author": {
1761
+ "$ref": "#/definitions/User"
1762
+ },
1763
+ "job": {
1764
+ "$ref": "#/definitions/Job"
1765
+ }
1766
+ }
1767
+ },
1768
+ "JobApplication": {
1769
+ "type": "object",
1770
+ "properties": {
1771
+ "id": {
1772
+ "type": "integer"
1773
+ },
1774
+ "createdAt": {
1775
+ "type": "string",
1776
+ "format": "date-time"
1777
+ },
1778
+ "updatedAt": {
1779
+ "type": "string",
1780
+ "format": "date-time"
1781
+ },
1782
+ "createdBy": {
1783
+ "type": [
1784
+ "string",
1785
+ "null"
1786
+ ]
1787
+ },
1788
+ "status": {
1789
+ "type": "string",
1790
+ "default": "pending",
1791
+ "enum": [
1792
+ "pending",
1793
+ "applied",
1794
+ "interview",
1795
+ "challenge",
1796
+ "followup",
1797
+ "hired",
1798
+ "not_hired"
1799
+ ]
1800
+ },
1801
+ "hireDate": {
1802
+ "type": [
1803
+ "string",
1804
+ "null"
1805
+ ],
1806
+ "format": "date-time"
1807
+ },
1808
+ "jobStartDate": {
1809
+ "type": [
1810
+ "string",
1811
+ "null"
1812
+ ],
1813
+ "format": "date-time"
1814
+ },
1815
+ "netSalary": {
1816
+ "type": [
1817
+ "integer",
1818
+ "null"
1819
+ ]
1820
+ },
1821
+ "grossSalary": {
1822
+ "type": [
1823
+ "integer",
1824
+ "null"
1825
+ ]
1826
+ },
1827
+ "currency": {
1828
+ "type": [
1829
+ "string",
1830
+ "null"
1831
+ ]
1832
+ },
1833
+ "job": {
1834
+ "$ref": "#/definitions/Job"
1835
+ },
1836
+ "user": {
1837
+ "$ref": "#/definitions/User"
1838
+ },
1839
+ "cohort": {
1840
+ "anyOf": [
1841
+ {
1842
+ "$ref": "#/definitions/Cohort"
1843
+ },
1844
+ {
1845
+ "type": "null"
1846
+ }
1847
+ ]
1848
+ }
1849
+ }
1365
1850
  }
1366
1851
  },
1367
1852
  "type": "object",
@@ -1428,6 +1913,21 @@
1428
1913
  },
1429
1914
  "messageLog": {
1430
1915
  "$ref": "#/definitions/MessageLog"
1916
+ },
1917
+ "industry": {
1918
+ "$ref": "#/definitions/Industry"
1919
+ },
1920
+ "company": {
1921
+ "$ref": "#/definitions/Company"
1922
+ },
1923
+ "job": {
1924
+ "$ref": "#/definitions/Job"
1925
+ },
1926
+ "jobValidityReview": {
1927
+ "$ref": "#/definitions/JobValidityReview"
1928
+ },
1929
+ "jobApplication": {
1930
+ "$ref": "#/definitions/JobApplication"
1431
1931
  }
1432
1932
  }
1433
1933
  }
package/lib/jobs.js DELETED
@@ -1,22 +0,0 @@
1
- import { createModels, extendSchemaDefinitions } from './model';
2
- import schema from '../schemas/jobs.json';
3
-
4
- const extended = {
5
- Country: {
6
- plural: 'countries',
7
- },
8
- Job: {
9
- // inputProps: [],
10
- // properties: {},
11
- },
12
- Company: {
13
- plural: 'companies',
14
- // inputProps: [],
15
- // properties: {},
16
- },
17
- };
18
-
19
- export const createAPI = (url, state) => createModels(url, state, {
20
- ...schema,
21
- definitions: extendSchemaDefinitions(schema, extended),
22
- });
package/schemas/README.md DELETED
@@ -1,5 +0,0 @@
1
- # Schemas
2
-
3
- * `core-api`
4
- * `team-api`
5
- * `jobs-api`
package/schemas/jobs.json DELETED
@@ -1,500 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "definitions": {
4
- "Country": {
5
- "type": "object",
6
- "properties": {
7
- "code": {
8
- "type": "string"
9
- },
10
- "name": {
11
- "type": "string"
12
- },
13
- "jobs": {
14
- "type": "array",
15
- "items": {
16
- "$ref": "#/definitions/Job"
17
- }
18
- },
19
- "companies": {
20
- "type": "array",
21
- "items": {
22
- "$ref": "#/definitions/Company"
23
- }
24
- }
25
- }
26
- },
27
- "Industry": {
28
- "type": "object",
29
- "properties": {
30
- "id": {
31
- "type": "integer"
32
- },
33
- "createdAt": {
34
- "type": "string",
35
- "format": "date-time"
36
- },
37
- "updatedAt": {
38
- "type": "string",
39
- "format": "date-time"
40
- },
41
- "createdBy": {
42
- "type": [
43
- "string",
44
- "null"
45
- ]
46
- },
47
- "name": {
48
- "type": "string"
49
- },
50
- "companies": {
51
- "type": "array",
52
- "items": {
53
- "$ref": "#/definitions/Company"
54
- }
55
- }
56
- }
57
- },
58
- "Company": {
59
- "type": "object",
60
- "properties": {
61
- "id": {
62
- "type": "integer"
63
- },
64
- "createdAt": {
65
- "type": "string",
66
- "format": "date-time"
67
- },
68
- "updatedAt": {
69
- "type": "string",
70
- "format": "date-time"
71
- },
72
- "createdBy": {
73
- "type": [
74
- "string",
75
- "null"
76
- ]
77
- },
78
- "source": {
79
- "type": "string"
80
- },
81
- "sourceId": {
82
- "type": "string"
83
- },
84
- "name": {
85
- "type": "string"
86
- },
87
- "size": {
88
- "type": [
89
- "string",
90
- "null"
91
- ],
92
- "enum": [
93
- "A_2_10",
94
- "B_11_50",
95
- "C_51_200",
96
- "D_201_500",
97
- "E_501_1000",
98
- "F_1001_5000",
99
- "G_5001_10000",
100
- "H_10001_plus"
101
- ]
102
- },
103
- "data": {
104
- "type": [
105
- "number",
106
- "string",
107
- "boolean",
108
- "object",
109
- "array",
110
- "null"
111
- ]
112
- },
113
- "web": {
114
- "type": [
115
- "string",
116
- "null"
117
- ]
118
- },
119
- "twitter": {
120
- "type": [
121
- "string",
122
- "null"
123
- ]
124
- },
125
- "github": {
126
- "type": [
127
- "string",
128
- "null"
129
- ]
130
- },
131
- "facebook": {
132
- "type": [
133
- "string",
134
- "null"
135
- ]
136
- },
137
- "country": {
138
- "anyOf": [
139
- {
140
- "$ref": "#/definitions/Country"
141
- },
142
- {
143
- "type": "null"
144
- }
145
- ]
146
- },
147
- "industry": {
148
- "anyOf": [
149
- {
150
- "$ref": "#/definitions/Industry"
151
- },
152
- {
153
- "type": "null"
154
- }
155
- ]
156
- },
157
- "jobs": {
158
- "type": "array",
159
- "items": {
160
- "$ref": "#/definitions/Job"
161
- }
162
- },
163
- "categories": {
164
- "type": "array",
165
- "enum": [
166
- "Tech_Consultancy",
167
- "Digital_Transformation",
168
- "Agency",
169
- "Startups",
170
- "High_tech",
171
- "Traditional_Consulting"
172
- ]
173
- }
174
- }
175
- },
176
- "Job": {
177
- "type": "object",
178
- "properties": {
179
- "id": {
180
- "type": "integer"
181
- },
182
- "createdAt": {
183
- "type": "string",
184
- "format": "date-time"
185
- },
186
- "updatedAt": {
187
- "type": "string",
188
- "format": "date-time"
189
- },
190
- "createdBy": {
191
- "type": [
192
- "string",
193
- "null"
194
- ]
195
- },
196
- "source": {
197
- "type": "string"
198
- },
199
- "sourceId": {
200
- "type": "string"
201
- },
202
- "title": {
203
- "type": "string"
204
- },
205
- "publishedAt": {
206
- "type": "string",
207
- "format": "date-time"
208
- },
209
- "modality": {
210
- "type": "string"
211
- },
212
- "publicUrl": {
213
- "type": [
214
- "string",
215
- "null"
216
- ]
217
- },
218
- "location": {
219
- "type": [
220
- "string",
221
- "null"
222
- ]
223
- },
224
- "data": {
225
- "type": [
226
- "number",
227
- "string",
228
- "boolean",
229
- "object",
230
- "array",
231
- "null"
232
- ]
233
- },
234
- "description": {
235
- "type": [
236
- "string",
237
- "null"
238
- ]
239
- },
240
- "descriptionHTML": {
241
- "type": [
242
- "string",
243
- "null"
244
- ]
245
- },
246
- "functions": {
247
- "type": [
248
- "string",
249
- "null"
250
- ]
251
- },
252
- "functionsHTML": {
253
- "type": [
254
- "string",
255
- "null"
256
- ]
257
- },
258
- "seniority": {
259
- "type": [
260
- "string",
261
- "null"
262
- ]
263
- },
264
- "remote": {
265
- "type": [
266
- "boolean",
267
- "null"
268
- ]
269
- },
270
- "remoteOption": {
271
- "type": [
272
- "string",
273
- "null"
274
- ],
275
- "enum": [
276
- "remote_for_now",
277
- "locally_remote",
278
- "fully_remote",
279
- "no_remote",
280
- "mixed"
281
- ]
282
- },
283
- "lang": {
284
- "type": [
285
- "string",
286
- "null"
287
- ],
288
- "enum": [
289
- "en",
290
- "es",
291
- "pt"
292
- ]
293
- },
294
- "maxSalary": {
295
- "type": [
296
- "integer",
297
- "null"
298
- ]
299
- },
300
- "minSalary": {
301
- "type": [
302
- "integer",
303
- "null"
304
- ]
305
- },
306
- "tags": {
307
- "type": "array",
308
- "items": {
309
- "type": "string"
310
- }
311
- },
312
- "company": {
313
- "$ref": "#/definitions/Company"
314
- },
315
- "country": {
316
- "anyOf": [
317
- {
318
- "$ref": "#/definitions/Country"
319
- },
320
- {
321
- "type": "null"
322
- }
323
- ]
324
- },
325
- "validityReviews": {
326
- "type": "array",
327
- "items": {
328
- "$ref": "#/definitions/JobValidityReview"
329
- }
330
- },
331
- "applications": {
332
- "type": "array",
333
- "items": {
334
- "$ref": "#/definitions/JobApplication"
335
- }
336
- }
337
- }
338
- },
339
- "JobValidityReview": {
340
- "type": "object",
341
- "properties": {
342
- "id": {
343
- "type": "integer"
344
- },
345
- "createdAt": {
346
- "type": "string",
347
- "format": "date-time"
348
- },
349
- "updatedAt": {
350
- "type": "string",
351
- "format": "date-time"
352
- },
353
- "createdBy": {
354
- "type": "string"
355
- },
356
- "isValid": {
357
- "type": "boolean"
358
- },
359
- "profileType": {
360
- "type": [
361
- "string",
362
- "null"
363
- ],
364
- "enum": [
365
- "design",
366
- "front_end",
367
- "angular",
368
- "react",
369
- "vue",
370
- "back_end",
371
- "full_stack",
372
- "ux",
373
- "other"
374
- ]
375
- },
376
- "invalidReason": {
377
- "type": [
378
- "string",
379
- "null"
380
- ],
381
- "enum": [
382
- "unrelated",
383
- "experience",
384
- "qualifications",
385
- "other"
386
- ]
387
- },
388
- "comment": {
389
- "type": [
390
- "string",
391
- "null"
392
- ]
393
- },
394
- "job": {
395
- "$ref": "#/definitions/Job"
396
- }
397
- }
398
- },
399
- "JobApplication": {
400
- "type": "object",
401
- "properties": {
402
- "id": {
403
- "type": "integer"
404
- },
405
- "createdAt": {
406
- "type": "string",
407
- "format": "date-time"
408
- },
409
- "updatedAt": {
410
- "type": "string",
411
- "format": "date-time"
412
- },
413
- "createdBy": {
414
- "type": [
415
- "string",
416
- "null"
417
- ]
418
- },
419
- "uid": {
420
- "type": "string"
421
- },
422
- "status": {
423
- "type": "string",
424
- "default": "pending",
425
- "enum": [
426
- "pending",
427
- "applied",
428
- "interview",
429
- "challenge",
430
- "followup",
431
- "hired",
432
- "not_hired"
433
- ]
434
- },
435
- "cohortId": {
436
- "type": [
437
- "integer",
438
- "null"
439
- ]
440
- },
441
- "hireDate": {
442
- "type": [
443
- "string",
444
- "null"
445
- ],
446
- "format": "date-time"
447
- },
448
- "jobStartDate": {
449
- "type": [
450
- "string",
451
- "null"
452
- ],
453
- "format": "date-time"
454
- },
455
- "netSalary": {
456
- "type": [
457
- "integer",
458
- "null"
459
- ]
460
- },
461
- "grossSalary": {
462
- "type": [
463
- "integer",
464
- "null"
465
- ]
466
- },
467
- "currency": {
468
- "type": [
469
- "string",
470
- "null"
471
- ]
472
- },
473
- "job": {
474
- "$ref": "#/definitions/Job"
475
- }
476
- }
477
- }
478
- },
479
- "type": "object",
480
- "properties": {
481
- "country": {
482
- "$ref": "#/definitions/Country"
483
- },
484
- "industry": {
485
- "$ref": "#/definitions/Industry"
486
- },
487
- "company": {
488
- "$ref": "#/definitions/Company"
489
- },
490
- "job": {
491
- "$ref": "#/definitions/Job"
492
- },
493
- "jobValidityReview": {
494
- "$ref": "#/definitions/JobValidityReview"
495
- },
496
- "jobApplication": {
497
- "$ref": "#/definitions/JobApplication"
498
- }
499
- }
500
- }