Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions backend/src/data/entities/TraktMessageTarget.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Column, Entity, Index, PrimaryColumn } from "typeorm";

@Entity("trakt_message_targets")
export class TraktMessageTarget {
@Column()
@PrimaryColumn()
owner: number;

@Column()
@Index()
target: number;

@Column() timeout: number;
}
16 changes: 16 additions & 0 deletions backend/src/data/entities/TraktUser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Column, Entity, PrimaryColumn } from "typeorm";

@Entity("trakt_users")
export class TraktUser {
@Column()
@PrimaryColumn()
snowflake: number;

@Column() message_score: number;

@Column() time_score: number;

@Column() has_regular: boolean;

@Column() sanction_time: number;
}
12 changes: 12 additions & 0 deletions backend/src/data/entities/TraktVoiceSession.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Column, Entity, PrimaryColumn } from "typeorm";

@Entity("trakt_voice_sessions")
export class TraktVoiceSession {
@Column()
@PrimaryColumn()
snowflake: number;

@Column() session_date: Date;

@Column() session_duration: number;
}
14 changes: 14 additions & 0 deletions backend/src/data/entities/TraktVoiceSummary.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Column, Entity, PrimaryColumn } from "typeorm";

@Entity("trakt_voice_summaries")
export class TraktVoiceSummary {
@Column()
@PrimaryColumn()
snowflake: number;

@Column() week_total: number;

@Column() month_total: number;

@Column() has_regular: boolean;
}
142 changes: 142 additions & 0 deletions backend/src/migrations/1772497950752-CreateTrakt.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
import { MigrationInterface, QueryRunner, Table, TableIndex } from "typeorm";

export class CreateTrakt1772497950752 implements MigrationInterface {
name = "CreateTrakt1772497950752";

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "trakt_users",
columns: [
{
name: "snowflake",
type: "bigint",
unsigned: true,
isNullable: false,
isPrimary: true,
},
{
name: "message_score",
type: "smallint",
isNullable: false,
default: 1,
},
{
name: "time_score",
type: "smallint",
isNullable: false,
default: 0,
},
{
name: "has_regular",
type: "boolean",
default: false,
isNullable: false,
},
{
name: "sanction_time",
type: "int",
isNullable: true,
default: null,
},
],
}),
);

await queryRunner.createTable(
new Table({
name: "trakt_voice_sessions",
columns: [
{
name: "snowflake",
type: "bigint",
unsigned: true,
isNullable: false,
isPrimary: true,
},
{
name: "session_date",
type: "date",
isNullable: false,
},
{
name: "session_duration",
type: "int",
isNullable: false,
},
],
}),
);

await queryRunner.createTable(
new Table({
name: "trakt_voice_summaries",
columns: [
{
name: "snowflake",
type: "bigint",
unsigned: true,
isNullable: false,
isPrimary: true,
},
{
name: "week_total",
type: "int",
isNullable: false,
},
{
name: "month_total",
type: "int",
isNullable: false,
},
{
name: "has_regular",
type: "bool",
isNullable: false,
default: false,
},
],
}),
);

await queryRunner.createTable(
new Table({
name: "trakt_message_targets",
columns: [
{
name: "owner",
type: "bigint",
unsigned: true,
isNullable: false,
isPrimary: true,
},
{
name: "target",
type: "bigint",
unsigned: true,
isNullable: false,
},
{
name: "timeout",
type: "int",
isNullable: false,
},
],
}),
);

await queryRunner.createIndex(
"trakt_message_targets",
new TableIndex({
columnNames: ["target"],
}),
);
}

public async down(queryRunner: QueryRunner): Promise<void> {
queryRunner.dropTable("trakt_users");
queryRunner.dropTable("trakt_voice_session");
queryRunner.dropTable("trakt_voice_summary");
queryRunner.dropTable("trakt_message_targets");
}
}
Empty file.