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()
|
||||
export class member {
|
||||
@PrimaryColumn({ generated: "uuid", type: "varchar" })
|
||||
@PrimaryColumn({ generated: "uuid" })
|
||||
id: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true, default: null, unique: true })
|
||||
internalId?: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
firstname: string;
|
||||
|
||||
|
@ -13,4 +16,10 @@ export class member {
|
|||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
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_table,
|
||||
} from "./baseSchemaTables/admin";
|
||||
import { member_table } from "./baseSchemaTables/member";
|
||||
import { equipment_table, member_table, vehicle_table } from "./baseSchemaTables/configuration";
|
||||
|
||||
export class CreateSchema1739697068682 implements MigrationInterface {
|
||||
name = "CreateSchema1739697068682";
|
||||
|
@ -25,9 +25,13 @@ export class CreateSchema1739697068682 implements MigrationInterface {
|
|||
await queryRunner.createTable(refresh_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> {
|
||||
await queryRunner.dropTable("vehicle", true, true, true);
|
||||
await queryRunner.dropTable("equipment", true, true, true);
|
||||
await queryRunner.dropTable("member", 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 ORMDefault = "currentTimestamp" | "string" | "boolean" | "number" | "null";
|
||||
export type ORMDefault = "currentTimestamp" | "currentDate" | "string" | "boolean" | "number" | "null";
|
||||
export type ColumnConfig = {
|
||||
type: 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>> = {
|
||||
mysql: {
|
||||
currentTimestamp: `CURRENT_TIMESTAMP(${data ?? 6})`,
|
||||
currentDate: "CURRENT_DATE",
|
||||
string: `'${data ?? ""}'`,
|
||||
boolean: Boolean(data).toString(),
|
||||
number: Number(data).toString(),
|
||||
|
@ -75,6 +76,7 @@ export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: stri
|
|||
},
|
||||
postgres: {
|
||||
currentTimestamp: `now()`,
|
||||
currentDate: "CURRENT_DATE",
|
||||
string: `'${data ?? ""}'`,
|
||||
boolean: Boolean(data) == true ? "true" : "false",
|
||||
number: Number(data).toString(),
|
||||
|
@ -82,6 +84,7 @@ export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: stri
|
|||
},
|
||||
sqlite: {
|
||||
currentTimestamp: `datetime('now')`,
|
||||
currentDate: "CURRENT_DATE",
|
||||
string: `'${data ?? ""}'`,
|
||||
boolean: Boolean(data) == true ? "1" : "0",
|
||||
number: Number(data).toString(),
|
||||
|
|
Loading…
Add table
Reference in a new issue