1import { ODTicketPriority } from "@/types/doctypes";
2import { createListResource } from "frappe-ui";
3import { defineStore } from "pinia";
4
5/** Order priorities appear in dropdowns and lists: Low → Urgent. Custom
6 * priorities (absent here) fall to the end. */
7export const PRIORITY_DISPLAY_ORDER: Record<string, number> = {
8 Low: 0,
9 Medium: 1,
10 High: 2,
11 Urgent: 3,
12};
13
14export const useTicketPriorityStore = defineStore("ticketPriority", () => {
15 const priorities = createListResource({
16 doctype: "OD Ticket Priority",
17 cache: ["OD Ticket Priority", "list"],
18 fields: ["name", "level", "description", "disabled"],
19 pageLength: 1000,
20 auto: true,
21 });
22
23 function getLevel(name: string): string {
24 const priority = priorities.data?.find(
25 (p: ODTicketPriority) => p.name === name
26 );
27 return priority?.level ?? "Medium";
28 }
29
30 return { priorities, getLevel };
31});
32