refactor(db): every entity in the snake_case shape; document-sync entities added; one repository per entity

This commit is contained in:
jubnl
2026-09-22 11:01:36 +02:00
parent 7534c2f903
commit 60d6e1fcd1
249 changed files with 3326 additions and 2114 deletions
@@ -1,27 +1,31 @@
import { type Opt, type Ref, defineEntity, p, EntityRepository } from '@mikro-orm/core';
import { 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 {
id?: number | null;
id!: number & Opt;
collection!: Ref<Collections>;
collection_id!: number;
user!: Ref<Users>;
user_id!: number;
status: string & Opt = 'pending';
role: string & Opt = 'editor';
createdAt?: Date | null;
created_at?: string | null;
}
export class CollectionMembersRepository extends EntityRepository<CollectionMembers> {}
export const CollectionMembersSchema = defineEntity({
class: CollectionMembers,
repository: () => CollectionMembersRepository,
properties: {
id: p.integer().primary().autoincrement(),
collection: () => p.manyToOne(Collections).ref().deleteRule('cascade'),
user: () => p.manyToOne(Users).ref().deleteRule('cascade').index('idx_collection_members_user'),
status: p.text(),
role: p.text(),
createdAt: p.datetime().nullable().onCreate(() => new Date()),
id: p.integer().primary(),
collection: () => p.manyToOne(Collections).ref().deleteRule('cascade').hidden(),
collection_id: p.integer().persist(false),
user: () => p.manyToOne(Users).ref().deleteRule('cascade').hidden().index('idx_collection_members_user'),
user_id: p.integer().persist(false).index('idx_collection_members_user'),
status: p.text().default('pending'),
role: p.text().default('editor'),
created_at: p.type(DbTimestampType).nullable().defaultRaw(`CURRENT_TIMESTAMP`),
},
});