common-cents-api/src/expenses/entities/expense.entity.ts
2026-02-25 14:33:21 -06:00

50 lines
921 B
TypeScript

import {
Column,
CreateDateColumn,
Entity,
JoinTable,
ManyToMany,
ManyToOne,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
import { Tag } from '../../tags/entities/tag.entity';
import { Category } from '../../categories/entities/category.entity';
import { Merchant } from '../../merchants/entities/merchant.entity';
@Entity()
export class Expense {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
year: number;
@Column()
month: number;
@Column()
day: number;
@Column()
cents: number;
@ManyToOne(() => Category, { eager: true })
category: Category;
@Column({ nullable: true })
note: string;
@ManyToOne(() => Merchant, { nullable: true, eager: true })
merchant: Merchant;
@ManyToMany(() => Tag, { nullable: true, eager: true })
@JoinTable()
tags: Tag[];
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}