| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { defineStore } from 'pinia';
- import { ref } from 'vue';
- const getPixExpiresAt = (payment) => payment?.pix?.expires_at ?? payment?.expires_at ?? null;
- const isFutureDate = (date) => {
- if (!date) return false;
- const time = new Date(date).getTime();
- return Number.isFinite(time) && time > Date.now();
- };
- export const usePaymentStore = defineStore('payment', () => {
- const pixPaymentsByScheduleId = ref({});
- const getValidPixPayment = (scheduleId) => {
- const payment = pixPaymentsByScheduleId.value[scheduleId] ?? null;
- if (!payment) return null;
- if (!isFutureDate(getPixExpiresAt(payment))) {
- clearPixPayment(scheduleId);
- return null;
- }
- return payment;
- };
- const setPixPayment = (scheduleId, payment) => {
- if (!scheduleId || !payment) return;
- pixPaymentsByScheduleId.value = {
- ...pixPaymentsByScheduleId.value,
- [scheduleId]: payment,
- };
- };
- const clearPixPayment = (scheduleId) => {
- if (!scheduleId || !pixPaymentsByScheduleId.value[scheduleId]) return;
- const payments = { ...pixPaymentsByScheduleId.value };
- delete payments[scheduleId];
- pixPaymentsByScheduleId.value = payments;
- };
- return {
- pixPaymentsByScheduleId,
- getValidPixPayment,
- setPixPayment,
- clearPixPayment,
- };
- });
|