~jae/neos-headless-manager

6b3896b475d9f307885e7fad2d10037bd159a623 — Jae Lo Presti (DN0) 7 months ago 0ef4d6f
db: add new table in initial migration and adds it to types
2 files changed, 32 insertions(+), 0 deletions(-)

M migrations/20230419111959_setup_base_db.ts
M src/types/dbTypes.ts
M migrations/20230419111959_setup_base_db.ts => migrations/20230419111959_setup_base_db.ts +18 -0
@@ 1,4 1,5 @@
import {Knex} from "knex";
import {neosUserPerms} from "../src/types/dbTypes";

export async function up(knex: Knex): Promise<void> {
    await knex.schema.createSchemaIfNotExists('neosmanager');


@@ 45,6 46,23 @@ export async function up(knex: Knex): Promise<void> {
            .foreign('image_id').references('images.id').deferrable('deferred')
            .notNullable();
    });

    await knex.schema.withSchema('neosmanager').createTable('neos_permissions', (table) => {
        table
            .uuid('id')
            .primary()
            .comment('UUID of the row')
            .defaultTo(knex.raw('gen_random_uuid()'));

        table
            .text('username')
            .comment('username of the user')
            .notNullable();

        table
            .enum('permissions', ['Admin', 'Builder', 'Moderator', 'Guest', 'Spectator'])
            .notNullable();
    });
}



M src/types/dbTypes.ts => src/types/dbTypes.ts +14 -0
@@ 24,3 24,17 @@ export interface UsersTable {
    password: string,
    access_level: userLevels
}

export enum neosUserPerms {
    'Admin',
    'Builder',
    'Moderator',
    'Guest',
    'Spectator',
}

export interface PermissionsTable {
    id: string,
    username: string,
    permission: neosUserPerms,
}