base data schema
This commit is contained in:
parent
1d56c7f798
commit
cfec116f2c
7 changed files with 102 additions and 15 deletions
22
src/entity/configuration/equipment.ts
Normal file
22
src/entity/configuration/equipment.ts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
import { Column, Entity, PrimaryColumn } from "typeorm";
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
export class equipment {
|
||||||
|
@PrimaryColumn({ generated: "uuid" })
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, nullable: true, default: null, unique: true })
|
||||||
|
code?: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, nullable: true, default: null })
|
||||||
|
type?: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, unique: true })
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
@Column({ type: "date", default: "CURRENT_TIMESTAMP" })
|
||||||
|
commissioned: Date;
|
||||||
|
|
||||||
|
@Column({ type: "date", nullable: true, default: null })
|
||||||
|
decommissioned?: Date;
|
||||||
|
}
|
|
@ -2,9 +2,12 @@ import { Column, Entity, PrimaryColumn } from "typeorm";
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class member {
|
export class member {
|
||||||
@PrimaryColumn({ generated: "uuid", type: "varchar" })
|
@PrimaryColumn({ generated: "uuid" })
|
||||||
id: string;
|
id: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, nullable: true, default: null, unique: true })
|
||||||
|
internalId?: string;
|
||||||
|
|
||||||
@Column({ type: "varchar", length: 255 })
|
@Column({ type: "varchar", length: 255 })
|
||||||
firstname: string;
|
firstname: string;
|
||||||
|
|
||||||
|
@ -13,4 +16,10 @@ export class member {
|
||||||
|
|
||||||
@Column({ type: "varchar", length: 255 })
|
@Column({ type: "varchar", length: 255 })
|
||||||
nameaffix: string;
|
nameaffix: string;
|
||||||
|
|
||||||
|
@Column({ type: "date", default: "CURRENT_TIMESTAMP" })
|
||||||
|
commissioned: Date;
|
||||||
|
|
||||||
|
@Column({ type: "date", nullable: true, default: null })
|
||||||
|
decommissioned?: Date;
|
||||||
}
|
}
|
||||||
|
|
22
src/entity/configuration/vehicle.ts
Normal file
22
src/entity/configuration/vehicle.ts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
import { Column, Entity, PrimaryColumn } from "typeorm";
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
export class vehicle {
|
||||||
|
@PrimaryColumn({ generated: "uuid" })
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, nullable: true, default: null })
|
||||||
|
code?: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, nullable: true, default: null })
|
||||||
|
type?: string;
|
||||||
|
|
||||||
|
@Column({ type: "varchar", length: 255, unique: true })
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
@Column({ type: "date", default: "CURRENT_TIMESTAMP" })
|
||||||
|
commissioned: Date;
|
||||||
|
|
||||||
|
@Column({ type: "date", nullable: true, default: null })
|
||||||
|
decommissioned?: Date;
|
||||||
|
}
|
|
@ -9,7 +9,7 @@ import {
|
||||||
user_roles_table,
|
user_roles_table,
|
||||||
user_table,
|
user_table,
|
||||||
} from "./baseSchemaTables/admin";
|
} from "./baseSchemaTables/admin";
|
||||||
import { member_table } from "./baseSchemaTables/member";
|
import { equipment_table, member_table, vehicle_table } from "./baseSchemaTables/configuration";
|
||||||
|
|
||||||
export class CreateSchema1739697068682 implements MigrationInterface {
|
export class CreateSchema1739697068682 implements MigrationInterface {
|
||||||
name = "CreateSchema1739697068682";
|
name = "CreateSchema1739697068682";
|
||||||
|
@ -25,9 +25,13 @@ export class CreateSchema1739697068682 implements MigrationInterface {
|
||||||
await queryRunner.createTable(refresh_table, true, true, true);
|
await queryRunner.createTable(refresh_table, true, true, true);
|
||||||
|
|
||||||
await queryRunner.createTable(member_table, true, true, true);
|
await queryRunner.createTable(member_table, true, true, true);
|
||||||
|
await queryRunner.createTable(equipment_table, true, true, true);
|
||||||
|
await queryRunner.createTable(vehicle_table, true, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.dropTable("vehicle", true, true, true);
|
||||||
|
await queryRunner.dropTable("equipment", true, true, true);
|
||||||
await queryRunner.dropTable("member", true, true, true);
|
await queryRunner.dropTable("member", true, true, true);
|
||||||
|
|
||||||
await queryRunner.dropTable("refresh", true, true, true);
|
await queryRunner.dropTable("refresh", true, true, true);
|
||||||
|
|
39
src/migrations/baseSchemaTables/configuration.ts
Normal file
39
src/migrations/baseSchemaTables/configuration.ts
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
import { Table } from "typeorm";
|
||||||
|
import { getDefaultByORM, getTypeByORM, isUUIDPrimary } from "../ormHelper";
|
||||||
|
|
||||||
|
export const member_table = new Table({
|
||||||
|
name: "member",
|
||||||
|
columns: [
|
||||||
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
||||||
|
{ name: "internalId", ...getTypeByORM("varchar", true), default: getDefaultByORM("null"), isUnique: true },
|
||||||
|
{ name: "firstname", ...getTypeByORM("varchar") },
|
||||||
|
{ name: "lastname", ...getTypeByORM("varchar") },
|
||||||
|
{ name: "nameaffix", ...getTypeByORM("varchar") },
|
||||||
|
{ name: "commissioned", ...getTypeByORM("date"), default: getDefaultByORM("currentDate") },
|
||||||
|
{ name: "decommissioned", ...getTypeByORM("date", true), default: getDefaultByORM("null") },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
export const equipment_table = new Table({
|
||||||
|
name: "equipment",
|
||||||
|
columns: [
|
||||||
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
||||||
|
{ name: "code", ...getTypeByORM("varchar", true), default: getDefaultByORM("null"), isUnique: true },
|
||||||
|
{ name: "type", ...getTypeByORM("varchar", true), default: getDefaultByORM("null") },
|
||||||
|
{ name: "name", ...getTypeByORM("varchar"), isUnique: true },
|
||||||
|
{ name: "commissioned", ...getTypeByORM("date"), default: getDefaultByORM("currentDate") },
|
||||||
|
{ name: "decommissioned", ...getTypeByORM("date", true), default: getDefaultByORM("null") },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
export const vehicle_table = new Table({
|
||||||
|
name: "vehicle",
|
||||||
|
columns: [
|
||||||
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
||||||
|
{ name: "code", ...getTypeByORM("varchar", true), default: getDefaultByORM("null"), isUnique: true },
|
||||||
|
{ name: "type", ...getTypeByORM("varchar", true), default: getDefaultByORM("null") },
|
||||||
|
{ name: "name", ...getTypeByORM("varchar"), isUnique: true },
|
||||||
|
{ name: "commissioned", ...getTypeByORM("date"), default: getDefaultByORM("currentDate") },
|
||||||
|
{ name: "decommissioned", ...getTypeByORM("date", true), default: getDefaultByORM("null") },
|
||||||
|
],
|
||||||
|
});
|
|
@ -1,12 +0,0 @@
|
||||||
import { Table } from "typeorm";
|
|
||||||
import { getTypeByORM, isUUIDPrimary } from "../ormHelper";
|
|
||||||
|
|
||||||
export const member_table = new Table({
|
|
||||||
name: "member",
|
|
||||||
columns: [
|
|
||||||
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
||||||
{ name: "firstname", ...getTypeByORM("varchar") },
|
|
||||||
{ name: "lastname", ...getTypeByORM("varchar") },
|
|
||||||
{ name: "nameaffix", ...getTypeByORM("varchar") },
|
|
||||||
],
|
|
||||||
});
|
|
|
@ -1,5 +1,5 @@
|
||||||
export type ORMType = "int" | "bigint" | "boolean" | "date" | "datetime" | "time" | "text" | "varchar" | "uuid";
|
export type ORMType = "int" | "bigint" | "boolean" | "date" | "datetime" | "time" | "text" | "varchar" | "uuid";
|
||||||
export type ORMDefault = "currentTimestamp" | "string" | "boolean" | "number" | "null";
|
export type ORMDefault = "currentTimestamp" | "currentDate" | "string" | "boolean" | "number" | "null";
|
||||||
export type ColumnConfig = {
|
export type ColumnConfig = {
|
||||||
type: string;
|
type: string;
|
||||||
length?: string;
|
length?: string;
|
||||||
|
@ -68,6 +68,7 @@ export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: stri
|
||||||
const typeMap: Record<string, Record<ORMDefault, string | null>> = {
|
const typeMap: Record<string, Record<ORMDefault, string | null>> = {
|
||||||
mysql: {
|
mysql: {
|
||||||
currentTimestamp: `CURRENT_TIMESTAMP(${data ?? 6})`,
|
currentTimestamp: `CURRENT_TIMESTAMP(${data ?? 6})`,
|
||||||
|
currentDate: "CURRENT_DATE",
|
||||||
string: `'${data ?? ""}'`,
|
string: `'${data ?? ""}'`,
|
||||||
boolean: Boolean(data).toString(),
|
boolean: Boolean(data).toString(),
|
||||||
number: Number(data).toString(),
|
number: Number(data).toString(),
|
||||||
|
@ -75,6 +76,7 @@ export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: stri
|
||||||
},
|
},
|
||||||
postgres: {
|
postgres: {
|
||||||
currentTimestamp: `now()`,
|
currentTimestamp: `now()`,
|
||||||
|
currentDate: "CURRENT_DATE",
|
||||||
string: `'${data ?? ""}'`,
|
string: `'${data ?? ""}'`,
|
||||||
boolean: Boolean(data) == true ? "true" : "false",
|
boolean: Boolean(data) == true ? "true" : "false",
|
||||||
number: Number(data).toString(),
|
number: Number(data).toString(),
|
||||||
|
@ -82,6 +84,7 @@ export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: stri
|
||||||
},
|
},
|
||||||
sqlite: {
|
sqlite: {
|
||||||
currentTimestamp: `datetime('now')`,
|
currentTimestamp: `datetime('now')`,
|
||||||
|
currentDate: "CURRENT_DATE",
|
||||||
string: `'${data ?? ""}'`,
|
string: `'${data ?? ""}'`,
|
||||||
boolean: Boolean(data) == true ? "1" : "0",
|
boolean: Boolean(data) == true ? "1" : "0",
|
||||||
number: Number(data).toString(),
|
number: Number(data).toString(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue