FPSMS-frontend
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

54 linhas
1.2 KiB

  1. import { serverFetchJson } from "@/app/utils/fetchUtil";
  2. import { BASE_API_URL } from "@/config/api";
  3. import { cache } from "react";
  4. import "server-only";
  5. import { SaveQcCategoryInputs } from "./actions";
  6. export interface QcCategoryResult {
  7. id: number;
  8. code: string;
  9. name: string;
  10. description?: string;
  11. }
  12. export interface QcCategoryCombo {
  13. id: number;
  14. value: number;
  15. label: string;
  16. }
  17. export interface QcItemInfo {
  18. id: number;
  19. qcItemId: number;
  20. code: string;
  21. name?: string;
  22. order: number;
  23. description?: string;
  24. }
  25. export const preloadQcCategory = () => {
  26. fetchQcCategories();
  27. };
  28. export const fetchQcCategories = cache(async () => {
  29. return serverFetchJson<QcCategoryResult[]>(`${BASE_API_URL}/qcCategories`, {
  30. next: { tags: ["qcCategories"] },
  31. });
  32. });
  33. export const fetchQcCategoryDetails = cache(async (qcCategoryId: string) => {
  34. return serverFetchJson<SaveQcCategoryInputs>(
  35. `${BASE_API_URL}/qcCategories/details/${qcCategoryId}`,
  36. {
  37. next: { tags: [`qcCategoryDetails_${qcCategoryId}`] },
  38. },
  39. );
  40. });
  41. export const fetchQcCategoryCombo = cache(async () => {
  42. return serverFetchJson<QcCategoryCombo[]>(`${BASE_API_URL}/qcCategories/combo`, {
  43. next: { tags: ["qcCategoryCombo"] },
  44. });
  45. });