dad0136365
Build and Push Multi-Platform Images / build-and-push (push) Successful in 41s
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>
89 lines
2.1 KiB
TypeScript
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;
|
|
}
|