import {defineStore} from 'pinia' import {createClient} from '@supabase/supabase-js' const supabase = createClient('https://uwppvcxflrcsibuzsbil.supabase.co','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDA5MzgxOTQsImV4cCI6MjAxNjUxNDE5NH0.CkxYSQH0uLfwx9GVUlO6AYMU2FMLAxGMrwEKvyPv7Oo') // @ts-ignore export const useDataStore = defineStore('data', { state: () => ({ loaded: false, customers: [] as any[], tasks: [] as any[], projects: [] as any[], documents: [] as any[], spaces: [] as any[], units: [] as any[], times: [] as any[], products: [] as any[], movements: [] as any[], forms: [] as any[], formSubmits: [] as any[], contact: [] as any[] }), actions: { async fetchData() { await this.fetchCustomers() await this.fetchTasks() await this.fetchForms() await this.fetchFormSubmits() await this.fetchProducts() await this.fetchUnits() await this.fetchProjects() await this.fetchDocuments() await this.fetchMovements() await this.fetchSpaces() this.loaded = true }, async fetchCustomers() { // @ts-ignore this.customers = (await supabase.from("customers").select().order('customerNumber', {ascending: true})).data }, async fetchTasks() { // @ts-ignore this.tasks = (await supabase.from("tasks").select()).data }, async fetchForms() { // @ts-ignore this.forms = (await supabase.from("forms").select()).data }, async fetchFormSubmits() { // @ts-ignore this.formSubmits = (await supabase.from("formSubmits").select()).data }, async fetchProducts() { // @ts-ignore this.products = (await supabase.from("products").select()).data }, async fetchUnits() { // @ts-ignore this.units = (await supabase.from("units").select()).data }, async fetchProjects() { // @ts-ignore this.projects = (await supabase.from("projects").select()).data }, async fetchSpaces() { // @ts-ignore this.spaces = (await supabase.from("spaces").select().order('spaceNumber', {ascending: true})).data }, async fetchMovements() { // @ts-ignore this.movements = (await supabase.from("movements").select()).data }, async fetchDocuments() { // @ts-ignore this.documents = (await supabase.from("documents").select()).data for(const [index,doc] of this.documents.entries()){ // @ts-ignore this.documents[index].url = (await supabase.storage.from('documents').createSignedUrl(doc.path, 60 * 60)).data.signedUrl } } }, getters: { getOpenTasksCount: (state) => state.tasks.filter(task => task.categorie != "Erledigt").length, movementsBySpace: (state) => (spaceId:number) => state.movements.filter(move => move.spaceId === spaceId), getProductById: (state) => (productId:number) => state.products.find(product => product.id === productId), getProjectById: (state) => (projectId:number) => state.projects.find(project => project.id === projectId), getFormSubmitsWithLabelProp: (state) => (state.formSubmits.map(submit => {return{...submit, label: submit.id}})) } })