Skip to content

Commit df7bb85

Browse files
committed
add category + instruction columns to activity type
1 parent e3764ee commit df7bb85

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { DataType } from "sequelize-typescript";
2+
import { Migration } from "../umzug";
3+
import { Category } from "../types";
4+
5+
const TABLE_NAME = "activity_types";
6+
7+
export const up: Migration = async ({ context: sequelize }) => {
8+
await sequelize.getQueryInterface().addColumn(TABLE_NAME, "category", {
9+
type: DataType.ENUM(...Object.values(Category)),
10+
allowNull: false,
11+
defaultValue: Category.MISC,
12+
});
13+
await sequelize.getQueryInterface().addColumn(TABLE_NAME, "instruction", {
14+
type: DataType.TEXT,
15+
allowNull: true,
16+
});
17+
};
18+
19+
export const down: Migration = async ({ context: sequelize }) => {
20+
await sequelize.getQueryInterface().removeColumn(TABLE_NAME, "category");
21+
await sequelize.getQueryInterface().removeColumn(TABLE_NAME, "instruction");
22+
// delete category enum, otherwise causes issues with migrating up, down, then up
23+
await sequelize
24+
.getQueryInterface()
25+
.sequelize.query('DROP TYPE IF EXISTS "enum_activity_types_category";');
26+
};
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
1-
import { Column, Model, Table } from "sequelize-typescript";
1+
import { Column, Model, Table, DataType } from "sequelize-typescript";
2+
import { Category } from "../types";
23

34
@Table({ timestamps: false, tableName: "activity_types" })
45
export default class ActivityType extends Model {
5-
@Column
6+
@Column({ type: DataType.STRING, allowNull: false })
67
activity_name!: string;
8+
9+
@Column({
10+
type: DataType.ENUM(...Object.values(Category)),
11+
allowNull: false,
12+
})
13+
category!: Category;
14+
15+
@Column({ type: DataType.TEXT, allowNull: true })
16+
instruction?: string;
717
}

backend/typescript/types.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ export enum UserStatus {
6161
INACTIVE = "Inactive",
6262
}
6363

64+
export enum Category {
65+
GAMES = "Games",
66+
HUSBANDRY = "Husbandry",
67+
PEN_TIME = "Pen time",
68+
TRAINING = "Training",
69+
WALK = "Walk",
70+
MISC = "Misc.",
71+
}
72+
6473
export type NodemailerConfig = {
6574
service: "gmail";
6675
auth: {

0 commit comments

Comments
 (0)