Files
paperlessmanager/paperless-backend/src/database/entities/barcode-template.entity.ts
T
bjoernpoettker dad0136365
Build and Push Multi-Platform Images / build-and-push (push) Successful in 41s
chore: apply ESLint auto-fix across entire backend
Reformats code style (line breaks, indentation, type annotations)
without changing logic. Also includes minor feature additions bundled
in the same lint run (stats service, user-settings groups, agrarmonitor
polling improvements).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 09:02:02 +02:00

89 lines
2.1 KiB
TypeScript

import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from 'typeorm';
export type BarcodeActionType = 'SEND_TO_PAPERLESS' | 'SEND_BY_EMAIL';
export interface LabelInputField {
name: string;
label: string;
type: 'text' | 'number' | 'date';
}
export type LabelElement =
| {
type: 'text';
content: string;
x: number;
y: number;
fontSize: number;
bold?: boolean;
align?: 'left' | 'center' | 'right';
maxWidth?: number;
}
| { type: 'qr'; content: string; x: number; y: number; sizeMm: number }
| {
type: 'line';
x1: number;
y1: number;
x2: number;
y2: number;
lineWidth?: number;
};
@Entity('barcode_templates')
export class BarcodeTemplate {
@PrimaryGeneratedColumn()
Id!: number;
@Column({ type: 'varchar', length: 100 })
Name!: string;
@Column({ type: 'varchar', length: 500 })
Regex!: string;
@Column({ type: 'boolean', default: false })
SplitBefore!: boolean;
@Column({ type: 'varchar', length: 500, nullable: true })
DateinameTemplate!: string | null;
@Column({ type: 'json' })
Actions!: BarcodeActionType[];
// ── Label-Konfiguration ─────────────────────────────────────
@Column({ type: 'boolean', default: false })
LabelEnabled!: boolean;
@Column({ type: 'int', nullable: true })
LabelWidthMm!: number | null;
@Column({ type: 'int', nullable: true })
LabelHeightMm!: number | null;
@Column({ type: 'simple-json', nullable: true })
LabelInputFields!: LabelInputField[] | null;
@Column({ type: 'varchar', length: 1000, nullable: true })
LabelGetUrl!: string | null;
@Column({ type: 'varchar', length: 1000, nullable: true })
LabelPrintedUrl!: string | null;
@Column({ type: 'varchar', length: 1000, nullable: true })
LabelReleaseUrl!: string | null;
@Column({ type: 'simple-json', nullable: true })
LabelLayout!: LabelElement[] | null;
@CreateDateColumn()
CreatedAt!: Date;
@UpdateDateColumn()
UpdatedAt!: Date;
}