scan_qr_payload_store.tsx 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { create } from 'zustand';
  2. interface ChargingStore {
  3. stationID: string;
  4. connector: string;
  5. scanned_qr_code: string;
  6. user: string;
  7. book_time: Date;
  8. end_time: Date;
  9. total_power: any;
  10. total_fee: any;
  11. current_price_store: number | null | undefined;
  12. promotion_code: string[];
  13. car: string;
  14. type: string;
  15. is_ic_call: boolean;
  16. coupon_detail: any;
  17. sum_of_coupon: string | number;
  18. processed_coupon_store: Array<{
  19. coupon_detail: {
  20. amount: number;
  21. expire_date: string;
  22. };
  23. frequency: number;
  24. }>;
  25. setProcessedCouponStore: (
  26. coupons: Array<{
  27. coupon_detail: {
  28. amount: number;
  29. expire_date: string;
  30. };
  31. frequency: number;
  32. }>
  33. ) => void;
  34. setScannedQrCode: (qrCode: string) => void;
  35. setSumOfCoupon: (sum: string | number) => void;
  36. setStationId: (id: string) => void;
  37. setConnector: (connector: string) => void;
  38. setUser: (user: string) => void;
  39. setBookTime: (time: Date) => void;
  40. setEndTime: (time: Date) => void;
  41. setCurrentPriceStore: (price: number | null | undefined) => void;
  42. setTotalPower: (power: any) => void;
  43. setTotalFee: (fee: any) => void;
  44. setPromotionCode: (code: string[]) => void;
  45. setCar: (car: string) => void;
  46. setType: (type: string) => void;
  47. setIsIcCall: (isIcCall: boolean) => void;
  48. setCouponDetail: (detail: any) => void;
  49. }
  50. export const useChargingStore = create<ChargingStore>((set) => ({
  51. stationID: '',
  52. connector: '',
  53. processed_coupon_store: [],
  54. user: '',
  55. book_time: new Date(),
  56. end_time: new Date(),
  57. current_price_store: null,
  58. total_power: null,
  59. total_fee: null,
  60. promotion_code: [],
  61. coupon_detail: [],
  62. scanned_qr_code: '',
  63. car: '',
  64. type: '',
  65. is_ic_call: false,
  66. sum_of_coupon: 0,
  67. setProcessedCouponStore: (coupons) => set({ processed_coupon_store: coupons }),
  68. setSumOfCoupon: (sum: string | number) => set({ sum_of_coupon: sum }),
  69. setStationId: (id) => set({ stationID: id }),
  70. setConnector: (connector) => set({ connector }),
  71. setUser: (user) => set({ user }),
  72. setCurrentPriceStore: (price) => set({ current_price_store: price }),
  73. setBookTime: (time) => set({ book_time: time }),
  74. setEndTime: (time) => set({ end_time: time }),
  75. setTotalPower: (power) => set({ total_power: power }),
  76. setTotalFee: (fee) => set({ total_fee: fee }),
  77. setPromotionCode: (code) => set({ promotion_code: code }),
  78. setCar: (car) => set({ car }),
  79. setType: (type) => set({ type }),
  80. setIsIcCall: (isIcCall) => set({ is_ic_call: isIcCall }),
  81. setCouponDetail: (detail) => set({ coupon_detail: detail }),
  82. setScannedQrCode: (qrCode) => set({ scanned_qr_code: qrCode })
  83. }));