Files
openpylon/src/types/board.ts

81 lines
1.4 KiB
TypeScript

export interface Board {
id: string;
title: string;
color: string;
createdAt: string;
updatedAt: string;
columns: Column[];
cards: Record<string, Card>;
labels: Label[];
settings: BoardSettings;
}
export interface Column {
id: string;
title: string;
cardIds: string[];
width: ColumnWidth;
color: string | null;
collapsed: boolean;
wipLimit: number | null;
}
export type ColumnWidth = "narrow" | "standard" | "wide";
export type Priority = "none" | "low" | "medium" | "high" | "urgent";
export interface Card {
id: string;
title: string;
description: string;
labels: string[];
checklist: ChecklistItem[];
dueDate: string | null;
attachments: Attachment[];
coverColor: string | null;
priority: Priority;
comments: Comment[];
createdAt: string;
updatedAt: string;
}
export interface Label {
id: string;
name: string;
color: string;
}
export interface ChecklistItem {
id: string;
text: string;
checked: boolean;
}
export interface Comment {
id: string;
text: string;
createdAt: string;
}
export interface Attachment {
id: string;
name: string;
path: string;
mode: "link" | "copy";
}
export interface BoardSettings {
attachmentMode: "link" | "copy";
background: "none" | "dots" | "grid" | "gradient";
}
export interface BoardMeta {
id: string;
title: string;
color: string;
cardCount: number;
columnCount: number;
createdAt: string;
updatedAt: string;
}