Skip to content
Snippets Groups Projects
Commit 4f442c35 authored by Paolo.Brasolin's avatar Paolo.Brasolin
Browse files

feat: #be add gmtm tracking

parent aea9bad7
No related branches found
No related tags found
No related merge requests found
import { Knex } from "knex";
export async function up(knex: Knex): Promise<void> {
return knex.schema
.alterTable("games", (table) => table.integer("began_at_gmtm").unsigned())
.alterTable("clues", (table) => table.integer("began_at_gmtm").unsigned())
.alterTable("shots", (table) => table.integer("began_at_gmtm").unsigned())
.alterTable("games", (table) => table.integer("ended_at_gmtm").unsigned())
.alterTable("clues", (table) => table.integer("ended_at_gmtm").unsigned())
.alterTable("shots", (table) => table.integer("ended_at_gmtm").unsigned());
}
export async function down(knex: Knex): Promise<void> {
return knex.schema
.alterTable("games", (table) => table.dropColumn("began_at_gmtm"))
.alterTable("clues", (table) => table.dropColumn("began_at_gmtm"))
.alterTable("shots", (table) => table.dropColumn("began_at_gmtm"))
.alterTable("games", (table) => table.dropColumn("ended_at_gmtm"))
.alterTable("clues", (table) => table.dropColumn("ended_at_gmtm"))
.alterTable("shots", (table) => table.dropColumn("ended_at_gmtm"));
}
......@@ -20,6 +20,8 @@ export const Game = Type.Object({
device_id: Type.Readonly(Type.String({ format: "uuid" })),
began_at: Nullable(Type.String({ format: "date-time" })),
ended_at: Nullable(Type.String({ format: "date-time" })),
began_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
ended_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
});
export const Clue = Type.Object({
......@@ -28,6 +30,8 @@ export const Clue = Type.Object({
word_id: Type.Readonly(Type.String({ format: "uuid" })),
began_at: Nullable(Type.String({ format: "date-time" })),
ended_at: Nullable(Type.String({ format: "date-time" })),
began_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
ended_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
});
export const Shot = Type.Object({
......@@ -36,17 +40,19 @@ export const Shot = Type.Object({
clue_id: Nullable(Type.String({ format: "uuid" })),
began_at: Type.String({ format: "date-time" }),
ended_at: Type.String({ format: "date-time" }),
began_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
ended_at_gmtm: Nullable(Type.Number({ minimum: 0 })),
typed: Type.String(),
final: Type.String(),
});
export const GameUpdate = Type.Partial(
Type.Pick(Game, ["began_at", "ended_at"]),
Type.Pick(Game, ["began_at", "ended_at", "began_at_gmtm", "ended_at_gmtm"]),
);
export const GameCreate = GameUpdate;
export const ClueUpdate = Type.Partial(
Type.Pick(Clue, ["began_at", "ended_at"]),
Type.Pick(Clue, ["began_at", "ended_at", "began_at_gmtm", "ended_at_gmtm"]),
);
export const ClueCreate = Type.Intersect([
Type.Pick(Clue, ["word_id"]),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment