2025-01-30 15:58:34 +01:00
|
|
|
import { Table, TableForeignKey } from "typeorm";
|
|
|
|
import { getTypeByORM } from "../ormHelper";
|
|
|
|
|
|
|
|
export const invite_table = new Table({
|
|
|
|
name: "invite",
|
|
|
|
columns: [
|
|
|
|
{ name: "mail", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
|
|
|
{ name: "token", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "username", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "firstname", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "lastname", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "secret", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
],
|
|
|
|
});
|
|
|
|
export const role_table = new Table({
|
|
|
|
name: "role",
|
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
name: "id",
|
|
|
|
type: getTypeByORM("int"),
|
|
|
|
isPrimary: true,
|
|
|
|
isGenerated: true,
|
|
|
|
generationStrategy: "increment",
|
|
|
|
},
|
|
|
|
{ name: "role", type: getTypeByORM("varchar"), length: "255", isNullable: false, isUnique: true },
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const role_permission_table = new Table({
|
|
|
|
name: "role_permission",
|
|
|
|
columns: [
|
|
|
|
{ name: "roleId", type: getTypeByORM("int"), isPrimary: true },
|
|
|
|
{ name: "permission", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["roleId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "role",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const user_table = new Table({
|
|
|
|
name: "user",
|
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
name: "id",
|
|
|
|
type: getTypeByORM("varchar"),
|
|
|
|
length: "36",
|
|
|
|
isPrimary: true,
|
|
|
|
isGenerated: true,
|
|
|
|
generationStrategy: "uuid",
|
|
|
|
},
|
|
|
|
{ name: "mail", type: getTypeByORM("varchar"), length: "255", isNullable: false, isUnique: true },
|
|
|
|
{ name: "username", type: getTypeByORM("varchar"), length: "255", isNullable: false, isUnique: true },
|
|
|
|
{ name: "firstname", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "lastname", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "secret", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
2025-01-31 11:06:02 +01:00
|
|
|
{ name: "static", type: getTypeByORM("boolean"), isNullable: false, default: false },
|
2025-01-30 15:58:34 +01:00
|
|
|
{ name: "isOwner", type: getTypeByORM("boolean"), isNullable: false, default: false },
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const user_roles_table = new Table({
|
|
|
|
name: "user_roles",
|
|
|
|
columns: [
|
|
|
|
{ name: "userId", type: getTypeByORM("varchar"), isPrimary: true },
|
|
|
|
{ name: "roleId", type: getTypeByORM("int"), isPrimary: true },
|
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["userId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "user",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["roleId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "role",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const user_permission_table = new Table({
|
|
|
|
name: "user_permission",
|
|
|
|
columns: [
|
|
|
|
{ name: "userId", type: getTypeByORM("varchar"), isPrimary: true },
|
|
|
|
{ name: "permission", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["userId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "user",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const refresh_table = new Table({
|
|
|
|
name: "refresh",
|
|
|
|
columns: [
|
|
|
|
{ name: "token", type: getTypeByORM("varchar"), length: "255", isPrimary: true, isNullable: false },
|
|
|
|
{ name: "expiry", type: getTypeByORM("datetime"), isNullable: false },
|
|
|
|
{ name: "userId", type: getTypeByORM("varchar"), isPrimary: true, isNullable: false },
|
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["userId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "user",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const webapi_table = new Table({
|
|
|
|
name: "webapi",
|
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
name: "id",
|
|
|
|
type: getTypeByORM("int"),
|
|
|
|
isPrimary: true,
|
|
|
|
isGenerated: true,
|
|
|
|
generationStrategy: "increment",
|
|
|
|
},
|
|
|
|
{ name: "token", type: getTypeByORM("varchar"), length: "255", isNullable: false, isUnique: true },
|
|
|
|
{ name: "title", type: getTypeByORM("varchar"), length: "255", isNullable: false, isUnique: true },
|
|
|
|
{ name: "createdAt", type: getTypeByORM("datetime"), isNullable: false, default: "CURRENT_TIMESTAMP(6)" },
|
|
|
|
{ name: "lastUsage", type: getTypeByORM("datetime"), isNullable: true, default: null },
|
|
|
|
{ name: "expiry", type: getTypeByORM("date"), isNullable: true, default: null },
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const webapi_permission_table = new Table({
|
|
|
|
name: "webapi_permission",
|
|
|
|
columns: [
|
|
|
|
{ name: "webapiId", type: getTypeByORM("int"), isPrimary: true },
|
|
|
|
{ name: "permission", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["webapiId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "webapi",
|
|
|
|
onDelete: "CASCADE",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const reset_table = new Table({
|
|
|
|
name: "reset",
|
|
|
|
columns: [
|
|
|
|
{ name: "mail", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
|
|
|
{ name: "token", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "username", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
{ name: "secret", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
|
|
|
],
|
|
|
|
});
|