mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 23:46:35 +00:00
feat(db): primary-relation entities proven (BudgetCategoryOrder, VacayUserSettings)
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p, EntityRepository } from '@mikro-orm/core';
|
||||
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
|
||||
import { BudgetCategoryOrderRepository } from '../repositories/BudgetCategoryOrder.repository';
|
||||
import { Trips } from './Trips.entity';
|
||||
|
||||
export class BudgetCategoryOrder {
|
||||
[PrimaryKeyProp]?: ['trip', 'category'];
|
||||
trip!: Ref<Trips>;
|
||||
trip_id!: number;
|
||||
category!: string;
|
||||
sortOrder: number & Opt = 0;
|
||||
sort_order: number & Opt = 0;
|
||||
}
|
||||
|
||||
export class BudgetCategoryOrderRepository extends EntityRepository<BudgetCategoryOrder> {}
|
||||
|
||||
export const BudgetCategoryOrderSchema = defineEntity({
|
||||
class: BudgetCategoryOrder,
|
||||
repository: () => BudgetCategoryOrderRepository,
|
||||
properties: {
|
||||
trip: () => p.manyToOne(Trips).primary().ref().deleteRule('cascade'),
|
||||
trip: () => p.manyToOne(Trips).primary().ref().hidden().deleteRule('cascade'),
|
||||
trip_id: p.integer().persist(false),
|
||||
category: p.text().primary(),
|
||||
sortOrder: p.integer(),
|
||||
sort_order: p.integer().default(0),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p, EntityRepository } from '@mikro-orm/core';
|
||||
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
|
||||
import { VacayUserSettingsRepository } from '../repositories/VacayUserSettings.repository';
|
||||
import { Users } from './Users.entity';
|
||||
|
||||
export class VacayUserSettings {
|
||||
[PrimaryKeyProp]?: 'user';
|
||||
user?: Ref<Users> | null;
|
||||
yearType: string & Opt = 'calendar';
|
||||
yearStartMonth: number & Opt = 1;
|
||||
yearStartDay: number & Opt = 1;
|
||||
hireDate?: string | null;
|
||||
user_id!: number;
|
||||
year_type: string & Opt = 'calendar';
|
||||
year_start_month: number & Opt = 1;
|
||||
year_start_day: number & Opt = 1;
|
||||
hire_date?: string | null;
|
||||
}
|
||||
|
||||
export class VacayUserSettingsRepository extends EntityRepository<VacayUserSettings> {}
|
||||
|
||||
export const VacayUserSettingsSchema = defineEntity({
|
||||
class: VacayUserSettings,
|
||||
repository: () => VacayUserSettingsRepository,
|
||||
properties: {
|
||||
user: () => p.oneToOne(Users).primary().ref().nullable(),
|
||||
yearType: p.text(),
|
||||
yearStartMonth: p.integer(),
|
||||
yearStartDay: p.integer(),
|
||||
hireDate: p.text().nullable(),
|
||||
user: () => p.oneToOne(Users).primary().ref().hidden().nullable(),
|
||||
user_id: p.integer().persist(false),
|
||||
year_type: p.text().default('calendar'),
|
||||
year_start_month: p.integer().default(1),
|
||||
year_start_day: p.integer().default(1),
|
||||
hire_date: p.text().nullable(),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
import type { BudgetCategoryOrder } from '../entities/BudgetCategoryOrder.entity';
|
||||
import { EntityRepository } from '@mikro-orm/sql';
|
||||
|
||||
export class BudgetCategoryOrderRepository extends EntityRepository<BudgetCategoryOrder> {}
|
||||
@@ -0,0 +1,4 @@
|
||||
import type { VacayUserSettings } from '../entities/VacayUserSettings.entity';
|
||||
import { EntityRepository } from '@mikro-orm/sql';
|
||||
|
||||
export class VacayUserSettingsRepository extends EntityRepository<VacayUserSettings> {}
|
||||
Reference in New Issue
Block a user