Files
lub-web-monorepo/apps/backend/src/invoices/invoices.entity.ts
T

65 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-03-26 16:10:45 +01:00
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn } from 'typeorm';
@Entity('invoices')
export class Invoice {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ unique: true })
invoiceNumber: string;
@Column({ type: 'date' })
date: string;
@Column({ type: 'date' })
dueDate: string;
@Column({ default: 'draft' })
status: 'draft' | 'sent' | 'paid' | 'overdue';
// Kunde
@Column()
customerName: string;
@Column({ nullable: true })
customerEmail: string;
@Column({ nullable: true })
customerAddress: string;
@Column({ nullable: true })
customerCity: string;
@Column({ nullable: true })
customerZip: string;
// Positionen als JSON
@Column({ type: 'json' })
items: {
id: string;
description: string;
quantity: number;
unit: string;
unitPrice: number;
}[];
@Column({ type: 'decimal', precision: 5, scale: 2, default: 19 })
taxRate: number;
@Column({ type: 'text', nullable: true })
notes: string;
// Berechnete Werte für einfache Queries
@Column({ type: 'decimal', precision: 10, scale: 2, default: 0 })
totalNet: number;
@Column({ type: 'decimal', precision: 10, scale: 2, default: 0 })
totalGross: number;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}