add EdgeDB Migrations
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
CREATE MIGRATION m1ezdfntpqrmuj2yefl7glg5bbtt6zqp3jjsf2i7jhroz6gm7j5s5q
|
||||
ONTO initial
|
||||
{
|
||||
CREATE FUNCTION default::gameboard_url(id: std::uuid) -> std::str USING (('https://play.battlesnake.com/game/' ++ <std::str>id));
|
||||
CREATE FUNCTION default::is_winner_me(winner: std::str) -> std::bool USING ((winner = 'me'));
|
||||
CREATE TYPE default::GameType {
|
||||
CREATE REQUIRED PROPERTY is_ladder: std::bool {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY name: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE CONSTRAINT std::exclusive ON ((.name, .is_ladder));
|
||||
};
|
||||
CREATE TYPE default::Moves {
|
||||
CREATE PROPERTY calculations: array<std::json> {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY game_board: std::json {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY snake_move: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY turn: std::int32 {
|
||||
SET readonly := true;
|
||||
};
|
||||
};
|
||||
CREATE TYPE default::Ruleset {
|
||||
CREATE REQUIRED PROPERTY name: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY settings: std::json {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY version: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE CONSTRAINT std::exclusive ON ((.name, .version, .settings));
|
||||
};
|
||||
CREATE TYPE default::Snake {
|
||||
CREATE REQUIRED PROPERTY type: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE CONSTRAINT std::exclusive ON (.type);
|
||||
};
|
||||
CREATE TYPE default::GameBoard {
|
||||
ALTER PROPERTY id {
|
||||
SET OWNED;
|
||||
SET readonly := true;
|
||||
SET REQUIRED;
|
||||
SET TYPE std::uuid;
|
||||
ALTER CONSTRAINT std::exclusive {
|
||||
SET OWNED;
|
||||
};
|
||||
};
|
||||
CREATE PROPERTY url := (default::gameboard_url(.id));
|
||||
CREATE REQUIRED PROPERTY winner: std::str {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE PROPERTY is_winner_me := (default::is_winner_me(.winner));
|
||||
CREATE REQUIRED MULTI LINK moves: default::Moves {
|
||||
ON SOURCE DELETE DELETE TARGET;
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED SINGLE LINK ruleset: default::Ruleset {
|
||||
ON SOURCE DELETE DELETE TARGET IF ORPHAN;
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED SINGLE LINK snake: default::Snake {
|
||||
ON SOURCE DELETE DELETE TARGET IF ORPHAN;
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED SINGLE LINK type: default::GameType {
|
||||
ON SOURCE DELETE DELETE TARGET IF ORPHAN;
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY created_at: std::datetime {
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY map: std::str {
|
||||
SET default := 'standard';
|
||||
SET readonly := true;
|
||||
};
|
||||
CREATE REQUIRED PROPERTY turns: std::int32 {
|
||||
SET readonly := true;
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user