Skip to content

Commit eb1898b

Browse files
willdchCarsonF
andauthored
[EdgeDB] Add seed data for Internship Engagements (#3086)
Co-authored-by: Carson Full <[email protected]>
1 parent 2461e69 commit eb1898b

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
with
2+
engagementsJson := to_json('[
3+
{
4+
"project": "Arwen Evenstar Intern",
5+
"intern": "Samwise",
6+
"status": "Completed",
7+
"mentor": "Gandalf",
8+
"countryOfOrigin": "New Zealand",
9+
"startDateOverride": "2019-04-01",
10+
"endDateOverride": "2020-06-30"
11+
},
12+
{
13+
"project": "Glorfindel - Exegetical Facilitator",
14+
"intern": "Frodo",
15+
"status": "DiscussingChangeToPlan",
16+
"mentor": "Bilbo",
17+
"countryOfOrigin": "New Zealand",
18+
"startDateOverride": "2023-01-01",
19+
"endDateOverride": "2024-07-22"
20+
},
21+
{
22+
"project": "Cohort of the Ents",
23+
"intern": "Meriadoc",
24+
"status": "Active"
25+
},
26+
{
27+
"project": "Barliman Butterbur Intern",
28+
"intern": "Peregrin",
29+
"status": "Suspended"
30+
},
31+
{
32+
"project": "Eomer of Rohan Intern",
33+
"intern": "Aragorn",
34+
"status": "FinalizingCompletion",
35+
"countryOfOrigin": "New Zealand"
36+
}
37+
]'),
38+
engagements := (
39+
for engagement in json_array_unpack(engagementsJson)
40+
union (
41+
with
42+
intern := assert_single((select User filter .realFirstName = <str>engagement['intern'])),
43+
project := (select InternshipProject filter .name = <str>engagement['project']),
44+
select (
45+
(select InternshipEngagement filter .intern = intern and .project = project) ??
46+
(insert InternshipEngagement {
47+
project := project,
48+
projectContext := project.projectContext,
49+
intern := intern,
50+
status := <Engagement::Status>engagement['status'],
51+
startDateOverride := <cal::local_date>json_get(engagement, 'startDateOverride'),
52+
endDateOverride := <cal::local_date>json_get(engagement, 'endDateOverride'),
53+
mentor := assert_single((select User filter .realFirstName = <str>json_get(engagement, 'mentor'))),
54+
countryOfOrigin := (select Location filter .name = <str>json_get(engagement, 'countryOfOrigin')),
55+
})
56+
)
57+
)
58+
),
59+
new := (select engagements filter .createdAt = datetime_of_statement())
60+
select { `Added Internship Engagements: Intern -> Project` := new.intern.realFirstName ++ ' ' ++ new.intern.realLastName ++ ' -> ' ++ new.project.name }
61+
filter count(new) > 0;

0 commit comments

Comments
 (0)