import { defineStore } from 'pinia' import axios from "axios"; import { Inertia } from '@inertiajs/inertia' export const useSessionStore = defineStore('SessionStore', { state: () => ({ loader: false, bulkLoader: false, selectedSessions: [], sessions: [], columns: [ { key: 'id', title: 'ایدی', style: '!font-medium !text-sm', width: 80, }, { key: 'ip', title: 'آی پی دستگاه', style: '!font-medium !text-sm', width: 120, }, { key: 'user_agent', title: 'نام دستگاه', style: '!font-medium !text-sm', width: 200, }, { key: 'last_activity', title: 'آخرین فعالیت', style: '!font-medium !text-xs', width: 140, }, { key: 'actions', title: 'عملیات', hasSort: false, slot: true, width: 80, }, ], endpoints: { index: '/admin/setting-profile/sessions', delete: (id) => `/admin/setting-profile/sessions/${id}`, bulkDelete: '/admin/setting-profile/sessions-bulk-delete', } }), getters: { indexPageTitle: () => { return 'نمایش نشست‌های فعال'; } }, actions: { setSessions(sessions) { this.sessions = sessions; }, deleteSession(sessionId) { this.loader = true; return new Promise((resolve, reject) => { axios.delete(this.endpoints.delete(sessionId)) .then(response => { Inertia.get(this.endpoints.index); resolve(response); }) .catch(error => { this.loader = false; reject(error); }); }); }, bulkDeleteSessions(ids) { return new Promise((resolve, reject) => { axios.post(this.endpoints.bulkDelete, { ids }) .then(response => { Inertia.get(this.endpoints.index); resolve(response); }) .catch(error => { reject(error); }); }); }, setSelectedSessions(sessions) { this.selectedSessions = sessions; }, clearSelectedSessions() { this.selectedSessions = []; } } })