| 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 pixPaymentsByServicePackageId = ref({});
- const getValidPixPaymentForServicePackage = (servicePackageId) => {
- const payment = pixPaymentsByServicePackageId.value[servicePackageId] ?? null;
- if (!payment) return null;
- if (!isFutureDate(getPixExpiresAt(payment))) {
- clearPixPaymentForServicePackage(servicePackageId);
- return null;
- }
- return payment;
- };
- const setPixPaymentForServicePackage = (servicePackageId, payment) => {
- if (!servicePackageId || !payment) return;
- pixPaymentsByServicePackageId.value = {
- ...pixPaymentsByServicePackageId.value,
- [servicePackageId]: payment,
- };
- };
- const clearPixPaymentForServicePackage = (servicePackageId) => {
- if (!servicePackageId || !pixPaymentsByServicePackageId.value[servicePackageId]) return;
- const payments = { ...pixPaymentsByServicePackageId.value };
- delete payments[servicePackageId];
- pixPaymentsByServicePackageId.value = payments;
- };
- return {
- pixPaymentsByServicePackageId,
- getValidPixPaymentForServicePackage,
- setPixPaymentForServicePackage,
- clearPixPaymentForServicePackage,
- };
- });
|