feat(db): generated entities declare their repository type; test casts dropped

This commit is contained in:
jubnl
2026-09-22 18:01:45 +02:00
parent 46bb11f508
commit 66703efeb7
161 changed files with 610 additions and 224 deletions
+152 -2
View File
@@ -768,6 +768,61 @@ export function RULE9_addImplicitUniqueConstraints(
}
}
/** A repository-type marker to inject into one entity class — Rule 10. */
export interface RepositoryTypeMarkerFixup {
className: string;
repositoryClassName: string;
}
/**
* Rule 10 (metadata level: which class needs a marker and what to name it;
* text level: the actual insertion, see `injectRepositoryTypeMarker` below —
* this split, and why it cannot be a pure metadata rule, mirrors Rule 5's
* `.joinColumn()` injection): every entity class gets
* `[EntityRepositoryType]?: XRepository;` as its FIRST member, so
* `em.getRepository(X)` — and `t.repo(X)` in `tests/helpers/test-orm.ts`,
* whose `repo<T>` already returns `GetRepository<T, EntityRepository<T>>` —
* resolves to the entity's own repository type instead of the generic
* `SqlEntityRepository<X>` fallback. `GetRepository<Entity, Fallback>`
* (`@mikro-orm/core`'s `typings.d.ts`, installed version 7.2.1) reads
* exactly this symbol-keyed member off the entity type
* (`Entity[typeof EntityRepositoryType]`) — confirmed against the installed
* typings, not assumed.
*
* `@mikro-orm/entity-generator`'s OWN renderer already knows how to emit this
* marker, but only for the decorator-based `@Entity()` shape
* (`SourceFile.js#generate()`, guarded by `if (this.meta.repositoryClass)`).
* Our `defineEntity` output goes through a different method entirely —
* `EntitySchemaSourceFile.generateClassDefinition()` (shared by
* `DefineEntitySourceFile`, read directly out of
* `node_modules/@mikro-orm/entity-generator/EntitySchemaSourceFile.js`) —
* which only ever consults `PrimaryKeyProp`/`EagerProps`/`Config` for the
* class head, never `repositoryClass`. No `GenerateOptions` flag changes
* that, so — exactly like Rule 5's join column — the metadata alone cannot
* carry this into the rendered class body; only a text pass can.
*
* The metadata half below does not mutate anything: `meta.repositoryClass`
* is already set for every entity by Rule 8 (which always runs first, see
* `applyRules`) — this is purely a collector, so the text pass has
* (className, repositoryClassName) pairs to work from without re-deriving
* the "<ClassName>Repository" naming convention a second time.
*
* The marker is a type-only declaration (`?:`, never assigned a value) — NOT
* a real entity property. It must never go through `meta.addProperty`:
* MikroORM would then treat it as a genuine, unmapped column.
* `tests/unit/db/entity-class-fields.test.ts` (CLASSFIELD-003) pins that this
* stays true — the marker never shows up in `meta.props` and is never
* counted by CLASSFIELD-002's class-field census.
*/
export function RULE10_repositoryTypeMarker(metadata: EntityMetadata[]): RepositoryTypeMarkerFixup[] {
const fixups: RepositoryTypeMarkerFixup[] = [];
for (const meta of metadata) {
if (!meta.repositoryClass) continue; // Rule 8 always sets this — defensive only, never observed empty
fixups.push({ className: meta.className, repositoryClassName: meta.repositoryClass });
}
return fixups;
}
/** A scalar property whose literal default the renderer's own heuristic drops or mis-renders — see below. */
export interface DefaultFixup {
className: string;
@@ -842,6 +897,8 @@ export interface RuleFixups {
jsonColumns: JsonColumnFixup[];
/** Rule 1's + Rule 1b's + Rule 2's retyped scalars together — all three need the same `.columnType()` strip (see `stripRedundantColumnType`). */
retypedScalars: RetypedScalarFixup[];
/** Rule 10's repository-type markers — one per entity class. */
repositoryMarkers: RepositoryTypeMarkerFixup[];
}
/**
@@ -874,7 +931,15 @@ export function applyRules(
RULE8_bindRepositories(metadata);
RULE9_addImplicitUniqueConstraints(metadata, implicitUniques);
const defaults = RULE_normalizeLiteralDefaults(metadata);
return { joinColumns, defaults, timestamps, jsonColumns, retypedScalars: [...retypedByRule1, ...timestamps, ...jsonColumns] };
const repositoryMarkers = RULE10_repositoryTypeMarker(metadata);
return {
joinColumns,
defaults,
timestamps,
jsonColumns,
retypedScalars: [...retypedByRule1, ...timestamps, ...jsonColumns],
repositoryMarkers,
};
}
/**
@@ -1303,6 +1368,82 @@ export function stripHiddenTypeAnnotation(source: string): string {
return removeUnusedCoreImportIfUnused(strippedClassBody + rest, 'Hidden');
}
/**
* Case-sensitive alpha sort key for a `@mikro-orm/core` named-import entry —
* matches `@mikro-orm/entity-generator`'s own `generateImports()` (sorts the
* raw identifiers, THEN prepends `type ` to whichever ones need it), read
* directly out of `SourceFile.js`. Ignoring any existing `type ` prefix for
* ordering purposes is what keeps this idempotent against the generator's
* own output — re-running `--write` after this pass must never reorder what
* the generator already got right.
*/
function coreImportSortKey(entry: string): string {
return entry.replace(/^type /, '');
}
/**
* Adds `identifier` (a VALUE import — never `type`-prefixed; see callers) to
* the file's `@mikro-orm/core` named import line, re-sorting the whole list
* with `coreImportSortKey` so the result is byte-identical to what
* `@mikro-orm/entity-generator` would have rendered had it known about this
* identifier itself. A no-op if the identifier is already present (every
* generated file has exactly one `@mikro-orm/core` import line — `defineEntity`
* and `p` are unconditional — so "no import line at all" is a renderer-shape
* change, not a legitimate input, and throws rather than silently doing
* nothing.
*/
function addNamedCoreImport(source: string, identifier: string): string {
const importLineRe = /^import \{ ([^}]*) \} from '@mikro-orm\/core';$/m;
const match = importLineRe.exec(source);
if (!match) {
throw new Error(`generate-entities: addNamedCoreImport could not find the "@mikro-orm/core" import line to add "${identifier}" to.`);
}
const entries = match[1].split(',').map((e) => e.trim());
if (entries.some((e) => coreImportSortKey(e) === identifier)) return source; // already present
entries.push(identifier);
entries.sort((a, b) => {
const ka = coreImportSortKey(a);
const kb = coreImportSortKey(b);
return ka < kb ? -1 : ka > kb ? 1 : 0;
});
const newLine = `import { ${entries.join(', ')} } from '@mikro-orm/core';`;
return source.slice(0, match.index) + newLine + source.slice(match.index + match[0].length);
}
/**
* The text half of Rule 10: inserts `[EntityRepositoryType]?: XRepository;`
* as the class's FIRST member — before an existing `[PrimaryKeyProp]`/
* `[EagerProps]` marker, if either is present (`generateClassDefinition()`
* only ever emits those two, plus `[Config]` for a custom base entity this
* codebase does not use) — and adds `EntityRepositoryType` to the
* `@mikro-orm/core` named import line.
*
* `EntityRepositoryType` is a real runtime `unique symbol` const, not an
* erased type (`POSSIBLE_TYPE_IMPORTS` in the installed entity-generator's
* `CoreImportsHelper.js` does not list it), so this is a VALUE import, never
* `import type` — the same way the generator's own decorator-mode renderer
* imports it, and the same way every existing `[PrimaryKeyProp]` marker in
* this tree already imports `PrimaryKeyProp` as a value (see e.g.
* `AppSettings.entity.ts`).
*/
export function injectRepositoryTypeMarker(source: string, fixups: readonly RepositoryTypeMarkerFixup[]): string {
let result = source;
for (const { className, repositoryClassName } of fixups) {
const classOpenRe = new RegExp(`^(export class ${escapeRegExp(className)} \\{)$`, 'm');
const match = classOpenRe.exec(result);
if (!match) {
throw new Error(
`generate-entities: injectRepositoryTypeMarker could not find "export class ${className} {" to insert the marker after.`,
);
}
const insertAt = match.index + match[0].length;
const marker = `\n [EntityRepositoryType]?: ${repositoryClassName};`;
result = result.slice(0, insertAt) + marker + result.slice(insertAt);
result = addNamedCoreImport(result, 'EntityRepositoryType');
}
return result;
}
/** Every text pass, applied in order. */
export function applyTextPasses(source: string, fixups: RuleFixups): string {
let result = injectJoinColumns(source, fixups.joinColumns);
@@ -1314,6 +1455,7 @@ export function applyTextPasses(source: string, fixups: RuleFixups): string {
result = injectJsonInterfaces(result, fixups.jsonColumns);
result = removeUnusedCoreImportIfUnused(result, 'IType');
result = stripHiddenTypeAnnotation(result);
result = injectRepositoryTypeMarker(result, fixups.repositoryMarkers);
return result;
}
@@ -1401,7 +1543,14 @@ export async function generateEntities(): Promise<GenerateResult> {
});
try {
const generator = orm.config.getExtension<EntityGenerator>('@mikro-orm/entity-generator');
let fixups: RuleFixups = { joinColumns: [], defaults: [], timestamps: [], jsonColumns: [], retypedScalars: [] };
let fixups: RuleFixups = {
joinColumns: [],
defaults: [],
timestamps: [],
jsonColumns: [],
retypedScalars: [],
repositoryMarkers: [],
};
const rawFiles = await generator.generate({
entityDefinition: 'defineEntity',
scalarPropertiesForRelations: 'always',
@@ -1435,6 +1584,7 @@ export async function generateEntities(): Promise<GenerateResult> {
timestamps: fixups.timestamps.filter((f) => f.className === className),
jsonColumns: fixups.jsonColumns.filter((f) => f.className === className),
retypedScalars: fixups.retypedScalars.filter((f) => f.className === className),
repositoryMarkers: fixups.repositoryMarkers.filter((f) => f.className === className),
};
files.set(`${className}.entity.ts`, applyTextPasses(raw, relevantFixups));
}
+2 -1
View File
@@ -1,4 +1,4 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { AddonsRepository } from '../repositories/Addons.repository';
export interface AddonConfig {
@@ -6,6 +6,7 @@ export interface AddonConfig {
}
export class Addons {
[EntityRepositoryType]?: AddonsRepository;
id?: string | null;
name!: string;
description?: string | null;
+2 -1
View File
@@ -1,7 +1,8 @@
import { PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { AppSettingsRepository } from '../repositories/AppSettings.repository';
export class AppSettings {
[EntityRepositoryType]?: AppSettingsRepository;
[PrimaryKeyProp]?: 'key';
key?: string | null;
value?: string | null;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { AssignmentParticipantsRepository } from '../repositories/AssignmentParticipants.repository';
import { DayAssignments } from './DayAssignments.entity';
import { Users } from './Users.entity';
export class AssignmentParticipants {
[EntityRepositoryType]?: AssignmentParticipantsRepository;
id!: number & Opt;
assignment!: Ref<DayAssignments>;
assignment_id!: number;
+2 -1
View File
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { AuditLogRepository } from '../repositories/AuditLog.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class AuditLog {
[EntityRepositoryType]?: AuditLogRepository;
id!: number & Opt;
created_at?: string | null;
user?: Ref<Users> | null;
+2 -1
View File
@@ -1,10 +1,11 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { BucketListRepository } from '../repositories/BucketList.repository';
import { DbTimestampType } from '../types';
import { DawarichVisitSuggestions } from './DawarichVisitSuggestions.entity';
import { Users } from './Users.entity';
export class BucketList {
[EntityRepositoryType]?: BucketListRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, 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 {
[EntityRepositoryType]?: BudgetCategoryOrderRepository;
[PrimaryKeyProp]?: ['trip', 'category'];
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { BudgetItemMembersRepository } from '../repositories/BudgetItemMembers.repository';
import { BudgetItems } from './BudgetItems.entity';
import { Users } from './Users.entity';
export class BudgetItemMembers {
[EntityRepositoryType]?: BudgetItemMembersRepository;
id!: number & Opt;
budgetItem!: Ref<BudgetItems>;
budget_item_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { BudgetItemPayersRepository } from '../repositories/BudgetItemPayers.repository';
import { BudgetItems } from './BudgetItems.entity';
import { Users } from './Users.entity';
export class BudgetItemPayers {
[EntityRepositoryType]?: BudgetItemPayersRepository;
id!: number & Opt;
budgetItem!: Ref<BudgetItems>;
budget_item_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { BudgetItemsRepository } from '../repositories/BudgetItems.repository';
import { DbTimestampType } from '../types';
import { BudgetItemMembers } from './BudgetItemMembers.entity';
@@ -10,6 +10,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class BudgetItems {
[EntityRepositoryType]?: BudgetItemsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { BudgetSettlementsRepository } from '../repositories/BudgetSettlements.repository';
import { DbTimestampType } from '../types';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class BudgetSettlements {
[EntityRepositoryType]?: BudgetSettlementsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CategoriesRepository } from '../repositories/Categories.repository';
import { DbTimestampType } from '../types';
import { CollectionPlaces } from './CollectionPlaces.entity';
@@ -6,6 +6,7 @@ import { Places } from './Places.entity';
import { Users } from './Users.entity';
export class Categories {
[EntityRepositoryType]?: CategoriesRepository;
id!: number & Opt;
name!: string;
color?: string | null = '#6366f1';
+2 -1
View File
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabLinksRepository } from '../repositories/CollabLinks.repository';
import { DbTimestampType } from '../types';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class CollabLinks {
[EntityRepositoryType]?: CollabLinksRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabMessageReactionsRepository } from '../repositories/CollabMessageReactions.repository';
import { DbTimestampType } from '../types';
import { CollabMessages } from './CollabMessages.entity';
import { Users } from './Users.entity';
export class CollabMessageReactions {
[EntityRepositoryType]?: CollabMessageReactionsRepository;
id!: number & Opt;
message!: Ref<CollabMessages>;
message_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabMessagesRepository } from '../repositories/CollabMessages.repository';
import { DbTimestampType } from '../types';
import { CollabMessageReactions } from './CollabMessageReactions.entity';
@@ -7,6 +7,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class CollabMessages {
[EntityRepositoryType]?: CollabMessagesRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabNotesRepository } from '../repositories/CollabNotes.repository';
import { DbTimestampType } from '../types';
import { TripFiles } from './TripFiles.entity';
@@ -6,6 +6,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class CollabNotes {
[EntityRepositoryType]?: CollabNotesRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabPollVotesRepository } from '../repositories/CollabPollVotes.repository';
import { DbTimestampType } from '../types';
import { CollabPolls } from './CollabPolls.entity';
import { Users } from './Users.entity';
export class CollabPollVotes {
[EntityRepositoryType]?: CollabPollVotesRepository;
id!: number & Opt;
poll!: Ref<CollabPolls>;
poll_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollabPollsRepository } from '../repositories/CollabPolls.repository';
import { DbTimestampType } from '../types';
import { CollabPollVotes } from './CollabPollVotes.entity';
@@ -6,6 +6,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class CollabPolls {
[EntityRepositoryType]?: CollabPollsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,10 +1,11 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollectionLabelsRepository } from '../repositories/CollectionLabels.repository';
import { DbTimestampType } from '../types';
import { CollectionPlaces } from './CollectionPlaces.entity';
import { Collections } from './Collections.entity';
export class CollectionLabels {
[EntityRepositoryType]?: CollectionLabelsRepository;
id!: number & Opt;
collection!: Ref<Collections>;
collection_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollectionMembersRepository } from '../repositories/CollectionMembers.repository';
import { DbTimestampType } from '../types';
import { Collections } from './Collections.entity';
import { Users } from './Users.entity';
export class CollectionMembers {
[EntityRepositoryType]?: CollectionMembersRepository;
id!: number & Opt;
collection!: Ref<Collections>;
collection_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollectionPlaceRatingsRepository } from '../repositories/CollectionPlaceRatings.repository';
import { DbTimestampType } from '../types';
import { CollectionPlaces } from './CollectionPlaces.entity';
import { Users } from './Users.entity';
export class CollectionPlaceRatings {
[EntityRepositoryType]?: CollectionPlaceRatingsRepository;
id!: number & Opt;
collectionPlace!: Ref<CollectionPlaces>;
collection_place_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollectionPlacesRepository } from '../repositories/CollectionPlaces.repository';
import { DbTimestampType } from '../types';
import { Categories } from './Categories.entity';
@@ -9,6 +9,7 @@ import { Tags } from './Tags.entity';
import { Users } from './Users.entity';
export class CollectionPlaces {
[EntityRepositoryType]?: CollectionPlacesRepository;
id!: number & Opt;
collection!: Ref<Collections>;
collection_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { CollectionsRepository } from '../repositories/Collections.repository';
import { DbTimestampType } from '../types';
import { CollectionLabels } from './CollectionLabels.entity';
@@ -7,6 +7,7 @@ import { CollectionPlaces } from './CollectionPlaces.entity';
import { Users } from './Users.entity';
export class Collections {
[EntityRepositoryType]?: CollectionsRepository;
id!: number & Opt;
owner!: Ref<Users>;
owner_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DawarichConnectionsRepository } from '../repositories/DawarichConnections.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class DawarichConnections {
[EntityRepositoryType]?: DawarichConnectionsRepository;
[PrimaryKeyProp]?: 'user';
user?: Ref<Users> | null;
user_id?: number | null;
@@ -1,4 +1,4 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DawarichVisitSuggestionsRepository } from '../repositories/DawarichVisitSuggestions.repository';
import { BucketList } from './BucketList.entity';
import { Places } from './Places.entity';
@@ -6,6 +6,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class DawarichVisitSuggestions {
[EntityRepositoryType]?: DawarichVisitSuggestionsRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,4 +1,4 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DayAccommodationsRepository } from '../repositories/DayAccommodations.repository';
import { DbTimestampType } from '../types';
import { Days } from './Days.entity';
@@ -6,6 +6,7 @@ import { Places } from './Places.entity';
import { Trips } from './Trips.entity';
export class DayAccommodations {
[EntityRepositoryType]?: DayAccommodationsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DayAssignmentsRepository } from '../repositories/DayAssignments.repository';
import { DbTimestampType } from '../types';
import { AssignmentParticipants } from './AssignmentParticipants.entity';
@@ -9,6 +9,7 @@ import { Reservations } from './Reservations.entity';
import { RoadtripDayBoundaries } from './RoadtripDayBoundaries.entity';
export class DayAssignments {
[EntityRepositoryType]?: DayAssignmentsRepository;
id!: number & Opt;
day!: Ref<Days>;
day_id!: number;
+2 -1
View File
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DayNotesRepository } from '../repositories/DayNotes.repository';
import { DbTimestampType } from '../types';
import { Days } from './Days.entity';
import { Trips } from './Trips.entity';
export class DayNotes {
[EntityRepositoryType]?: DayNotesRepository;
id!: number & Opt;
day!: Ref<Days>;
day_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DaysRepository } from '../repositories/Days.repository';
import { DayAccommodations } from './DayAccommodations.entity';
import { DayAssignments } from './DayAssignments.entity';
@@ -11,6 +11,7 @@ import { RoadtripVias } from './RoadtripVias.entity';
import { Trips } from './Trips.entity';
export class Days {
[EntityRepositoryType]?: DaysRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DocumentConnectionsRepository } from '../repositories/DocumentConnections.repository';
import { DbTimestampType } from '../types';
import { DocumentProviders } from './DocumentProviders.entity';
@@ -7,6 +7,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class DocumentConnections {
[EntityRepositoryType]?: DocumentConnectionsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DocumentProviderFieldsRepository } from '../repositories/DocumentProviderFields.repository';
import { DocumentProviders } from './DocumentProviders.entity';
export class DocumentProviderFields {
[EntityRepositoryType]?: DocumentProviderFieldsRepository;
id!: number & Opt;
provider!: Ref<DocumentProviders>;
provider_id!: string;
@@ -1,9 +1,10 @@
import { Collection, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, defineEntity, p } from '@mikro-orm/core';
import { DocumentProvidersRepository } from '../repositories/DocumentProviders.repository';
import { DocumentConnections } from './DocumentConnections.entity';
import { DocumentProviderFields } from './DocumentProviderFields.entity';
export class DocumentProviders {
[EntityRepositoryType]?: DocumentProvidersRepository;
id?: string | null;
name!: string;
description?: string | null;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { DocumentSyncItemsRepository } from '../repositories/DocumentSyncItems.repository';
import { TripDocumentLinks } from './TripDocumentLinks.entity';
import { TripFiles } from './TripFiles.entity';
import { Trips } from './Trips.entity';
export class DocumentSyncItems {
[EntityRepositoryType]?: DocumentSyncItemsRepository;
id!: number & Opt;
link!: Ref<TripDocumentLinks>;
link_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { FileLinksRepository } from '../repositories/FileLinks.repository';
import { DbTimestampType } from '../types';
import { BudgetItems } from './BudgetItems.entity';
@@ -8,6 +8,7 @@ import { Reservations } from './Reservations.entity';
import { TripFiles } from './TripFiles.entity';
export class FileLinks {
[EntityRepositoryType]?: FileLinksRepository;
id!: number & Opt;
file!: Ref<TripFiles>;
file_id!: number;
@@ -1,7 +1,8 @@
import { PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { GooglePlacePhotoMetaRepository } from '../repositories/GooglePlacePhotoMeta.repository';
export class GooglePlacePhotoMeta {
[EntityRepositoryType]?: GooglePlacePhotoMetaRepository;
[PrimaryKeyProp]?: 'place_id';
place_id?: string | null;
attribution?: string | null;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { HiddenCountriesRepository } from '../repositories/HiddenCountries.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class HiddenCountries {
[EntityRepositoryType]?: HiddenCountriesRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { HiddenRegionsRepository } from '../repositories/HiddenRegions.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class HiddenRegions {
[EntityRepositoryType]?: HiddenRegionsRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { IdempotencyKeysRepository } from '../repositories/IdempotencyKeys.repository';
import { Users } from './Users.entity';
export class IdempotencyKeys {
[EntityRepositoryType]?: IdempotencyKeysRepository;
[PrimaryKeyProp]?: ['key', 'user', 'method', 'path'];
key!: string;
user!: Ref<Users>;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { InviteTokensRepository } from '../repositories/InviteTokens.repository';
import { DbTimestampType } from '../types';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class InviteTokens {
[EntityRepositoryType]?: InviteTokensRepository;
id!: number & Opt;
token!: string;
max_uses: number & Opt = 1;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyBooksRepository } from '../repositories/JourneyBooks.repository';
import { DbTimestampType } from '../types';
import { Journeys } from './Journeys.entity';
import { Users } from './Users.entity';
export class JourneyBooks {
[EntityRepositoryType]?: JourneyBooksRepository;
id!: number & Opt;
journey!: Ref<Journeys>;
journey_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyContributorsRepository } from '../repositories/JourneyContributors.repository';
import { Journeys } from './Journeys.entity';
import { Users } from './Users.entity';
export class JourneyContributors {
[EntityRepositoryType]?: JourneyContributorsRepository;
[PrimaryKeyProp]?: ['journey', 'user'];
journey!: Ref<Journeys>;
journey_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyEntriesRepository } from '../repositories/JourneyEntries.repository';
import { JourneyEntryPhotos } from './JourneyEntryPhotos.entity';
import { Journeys } from './Journeys.entity';
@@ -7,6 +7,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class JourneyEntries {
[EntityRepositoryType]?: JourneyEntriesRepository;
id!: number & Opt;
journey!: Ref<Journeys>;
journey_id!: number;
@@ -1,9 +1,10 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyEntryPhotosRepository } from '../repositories/JourneyEntryPhotos.repository';
import { JourneyEntries } from './JourneyEntries.entity';
import { JourneyPhotos } from './JourneyPhotos.entity';
export class JourneyEntryPhotos {
[EntityRepositoryType]?: JourneyEntryPhotosRepository;
[PrimaryKeyProp]?: ['entry', 'journeyPhoto'];
entry!: Ref<JourneyEntries>;
entry_id!: number;
@@ -1,10 +1,11 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyPhotosRepository } from '../repositories/JourneyPhotos.repository';
import { JourneyEntryPhotos } from './JourneyEntryPhotos.entity';
import { Journeys } from './Journeys.entity';
import { TrekPhotos } from './TrekPhotos.entity';
export class JourneyPhotos {
[EntityRepositoryType]?: JourneyPhotosRepository;
id!: number & Opt;
journey!: Ref<Journeys>;
journey_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyShareTokensRepository } from '../repositories/JourneyShareTokens.repository';
import { DbTimestampType } from '../types';
import { Journeys } from './Journeys.entity';
import { Users } from './Users.entity';
export class JourneyShareTokens {
[EntityRepositoryType]?: JourneyShareTokensRepository;
id!: number & Opt;
journey!: Ref<Journeys>;
journey_id!: number;
@@ -1,9 +1,10 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneyTripsRepository } from '../repositories/JourneyTrips.repository';
import { Journeys } from './Journeys.entity';
import { Trips } from './Trips.entity';
export class JourneyTrips {
[EntityRepositoryType]?: JourneyTripsRepository;
[PrimaryKeyProp]?: ['journey', 'trip'];
journey!: Ref<Journeys>;
journey_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { JourneysRepository } from '../repositories/Journeys.repository';
import { JourneyBooks } from './JourneyBooks.entity';
import { JourneyContributors } from './JourneyContributors.entity';
@@ -9,6 +9,7 @@ import { JourneyTrips } from './JourneyTrips.entity';
import { Users } from './Users.entity';
export class Journeys {
[EntityRepositoryType]?: JourneysRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
+2 -1
View File
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { McpTokensRepository } from '../repositories/McpTokens.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class McpTokens {
[EntityRepositoryType]?: McpTokensRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
+2 -1
View File
@@ -1,7 +1,8 @@
import { defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, defineEntity, p } from '@mikro-orm/core';
import { MigrationsRepository } from '../repositories/Migrations.repository';
export class Migrations {
[EntityRepositoryType]?: MigrationsRepository;
id!: number;
timestamp!: bigint;
name!: string;
@@ -1,8 +1,9 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { NotificationChannelPreferencesRepository } from '../repositories/NotificationChannelPreferences.repository';
import { Users } from './Users.entity';
export class NotificationChannelPreferences {
[EntityRepositoryType]?: NotificationChannelPreferencesRepository;
[PrimaryKeyProp]?: ['user', 'event_type', 'channel'];
user!: Ref<Users>;
user_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { NotificationsRepository } from '../repositories/Notifications.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class Notifications {
[EntityRepositoryType]?: NotificationsRepository;
id!: number & Opt;
type!: string;
scope!: string;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { OauthClientsRepository } from '../repositories/OauthClients.repository';
import { DbTimestampType } from '../types';
import { OauthConsents } from './OauthConsents.entity';
@@ -6,6 +6,7 @@ import { OauthTokens } from './OauthTokens.entity';
import { Users } from './Users.entity';
export class OauthClients {
[EntityRepositoryType]?: OauthClientsRepository;
id?: string | null;
user?: Ref<Users> | null;
user_id?: number | null;
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { OauthConsentsRepository } from '../repositories/OauthConsents.repository';
import { DbTimestampType } from '../types';
import { OauthClients } from './OauthClients.entity';
import { Users } from './Users.entity';
export class OauthConsents {
[EntityRepositoryType]?: OauthConsentsRepository;
id!: number & Opt;
client!: Ref<OauthClients>;
client_id!: string;
+2 -1
View File
@@ -1,10 +1,11 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { OauthTokensRepository } from '../repositories/OauthTokens.repository';
import { DbTimestampType } from '../types';
import { OauthClients } from './OauthClients.entity';
import { Users } from './Users.entity';
export class OauthTokens {
[EntityRepositoryType]?: OauthTokensRepository;
id!: number & Opt;
client!: Ref<OauthClients>;
client_id!: string;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingBagsRepository } from '../repositories/PackingBags.repository';
import { DbTimestampType } from '../types';
import { PackingItems } from './PackingItems.entity';
@@ -6,6 +6,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class PackingBags {
[EntityRepositoryType]?: PackingBagsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingCategoryAssigneesRepository } from '../repositories/PackingCategoryAssignees.repository';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class PackingCategoryAssignees {
[EntityRepositoryType]?: PackingCategoryAssigneesRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,10 +1,11 @@
import { type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingItemContributorsRepository } from '../repositories/PackingItemContributors.repository';
import { DbTimestampType } from '../types';
import { PackingItems } from './PackingItems.entity';
import { Users } from './Users.entity';
export class PackingItemContributors {
[EntityRepositoryType]?: PackingItemContributorsRepository;
[PrimaryKeyProp]?: ['item', 'user'];
item!: Ref<PackingItems>;
item_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingItemsRepository } from '../repositories/PackingItems.repository';
import { DbTimestampType } from '../types';
import { PackingBags } from './PackingBags.entity';
@@ -7,6 +7,7 @@ import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class PackingItems {
[EntityRepositoryType]?: PackingItemsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,9 +1,10 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingTemplateCategoriesRepository } from '../repositories/PackingTemplateCategories.repository';
import { PackingTemplateItems } from './PackingTemplateItems.entity';
import { PackingTemplates } from './PackingTemplates.entity';
export class PackingTemplateCategories {
[EntityRepositoryType]?: PackingTemplateCategoriesRepository;
id!: number & Opt;
template!: Ref<PackingTemplates>;
template_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingTemplateItemsRepository } from '../repositories/PackingTemplateItems.repository';
import { PackingTemplateCategories } from './PackingTemplateCategories.entity';
export class PackingTemplateItems {
[EntityRepositoryType]?: PackingTemplateItemsRepository;
id!: number & Opt;
category!: Ref<PackingTemplateCategories>;
category_id!: number;
@@ -1,10 +1,11 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PackingTemplatesRepository } from '../repositories/PackingTemplates.repository';
import { DbTimestampType } from '../types';
import { PackingTemplateCategories } from './PackingTemplateCategories.entity';
import { Users } from './Users.entity';
export class PackingTemplates {
[EntityRepositoryType]?: PackingTemplatesRepository;
id!: number & Opt;
name!: string;
created_by!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PasswordResetTokensRepository } from '../repositories/PasswordResetTokens.repository';
import { DbTimestampType } from '../types';
import { Users } from './Users.entity';
export class PasswordResetTokens {
[EntityRepositoryType]?: PasswordResetTokensRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PhotoProviderFieldsRepository } from '../repositories/PhotoProviderFields.repository';
import { PhotoProviders } from './PhotoProviders.entity';
export class PhotoProviderFields {
[EntityRepositoryType]?: PhotoProviderFieldsRepository;
id!: number & Opt;
provider!: Ref<PhotoProviders>;
provider_id!: string;
@@ -1,8 +1,9 @@
import { Collection, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, defineEntity, p } from '@mikro-orm/core';
import { PhotoProvidersRepository } from '../repositories/PhotoProviders.repository';
import { PhotoProviderFields } from './PhotoProviderFields.entity';
export class PhotoProviders {
[EntityRepositoryType]?: PhotoProvidersRepository;
id?: string | null;
name!: string;
description?: string | null;
+2 -1
View File
@@ -1,4 +1,4 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PhotosRepository } from '../repositories/Photos.repository';
import { DbTimestampType } from '../types';
import { Days } from './Days.entity';
@@ -6,6 +6,7 @@ import { Places } from './Places.entity';
import { Trips } from './Trips.entity';
export class Photos {
[EntityRepositoryType]?: PhotosRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,7 +1,8 @@
import { type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PlaceDetailsCacheRepository } from '../repositories/PlaceDetailsCache.repository';
export class PlaceDetailsCache {
[EntityRepositoryType]?: PlaceDetailsCacheRepository;
[PrimaryKeyProp]?: ['place_id', 'lang', 'expanded'];
place_id!: string;
lang: string & Opt = '';
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PlaceRatingsRepository } from '../repositories/PlaceRatings.repository';
import { DbTimestampType } from '../types';
import { Places } from './Places.entity';
import { Users } from './Users.entity';
export class PlaceRatings {
[EntityRepositoryType]?: PlaceRatingsRepository;
id!: number & Opt;
place!: Ref<Places>;
place_id!: number;
@@ -1,8 +1,9 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PlaceRegionsRepository } from '../repositories/PlaceRegions.repository';
import { Places } from './Places.entity';
export class PlaceRegions {
[EntityRepositoryType]?: PlaceRegionsRepository;
[PrimaryKeyProp]?: 'place';
place?: Ref<Places> | null;
place_id?: number | null;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PlaceShadowPicksRepository } from '../repositories/PlaceShadowPicks.repository';
export class PlaceShadowPicks {
[EntityRepositoryType]?: PlaceShadowPicksRepository;
id!: number & Opt;
created_at!: string & Opt;
query!: string;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { PlacesRepository } from '../repositories/Places.repository';
import { DbTimestampType } from '../types';
import { BudgetItems } from './BudgetItems.entity';
@@ -18,6 +18,7 @@ import { TripFiles } from './TripFiles.entity';
import { Trips } from './Trips.entity';
export class Places {
[EntityRepositoryType]?: PlacesRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,7 +1,8 @@
import { type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PluginActionsRepository } from '../repositories/PluginActions.repository';
export class PluginActions {
[EntityRepositoryType]?: PluginActionsRepository;
[PrimaryKeyProp]?: ['plugin_id', 'action_key'];
plugin_id!: string;
action_key!: string;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginCapabilityAuditRepository } from '../repositories/PluginCapabilityAudit.repository';
export class PluginCapabilityAudit {
[EntityRepositoryType]?: PluginCapabilityAuditRepository;
id!: number & Opt;
plugin_id!: string;
acting_user_id?: number | null;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginEgressHostsRepository } from '../repositories/PluginEgressHosts.repository';
export class PluginEgressHosts {
[EntityRepositoryType]?: PluginEgressHostsRepository;
id!: number & Opt;
plugin_id!: string;
host!: string;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginEntityMetadataRepository } from '../repositories/PluginEntityMetadata.repository';
export class PluginEntityMetadata {
[EntityRepositoryType]?: PluginEntityMetadataRepository;
id!: number & Opt;
plugin_id!: string;
entity_type!: string;
@@ -1,8 +1,9 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginErrorLogRepository } from '../repositories/PluginErrorLog.repository';
import { DbTimestampType } from '../types';
export class PluginErrorLog {
[EntityRepositoryType]?: PluginErrorLogRepository;
id!: number & Opt;
plugin_id!: string;
ts?: string | null;
@@ -1,8 +1,9 @@
import { PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PluginMetaMigrationsRepository } from '../repositories/PluginMetaMigrations.repository';
import { DbTimestampType } from '../types';
export class PluginMetaMigrations {
[EntityRepositoryType]?: PluginMetaMigrationsRepository;
[PrimaryKeyProp]?: ['plugin_id', 'migration_id'];
plugin_id!: string;
migration_id!: string;
@@ -1,7 +1,8 @@
import { PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PluginOauthStateRepository } from '../repositories/PluginOauthState.repository';
export class PluginOauthState {
[EntityRepositoryType]?: PluginOauthStateRepository;
[PrimaryKeyProp]?: 'state';
state?: string | null;
plugin_id!: string;
@@ -1,7 +1,8 @@
import { type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PluginOauthTokensRepository } from '../repositories/PluginOauthTokens.repository';
export class PluginOauthTokens {
[EntityRepositoryType]?: PluginOauthTokensRepository;
[PrimaryKeyProp]?: ['plugin_id', 'user_id'];
plugin_id!: string;
user_id!: number;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginScheduledTasksRepository } from '../repositories/PluginScheduledTasks.repository';
export class PluginScheduledTasks {
[EntityRepositoryType]?: PluginScheduledTasksRepository;
id!: number & Opt;
plugin_id!: string;
name!: string;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginSettingsFieldsRepository } from '../repositories/PluginSettingsFields.repository';
export class PluginSettingsFields {
[EntityRepositoryType]?: PluginSettingsFieldsRepository;
id!: number & Opt;
plugin_id!: string;
field_key!: string;
@@ -1,7 +1,8 @@
import { type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { PluginUserConfigRepository } from '../repositories/PluginUserConfig.repository';
export class PluginUserConfig {
[EntityRepositoryType]?: PluginUserConfigRepository;
[PrimaryKeyProp]?: ['plugin_id', 'user_id'];
plugin_id!: string;
user_id!: number;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginUserErasureQueueRepository } from '../repositories/PluginUserErasureQueue.repository';
export class PluginUserErasureQueue {
[EntityRepositoryType]?: PluginUserErasureQueueRepository;
id!: number & Opt;
plugin_id!: string;
user_id!: number;
+2 -1
View File
@@ -1,8 +1,9 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { PluginsRepository } from '../repositories/Plugins.repository';
import { DbTimestampType } from '../types';
export class Plugins {
[EntityRepositoryType]?: PluginsRepository;
id?: string | null;
name!: string;
description?: string | null;
@@ -1,9 +1,10 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { ReservationDayPositionsRepository } from '../repositories/ReservationDayPositions.repository';
import { Days } from './Days.entity';
import { Reservations } from './Reservations.entity';
export class ReservationDayPositions {
[EntityRepositoryType]?: ReservationDayPositionsRepository;
[PrimaryKeyProp]?: ['reservation', 'day'];
reservation!: Ref<Reservations>;
reservation_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { ReservationEndpointsRepository } from '../repositories/ReservationEndpoints.repository';
import { DbTimestampType } from '../types';
import { Reservations } from './Reservations.entity';
export class ReservationEndpoints {
[EntityRepositoryType]?: ReservationEndpointsRepository;
id!: number & Opt;
reservation!: Ref<Reservations>;
reservation_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { ReservationTravelersRepository } from '../repositories/ReservationTravelers.repository';
import { Reservations } from './Reservations.entity';
import { Users } from './Users.entity';
export class ReservationTravelers {
[EntityRepositoryType]?: ReservationTravelersRepository;
id!: number & Opt;
reservation!: Ref<Reservations>;
reservation_id!: number;
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { ReservationsRepository } from '../repositories/Reservations.repository';
import { DbTimestampType } from '../types';
import { BudgetItems } from './BudgetItems.entity';
@@ -13,6 +13,7 @@ import { TripFiles } from './TripFiles.entity';
import { Trips } from './Trips.entity';
export class Reservations {
[EntityRepositoryType]?: ReservationsRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,9 +1,10 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { RoadtripDayBoundariesRepository } from '../repositories/RoadtripDayBoundaries.repository';
import { DayAssignments } from './DayAssignments.entity';
import { Trips } from './Trips.entity';
export class RoadtripDayBoundaries {
[EntityRepositoryType]?: RoadtripDayBoundariesRepository;
[PrimaryKeyProp]?: ['trip', 'day_number'];
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,9 +1,10 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { RoadtripDayTracksRepository } from '../repositories/RoadtripDayTracks.repository';
import { Days } from './Days.entity';
import { Places } from './Places.entity';
export class RoadtripDayTracks {
[EntityRepositoryType]?: RoadtripDayTracksRepository;
[PrimaryKeyProp]?: 'day';
day?: Ref<Days> | null;
day_id?: number | null;
@@ -1,8 +1,9 @@
import { PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, PrimaryKeyProp, type Ref, defineEntity, p } from '@mikro-orm/core';
import { RoadtripPreferencesRepository } from '../repositories/RoadtripPreferences.repository';
import { Trips } from './Trips.entity';
export class RoadtripPreferences {
[EntityRepositoryType]?: RoadtripPreferencesRepository;
[PrimaryKeyProp]?: ['trip', 'key'];
trip!: Ref<Trips>;
trip_id!: number;
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { RoadtripViasRepository } from '../repositories/RoadtripVias.repository';
import { Days } from './Days.entity';
export class RoadtripVias {
[EntityRepositoryType]?: RoadtripViasRepository;
id!: number & Opt;
day!: Ref<Days>;
day_id!: number;
@@ -1,7 +1,8 @@
import { type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { RouteUsageDailyRepository } from '../repositories/RouteUsageDaily.repository';
export class RouteUsageDaily {
[EntityRepositoryType]?: RouteUsageDailyRepository;
[PrimaryKeyProp]?: ['day', 'profile', 'surface', 'self_hosted'];
day!: string;
profile!: string;
@@ -1,7 +1,8 @@
import { type Opt, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, defineEntity, p } from '@mikro-orm/core';
import { SchemaVersionRepository } from '../repositories/SchemaVersion.repository';
export class SchemaVersion {
[EntityRepositoryType]?: SchemaVersionRepository;
id!: number & Opt;
version!: number;
}
@@ -1,8 +1,9 @@
import { Collection, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';
import { SchoolHolidayCountriesRepository } from '../repositories/SchoolHolidayCountries.repository';
import { SchoolHolidayRegions } from './SchoolHolidayRegions.entity';
export class SchoolHolidayCountries {
[EntityRepositoryType]?: SchoolHolidayCountriesRepository;
[PrimaryKeyProp]?: 'code';
code?: string | null;
name!: string;
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { SchoolHolidayPeriodsRepository } from '../repositories/SchoolHolidayPeriods.repository';
import { SchoolHolidayRegions } from './SchoolHolidayRegions.entity';
export class SchoolHolidayPeriods {
[EntityRepositoryType]?: SchoolHolidayPeriodsRepository;
id!: number & Opt;
region!: Ref<SchoolHolidayRegions>;
region_id!: number;
@@ -1,9 +1,10 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { SchoolHolidayRegionsRepository } from '../repositories/SchoolHolidayRegions.repository';
import { SchoolHolidayCountries } from './SchoolHolidayCountries.entity';
import { SchoolHolidayPeriods } from './SchoolHolidayPeriods.entity';
export class SchoolHolidayRegions {
[EntityRepositoryType]?: SchoolHolidayRegionsRepository;
id!: number & Opt;
country!: string;
name!: string;
+2 -1
View File
@@ -1,8 +1,9 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { SettingsRepository } from '../repositories/Settings.repository';
import { Users } from './Users.entity';
export class Settings {
[EntityRepositoryType]?: SettingsRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
+2 -1
View File
@@ -1,10 +1,11 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { ShareTokensRepository } from '../repositories/ShareTokens.repository';
import { DbTimestampType } from '../types';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class ShareTokens {
[EntityRepositoryType]?: ShareTokensRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;
+2 -1
View File
@@ -1,4 +1,4 @@
import { Collection, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { Collection, EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { TagsRepository } from '../repositories/Tags.repository';
import { DbTimestampType } from '../types';
import { CollectionPlaces } from './CollectionPlaces.entity';
@@ -6,6 +6,7 @@ import { Places } from './Places.entity';
import { Users } from './Users.entity';
export class Tags {
[EntityRepositoryType]?: TagsRepository;
id!: number & Opt;
user!: Ref<Users>;
user_id!: number;
@@ -1,9 +1,10 @@
import { type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { EntityRepositoryType, type Opt, type Ref, defineEntity, p } from '@mikro-orm/core';
import { TodoCategoryAssigneesRepository } from '../repositories/TodoCategoryAssignees.repository';
import { Trips } from './Trips.entity';
import { Users } from './Users.entity';
export class TodoCategoryAssignees {
[EntityRepositoryType]?: TodoCategoryAssigneesRepository;
id!: number & Opt;
trip!: Ref<Trips>;
trip_id!: number;

Some files were not shown because too many files have changed in this diff Show More