Skip to content

Commit d075789

Browse files
committed
fix: validators
1 parent 9d8c46f commit d075789

10 files changed

+60
-52
lines changed

app/models/calendar_event.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ export default class CalendarEvent extends BaseModel {
2323
@typedColumn.dateTime({})
2424
declare startTime: DateTime;
2525

26-
@typedColumn.dateTime({ validator: vine.date().after("startTime") })
26+
@typedColumn.dateTime({
27+
validator: vine.luxonDateTime().afterField("startTime"),
28+
})
2729
declare endTime: DateTime;
2830

2931
@typedColumn({ type: "string", optional: true })

app/models/das.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import vine from "@vinejs/vine";
12
import { DateTime } from "luxon";
23

34
import { BaseModel, hasMany } from "@adonisjs/lucid/orm";
@@ -15,6 +16,21 @@ export default class Das extends BaseModel {
1516
@typedColumn({ isPrimary: true, type: "integer" })
1617
declare id: number;
1718

19+
@typedColumn.dateTime({ autoCreate: false })
20+
declare startsAt: DateTime;
21+
22+
@typedColumn.dateTime({
23+
autoCreate: false,
24+
validator: vine.luxonDateTime().afterField("startsAt"),
25+
})
26+
declare endsAt: DateTime;
27+
28+
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
29+
declare updatedAt: DateTime;
30+
31+
@typedColumn.dateTime({ autoCreate: true })
32+
declare createdAt: DateTime;
33+
1834
@hasMany(() => DasMap)
1935
declare maps: HasMany<typeof DasMap>;
2036

@@ -24,15 +40,6 @@ export default class Das extends BaseModel {
2440
@hasMany(() => DasStand)
2541
declare stands: HasMany<typeof DasStand>;
2642

27-
@typedColumn.dateTime({ autoCreate: false })
28-
declare startsAt: DateTime;
29-
30-
@typedColumn.dateTime({ autoCreate: false })
31-
declare endsAt: DateTime;
32-
33-
@typedColumn.dateTime({ autoCreate: true })
34-
declare createdAt: DateTime;
35-
3643
static preloadRelations = preloadRelations();
3744
static handleSearchQuery = handleSearchQuery();
3845
static handleSortQuery = handleSortQuery();

app/models/das_link.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ export default class DasLink extends BaseModel {
1818
@typedColumn({ foreignKeyOf: () => Das })
1919
declare dasId: number;
2020

21-
@belongsTo(() => Das, {
22-
localKey: "id",
23-
foreignKey: "dasId",
24-
})
25-
declare das: BelongsTo<typeof Das>;
26-
2721
@typedColumn({ type: "string" })
2822
declare link: string;
2923

@@ -42,6 +36,12 @@ export default class DasLink extends BaseModel {
4236
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
4337
declare updatedAt: DateTime;
4438

39+
@belongsTo(() => Das, {
40+
localKey: "id",
41+
foreignKey: "dasId",
42+
})
43+
declare das: BelongsTo<typeof Das>;
44+
4545
static preloadRelations = preloadRelations();
4646
static handleSearchQuery = handleSearchQuery();
4747
static handleSortQuery = handleSortQuery();

app/models/das_map.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ export default class DasMap extends BaseModel {
1818
@typedColumn({ foreignKeyOf: () => Das })
1919
declare dasId: number;
2020

21-
@belongsTo(() => Das, {
22-
localKey: "id",
23-
foreignKey: "dasId",
24-
})
25-
declare das: BelongsTo<typeof Das>;
26-
2721
@typedColumn({ type: "string", validator: vine.string().maxLength(127) })
2822
declare name: string;
2923

@@ -42,6 +36,12 @@ export default class DasMap extends BaseModel {
4236
})
4337
declare content: BelongsTo<typeof FileEntry>;
4438

39+
@belongsTo(() => Das, {
40+
localKey: "id",
41+
foreignKey: "dasId",
42+
})
43+
declare das: BelongsTo<typeof Das>;
44+
4545
static preloadRelations = preloadRelations();
4646
static handleSearchQuery = handleSearchQuery();
4747
static handleSortQuery = handleSortQuery();

app/models/das_stand.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,19 @@ export default class DasStand extends BaseModel {
2929
})
3030
declare das: BelongsTo<typeof Das>;
3131

32-
@typedColumn({ type: "string" })
32+
@typedColumn({ type: "string", validator: vine.string().maxLength(127) })
3333
declare name: string;
3434

3535
@typedColumn({
3636
type: "string",
3737
optional: true,
38-
validator: vine.string().maxLength(7),
38+
validator: vine.string().maxLength(7).optional().nullable(),
3939
})
4040
declare floor: string | null; // Also knowing PWr, floor number could also not be a number
4141

4242
@typedColumn({
4343
type: "string",
4444
optional: true,
45-
validator: vine.string().maxLength(15),
4645
})
4746
declare description: string | null;
4847

@@ -53,27 +52,27 @@ export default class DasStand extends BaseModel {
5352
})
5453
declare studentOrganizationId: number | null;
5554

55+
@typedColumn({ foreignKeyOf: () => FileEntry, optional: true })
56+
declare logoKey: string | null;
57+
58+
@typedColumn.dateTime({ autoCreate: true })
59+
declare createdAt: DateTime;
60+
61+
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
62+
declare updatedAt: DateTime;
63+
5664
@belongsTo(() => StudentOrganization, {
5765
localKey: "id",
5866
foreignKey: "studentOrganizationId",
5967
})
6068
declare studentOrganization: BelongsTo<typeof StudentOrganization>;
6169

62-
@typedColumn({ foreignKeyOf: () => FileEntry, optional: true })
63-
declare logoKey: string | null;
64-
6570
@belongsTo(() => FileEntry, {
6671
localKey: "id",
6772
foreignKey: "logoKey",
6873
})
6974
declare logo: BelongsTo<typeof FileEntry>;
7075

71-
@typedColumn.dateTime({ autoCreate: true })
72-
declare createdAt: DateTime;
73-
74-
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
75-
declare updatedAt: DateTime;
76-
7776
static preloadRelations = preloadRelations();
7877
static handleSearchQuery = handleSearchQuery();
7978
static handleSortQuery = handleSortQuery();

app/models/das_timetable.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ export default class DasTimetable extends BaseModel {
1818
})
1919
declare id: number; // Id Mapping
2020

21-
@belongsTo(() => Das, {
22-
localKey: "id",
23-
foreignKey: "id",
24-
})
25-
declare das: BelongsTo<typeof Das>;
26-
2721
@typedColumn({ type: "string" })
2822
declare name: string;
2923

@@ -33,6 +27,12 @@ export default class DasTimetable extends BaseModel {
3327
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
3428
declare updatedAt: DateTime;
3529

30+
@belongsTo(() => Das, {
31+
localKey: "id",
32+
foreignKey: "id",
33+
})
34+
declare das: BelongsTo<typeof Das>;
35+
3636
@hasMany(() => DasTimetableEntry)
3737
declare entries: HasMany<typeof DasTimetableEntry>;
3838

app/models/das_timetable_entry.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,14 @@ export default class DasTimetableEntry extends BaseModel {
1717
@typedColumn({ foreignKeyOf: () => DasTimetable })
1818
declare timetableId: number;
1919

20-
@belongsTo(() => DasTimetable, {
21-
foreignKey: "timetableId",
22-
localKey: "id",
23-
})
24-
declare timetable: BelongsTo<typeof DasTimetable>;
25-
2620
@typedColumn({ type: "string" })
2721
declare name: string;
2822

29-
@typedColumn.dateTime({ optional: true })
23+
@typedColumn.dateTime({})
3024
declare startTime: DateTime;
3125

3226
@typedColumn.dateTime({
33-
optional: true,
34-
validator: vine.date().after("startTime").nullable(),
27+
validator: vine.luxonDateTime().afterField("startsAt"),
3528
})
3629
declare endTime: DateTime;
3730

@@ -41,6 +34,12 @@ export default class DasTimetableEntry extends BaseModel {
4134
@typedColumn.dateTime({ autoCreate: true, autoUpdate: true })
4235
declare updatedAt: DateTime;
4336

37+
@belongsTo(() => DasTimetable, {
38+
foreignKey: "timetableId",
39+
localKey: "id",
40+
})
41+
declare timetable: BelongsTo<typeof DasTimetable>;
42+
4443
static preloadRelations = preloadRelations();
4544
static handleSearchQuery = handleSearchQuery();
4645
static handleSortQuery = handleSortQuery();

database/migrations/1764083040864_create_das_table.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export default class extends BaseSchema {
88
table.increments("id").primary();
99
table.timestamp("starts_at").notNullable();
1010
table.timestamp("ends_at").notNullable();
11+
table.timestamp("updated_at").notNullable();
1112
table.timestamp("created_at").notNullable();
1213
});
1314
}

database/migrations/1764083217368_create_das_stands_table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default class extends BaseSchema {
2828
.references("id")
2929
.inTable("file_entries")
3030
.nullable()
31-
.onDelete("SET NULL");
31+
.onDelete("RESTRICT");
3232
table.timestamp("created_at").notNullable();
3333
table.timestamp("updated_at").notNullable();
3434
});

database/migrations/1764088127037_create_das_timetable_entries_table.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export default class extends BaseSchema {
1313
.notNullable()
1414
.onDelete("CASCADE");
1515
table.text("name").notNullable();
16-
table.timestamp("start_time").nullable();
17-
table.timestamp("end_time").nullable();
16+
table.timestamp("start_time").notNullable();
17+
table.timestamp("end_time").notNullable();
1818
table.timestamp("created_at").notNullable();
1919
table.timestamp("updated_at").notNullable();
2020
});

0 commit comments

Comments
 (0)