From 0f37f3f264e76e90525da31718d6678a4fc8fe45 Mon Sep 17 00:00:00 2001 From: h7x4 <h7x4@nani.wtf> Date: Tue, 18 Mar 2025 21:53:32 +0100 Subject: [PATCH] WIP: revamp projects --- dist/pvv_mysql.sql | 42 ++++++++++++++++++++++++++++++------------ dist/pvv_sqlite.sql | 45 +++++++++++++++++++++++++++++++++------------ 2 files changed, 63 insertions(+), 24 deletions(-) diff --git a/dist/pvv_mysql.sql b/dist/pvv_mysql.sql index f8ab9d0..2e8ebcd 100644 --- a/dist/pvv_mysql.sql +++ b/dist/pvv_mysql.sql @@ -8,21 +8,39 @@ CREATE TABLE events ( `description` TEXT ); -CREATE TABLE projects ( +CREATE TABLE project_group ( `id` INTEGER PRIMARY KEY AUTO_INCREMENT, - `name` TEXT, - `description` TEXT, - `active` BOOLEAN + `title` TEXT NOT NULL, + `description_en` TEXT NOT NULL, + `description_no` TEXT NOT NULL, + `gitea_link` TEXT NOT NULL, + `wiki_link` TEXT ); -CREATE TABLE projectmembers ( - `projectid` INTEGER, - `name` TEXT, - `uname` TEXT, - `mail` TEXT, - `role` TEXT, - `lead` BOOLEAN DEFAULT 0, - `owner` BOOLEAN DEFAULT 0 +CREATE TABLE project ( + `id` INTEGER PRIMARY KEY AUTO_INCREMENT, + `group_id` INTEGER NOT NULL REFERENCES project_group (id), + `title` TEXT NOT NULL, + `description_en` TEXT NOT NULL, + `description_no` TEXT NOT NULL, + `gitea_link` TEXT NOT NULL, + `issue_board_link` TEXT NOT NULL, + `wiki_link` TEXT, + `languages` TEXT, + `technologies` TEXT, + `keywords` TEXT, + `license` TEXT, + `logo_url` TEXT, + FOREIGN KEY (group_id) REFERENCES project_group (id) +); + +CREATE TABLE project_maintainer ( + `uname` TEXT PRIMARY KEY, + `name` TEXT NOT NULL, + `link` TEXT NOT NULL, + `mail` TEXT NOT NULL, + FOREIGN KEY (project_id) REFERENCES project (id), + FOREIGN KEY (uname) REFERENCES maintainer (uname), ); CREATE TABLE users (`uname` TEXT, `groups` INT DEFAULT 0); diff --git a/dist/pvv_sqlite.sql b/dist/pvv_sqlite.sql index 9a24889..0faf88a 100644 --- a/dist/pvv_sqlite.sql +++ b/dist/pvv_sqlite.sql @@ -8,21 +8,42 @@ CREATE TABLE "events" ( "description" TEXT ); -CREATE TABLE "projects" ( +CREATE TABLE "project_group" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, - "name" TEXT, - "description" TEXT, - "active" BOOLEAN + "title" TEXT NOT NULL, + "description_en" TEXT NOT NULL, + "description_no" TEXT NOT NULL, + "gitea_link" TEXT NOT NULL, + "wiki_link" TEXT ); -CREATE TABLE "projectmembers" ( - "projectid" INTEGER, - "name" TEXT, - "uname" TEXT, - "mail" TEXT, - "role" TEXT, - "lead" BOOLEAN DEFAULT 0, - "owner" BOOLEAN DEFAULT 0 +CREATE TABLE "project" ( + "id" INTEGER PRIMARY KEY AUTOINCREMENT, + "group_id" INTEGER NOT NULL REFERENCES project_group (id), + "title" TEXT NOT NULL, + "description_en" TEXT NOT NULL, + "description_no" TEXT NOT NULL, + "gitea_link" TEXT NOT NULL, + "issue_board_link" TEXT NOT NULL, + "wiki_link" TEXT, + "languages" TEXT, + "technologies" TEXT, + "keywords" TEXT, + "license" TEXT, + "logo_url" TEXT +); + +CREATE TABLE "project_maintainer" ( + "uname" TEXT PRIMARY KEY, + "name" TEXT NOT NULL, + "link" TEXT NOT NULL, + "mail" TEXT NOT NULL +); + +CREATE TABLE "project__project_maintainer" ( + "project_id" INTEGER REFERENCES project (id), + "uname" TEXT REFERENCES maintainer (uname), + PRIMARY KEY (project_id, uname) ); CREATE TABLE "users" ("uname" TEXT, "groups" INT DEFAULT 0);