Skip to content

Commit 3e98048

Browse files
[EdgeDB] Create Organization and Partner schemas (#2967)
Co-authored-by: Carson Full <[email protected]>
1 parent c64f7e8 commit 3e98048

File tree

3 files changed

+124
-0
lines changed

3 files changed

+124
-0
lines changed

dbschema/migrations/00029.edgeql

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
CREATE MIGRATION m1t7atw76jdjhcnrngoj5euzbz7qxve7dokvbhh4x5333yxm5klkwa
2+
ONTO m1rob2znvgmu7myqon4wzkdxur6765udhhucohw6apoxhtrbbnxova
3+
{
4+
CREATE MODULE Organization IF NOT EXISTS;
5+
CREATE MODULE Partner IF NOT EXISTS;
6+
CREATE SCALAR TYPE Organization::Reach EXTENDING enum<Local, Regional, National, `Global`>;
7+
CREATE SCALAR TYPE Organization::Type EXTENDING enum<Church, Parachurch, Mission, TranslationOrganization, Alliance>;
8+
CREATE TYPE default::Organization EXTENDING default::Resource, Project::ContextAware, Mixin::Named {
9+
ALTER PROPERTY name {
10+
SET OWNED;
11+
CREATE CONSTRAINT std::exclusive;
12+
};
13+
CREATE PROPERTY acronym: std::str;
14+
CREATE MULTI PROPERTY reach: Organization::Reach;
15+
CREATE MULTI PROPERTY types: Organization::Type;
16+
};
17+
CREATE SCALAR TYPE Partner::FinancialReportingType EXTENDING enum<Funded, FieldEngaged, Hybrid>;
18+
CREATE SCALAR TYPE Partner::Type EXTENDING enum<Managing, Funding, Impact, Technical, Resource>;
19+
CREATE TYPE default::Partner EXTENDING default::Resource, Project::ContextAware, Mixin::Named, Mixin::Pinnable, Mixin::Taggable {
20+
CREATE REQUIRED LINK organization: default::Organization {
21+
SET readonly := true;
22+
CREATE CONSTRAINT std::exclusive;
23+
};
24+
ALTER PROPERTY name {
25+
SET OWNED;
26+
CREATE CONSTRAINT std::exclusive;
27+
};
28+
CREATE MULTI LINK countries: default::Location;
29+
CREATE MULTI LINK fieldRegions: default::FieldRegion;
30+
CREATE LINK languageOfWiderCommunication: default::Language;
31+
CREATE MULTI LINK languagesOfConsulting: default::Language;
32+
CREATE LINK pointOfContact: default::User;
33+
CREATE REQUIRED PROPERTY active: std::bool {
34+
SET default := true;
35+
};
36+
CREATE MULTI PROPERTY financialReportingTypes: Partner::FinancialReportingType;
37+
CREATE REQUIRED PROPERTY globalInnovationsClient: std::bool {
38+
SET default := false;
39+
};
40+
CREATE PROPERTY pmcEntityCode: std::str {
41+
CREATE CONSTRAINT std::regexp('^[A-Z]{3}$');
42+
};
43+
CREATE MULTI PROPERTY types: Partner::Type;
44+
};
45+
};

dbschema/organization.esdl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module default {
2+
type Organization extending Resource, Project::ContextAware, Mixin::Named {
3+
overloaded name {
4+
constraint exclusive;
5+
}
6+
7+
acronym: str;
8+
#address: str; #TODO - this needs figured out - needed on here and Partner?
9+
multi types: Organization::Type;
10+
multi reach: Organization::Reach;
11+
}
12+
}
13+
14+
module Organization {
15+
scalar type Type extending enum<
16+
Church,
17+
Parachurch,
18+
Mission,
19+
TranslationOrganization,
20+
Alliance
21+
>;
22+
23+
scalar type Reach extending enum<
24+
Local,
25+
Regional,
26+
National,
27+
`Global`
28+
>;
29+
}

dbschema/partner.esdl

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
module default {
2+
type Partner extending Resource, Project::ContextAware, Mixin::Named, Mixin::Pinnable, Mixin::Taggable {
3+
overloaded name {
4+
constraint exclusive;
5+
}
6+
7+
required active: bool {
8+
default := true;
9+
};
10+
required globalInnovationsClient: bool {
11+
default := false;
12+
};
13+
14+
pmcEntityCode: str {
15+
constraint regexp(r'^[A-Z]{3}$');
16+
}
17+
18+
#address: str; #TODO - this needs figured out - needed on here and Organization?
19+
multi types: Partner::Type;
20+
multi financialReportingTypes: Partner::FinancialReportingType;
21+
22+
pointOfContact: User;
23+
languageOfWiderCommunication: Language;
24+
25+
required organization: Organization {
26+
readonly := true;
27+
constraint exclusive;
28+
};
29+
multi languagesOfConsulting: Language;
30+
multi fieldRegions: FieldRegion;
31+
multi countries: Location;
32+
}
33+
}
34+
35+
module Partner {
36+
scalar type Type extending enum<
37+
Managing,
38+
Funding,
39+
Impact,
40+
Technical,
41+
Resource
42+
>;
43+
44+
#TODO - probably move to Partnership?
45+
scalar type FinancialReportingType extending enum<
46+
Funded,
47+
FieldEngaged,
48+
Hybrid
49+
>;
50+
}

0 commit comments

Comments
 (0)