fix relations

This commit is contained in:
Mateusz Gruszczyński
2026-04-06 16:01:37 +02:00
parent de3a1328de
commit d6e813cfda
7 changed files with 20 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Category } from './Category.js';
import { User } from './User.js';
import { decimalTransformer } from '../utils/decimal.js';
@@ -30,8 +31,8 @@ export class Budget {
updatedAt!: Date;
@ManyToOne(() => User, { onDelete: 'CASCADE' })
user!: User;
user!: Relation<User>;
@ManyToOne(() => Category, { eager: true, nullable: true, onDelete: 'SET NULL' })
category!: Category | null;
category!: Relation<Category> | null;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Expense } from './Expense.js';
import { User } from './User.js';
@@ -20,8 +21,8 @@ export class Category {
createdAt!: Date;
@ManyToOne(() => User, (user) => user.categories, { nullable: true, onDelete: 'CASCADE' })
user!: User | null;
user!: Relation<User> | null;
@OneToMany(() => Expense, (expense) => expense.category)
expenses!: Expense[];
expenses!: Relation<Expense[]>;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Category } from './Category.js';
import { Proof } from './Proof.js';
import { User } from './User.js';
@@ -61,11 +62,11 @@ export class Expense {
updatedAt!: Date;
@ManyToOne(() => User, (user) => user.expenses, { onDelete: 'CASCADE' })
user!: User;
user!: Relation<User>;
@ManyToOne(() => Category, (category) => category.expenses, { eager: true, onDelete: 'RESTRICT' })
category!: Category;
category!: Relation<Category>;
@OneToMany(() => Proof, (proof) => proof.expense, { eager: true, cascade: true })
proofs!: Proof[];
proofs!: Relation<Proof[]>;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { User } from './User.js';
@Entity('merchants')
@@ -25,5 +26,5 @@ export class Merchant {
updatedAt!: Date;
@ManyToOne(() => User, { onDelete: 'CASCADE' })
user!: User;
user!: Relation<User>;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Expense } from './Expense.js';
export type ProofType = 'RECEIPT' | 'INVOICE' | 'NOTE' | 'BANK_STATEMENT' | 'OTHER';
@@ -33,5 +34,5 @@ export class Proof {
createdAt!: Date;
@ManyToOne(() => Expense, (expense) => expense.proofs, { onDelete: 'CASCADE' })
expense!: Expense;
expense!: Relation<Expense>;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Category } from './Category.js';
import { User } from './User.js';
import { decimalTransformer } from '../utils/decimal.js';
@@ -71,8 +72,8 @@ export class RecurringExpense {
updatedAt!: Date;
@ManyToOne(() => User, { onDelete: 'CASCADE' })
user!: User;
user!: Relation<User>;
@ManyToOne(() => Category, { eager: true, onDelete: 'RESTRICT' })
category!: Category;
category!: Relation<Category>;
}

View File

@@ -1,4 +1,5 @@
import { Column, CreateDateColumn, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import type { Relation } from 'typeorm';
import { Category } from './Category.js';
import { Expense } from './Expense.js';
@@ -50,8 +51,8 @@ export class User {
createdAt!: Date;
@OneToMany(() => Category, (category) => category.user)
categories!: Category[];
categories!: Relation<Category[]>;
@OneToMany(() => Expense, (expense) => expense.user)
expenses!: Expense[];
expenses!: Relation<Expense[]>;
}