81 lines
1.4 KiB
TypeScript
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;
|
|
}
|