115 lines
3.7 KiB
SQL
115 lines
3.7 KiB
SQL
-- =============START USER SCHEMA==================
|
|
|
|
DROP SCHEMA IF EXISTS "user";
|
|
CREATE SCHEMA "user"
|
|
|
|
|
|
-- ----------------------------
|
|
-- Table structure for role
|
|
-- ----------------------------
|
|
|
|
DROP TABLE IF EXISTS "user"."role" CASCADE;
|
|
|
|
-- Ver 0.1.0 ( Design )
|
|
-- Ver 0.1.0 ( Current & Implemented )
|
|
CREATE TABLE "user"."role"(
|
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(),
|
|
"code" VARCHAR(5) NOT NULL ,
|
|
"name" VARCHAR(100) NOT NULL ,
|
|
"desc" TEXT NULL ,
|
|
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
|
"updated_at" TIMESTAMP NULL ,
|
|
PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- INDEX TABLE role
|
|
CREATE INDEX "pkey_urole" ON "user"."role" ("id");
|
|
|
|
|
|
-- ----------------------------
|
|
-- Table structure for account
|
|
-- ----------------------------
|
|
|
|
DROP TABLE IF EXISTS "user"."account" CASCADE;
|
|
|
|
-- Ver 0.1.0 ( Design )
|
|
-- Ver 0.1.0 ( Current & Implemented )
|
|
CREATE TABLE "user"."account"(
|
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(),
|
|
"urole_id" UUID NOT NULL ,
|
|
"username" varchar(255) NOT NULL UNIQUE,
|
|
"pwd" TEXT NOT NULL ,
|
|
"fullname" varchar(255) NOT NULL ,
|
|
"shortname" varchar(255) NOT NULL ,
|
|
"email" varchar(255) NOT NULL UNIQUE ,
|
|
"avatar" varchar(255) NOT NULL ,
|
|
"note" varchar(255) NULL ,
|
|
"status" BOOLEAN NOT NULL DEFAULT FALSE ,
|
|
"is_ban" BOOLEAN NOT NULL DEFAULT FALSE ,
|
|
"last_active" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
|
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
|
"updated_at" TIMESTAMP NULL ,
|
|
"deleted_at" TIMESTAMP NULL ,
|
|
PRIMARY KEY ("id"),
|
|
FOREIGN KEY ("urole_id") REFERENCES "user"."role"("id") ON UPDATE CASCADE ON DELETE CASCADE
|
|
);
|
|
|
|
-- INDEX TABLE account
|
|
CREATE INDEX "pkey_uaccount" ON "user"."account" ("id");
|
|
CREATE INDEX "fkey_uaccount_urole" ON "user"."account" ("urole_id");
|
|
|
|
|
|
|
|
-- ----------------------------
|
|
-- Table structure for api_tokens
|
|
-- ----------------------------
|
|
|
|
DROP TABLE IF EXISTS "user"."api_tokens" CASCADE;
|
|
|
|
-- Ver 0.1.0 ( Design )
|
|
-- Ver 0.1.0 ( Current & Implemented )
|
|
CREATE TABLE "user"."api_tokens"(
|
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(),
|
|
"user_id" UUID NOT NULL ,
|
|
"name" VARCHAR(255) NOT NULL ,
|
|
"type" VARCHAR(255) NOT NULL ,
|
|
"token" VARCHAR(255) NOT NULL ,
|
|
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"expires_at" TIMESTAMP ,
|
|
PRIMARY KEY ("id"),
|
|
FOREIGN KEY ("user_id") REFERENCES "user"."account"("id")
|
|
);
|
|
|
|
-- INDEX TABLE account
|
|
CREATE INDEX "pkey_uapi_tokens" ON "user"."api_tokens" ("id");
|
|
CREATE INDEX "fkey_uapi_tokens_uaccount" ON "user"."api_tokens" ("user_id");
|
|
|
|
|
|
|
|
-- ----------------------------
|
|
-- Table structure for event
|
|
-- ----------------------------
|
|
|
|
DROP TABLE IF EXISTS "user"."event" CASCADE;
|
|
DROP SEQUENCE IF EXISTS event_id_seq;
|
|
|
|
-- Ver 1
|
|
-- ( Current & Implemented )
|
|
CREATE TABLE "user"."event"(
|
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(),
|
|
"uaccount_id" UUID NOT NULL ,
|
|
"project_id" UUID NULL ,
|
|
"fullname" VARCHAR NOT NULL ,
|
|
"title" VARCHAR NOT NULL ,
|
|
"body" TEXT NULL ,
|
|
"start" DATE NOT NULL ,
|
|
"end" DATE NOT NULL ,
|
|
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP NULL,
|
|
"deleted_at" TIMESTAMP NULL,
|
|
PRIMARY KEY ("id"),
|
|
FOREIGN KEY ("uaccount_id") REFERENCES "user"."account"("id")
|
|
);
|
|
|
|
-- =============END USER SCHEMA==================
|