Cleanup linting messages. Also, break some things
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import { Models } from 'appwrite';
|
||||
import { defineStore } from 'pinia';
|
||||
import { AppwriteIds, databases } from 'src/boot/appwrite';
|
||||
import { computed, ref } from 'vue';
|
||||
|
||||
// const boatSource = null;
|
||||
|
||||
export interface Boat {
|
||||
export interface Boat extends Models.Document {
|
||||
$id: string;
|
||||
name: string;
|
||||
displayName?: string;
|
||||
@@ -21,81 +24,27 @@ export interface Boat {
|
||||
}[];
|
||||
}
|
||||
|
||||
const getSampleData = () => [
|
||||
{
|
||||
$id: '1',
|
||||
name: 'ProjectX',
|
||||
displayName: 'PX',
|
||||
class: 'J/27',
|
||||
year: 1981,
|
||||
imgSrc: '/tmpimg/j27.png',
|
||||
iconSrc: '/tmpimg/projectx_avatar256.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
defects: [
|
||||
{
|
||||
type: 'engine',
|
||||
severity: 'moderate',
|
||||
description: 'Fuel line leaks at engine fitting.',
|
||||
detail: `The gasket in the end of the fuel hose is damaged, and does not properly seal.
|
||||
This will cause fuel to leak, and will allow air into the fuel chamber, causing a lean mixture,
|
||||
and rough engine performance.`,
|
||||
},
|
||||
{
|
||||
type: 'rigging',
|
||||
severity: 'moderate',
|
||||
description: 'Tiller extension is broken.',
|
||||
detail:
|
||||
'The tiller extension swivel is broken, and will not attach to the tiller.',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
$id: '2',
|
||||
name: 'Take5',
|
||||
displayName: 'T5',
|
||||
class: 'J/27',
|
||||
year: 1985,
|
||||
imgSrc: '/tmpimg/j27.png',
|
||||
iconsrc: '/tmpimg/take5_avatar32.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
},
|
||||
{
|
||||
$id: '3',
|
||||
name: 'WeeBeestie',
|
||||
displayName: 'WB',
|
||||
class: 'Capri 25',
|
||||
year: 1989,
|
||||
imgSrc: '/tmpimg/capri25.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 6,
|
||||
requiredCerts: [],
|
||||
},
|
||||
{
|
||||
$id: '4',
|
||||
name: 'Just My Imagination',
|
||||
displayName: 'JMI',
|
||||
class: 'Sirius 28',
|
||||
year: 1989,
|
||||
imgSrc: '/tmpimg/JMI.jpg',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
},
|
||||
];
|
||||
export const useBoatStore = defineStore('boat', () => {
|
||||
const boatData = ref<Boat[]>([]);
|
||||
|
||||
export const useBoatStore = defineStore('boat', {
|
||||
state: () => ({
|
||||
boats: getSampleData(),
|
||||
}),
|
||||
async function fetchBoats() {
|
||||
try {
|
||||
const response = await databases.listDocuments(
|
||||
AppwriteIds.databaseId,
|
||||
AppwriteIds.collection.boat
|
||||
);
|
||||
boatData.value = response.documents as Boat[];
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch boats', error);
|
||||
}
|
||||
}
|
||||
|
||||
getters: {},
|
||||
const boats = computed(() => {
|
||||
if (!boatData.value) {
|
||||
fetchBoats();
|
||||
}
|
||||
return boatData;
|
||||
});
|
||||
|
||||
actions: {
|
||||
// update () {
|
||||
// }
|
||||
},
|
||||
return { boats, fetchBoats };
|
||||
});
|
||||
|
||||
65
src/stores/sampledata/boat.ts
Normal file
65
src/stores/sampledata/boat.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
export const getSampleData = () => [
|
||||
{
|
||||
$id: '1',
|
||||
name: 'ProjectX',
|
||||
displayName: 'PX',
|
||||
class: 'J/27',
|
||||
year: 1981,
|
||||
imgSrc: '/tmpimg/j27.png',
|
||||
iconSrc: '/tmpimg/projectx_avatar256.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
defects: [
|
||||
{
|
||||
type: 'engine',
|
||||
severity: 'moderate',
|
||||
description: 'Fuel line leaks at engine fitting.',
|
||||
detail: `The gasket in the end of the fuel hose is damaged, and does not properly seal.
|
||||
This will cause fuel to leak, and will allow air into the fuel chamber, causing a lean mixture,
|
||||
and rough engine performance.`,
|
||||
},
|
||||
{
|
||||
type: 'rigging',
|
||||
severity: 'moderate',
|
||||
description: 'Tiller extension is broken.',
|
||||
detail:
|
||||
'The tiller extension swivel is broken, and will not attach to the tiller.',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
$id: '2',
|
||||
name: 'Take5',
|
||||
displayName: 'T5',
|
||||
class: 'J/27',
|
||||
year: 1985,
|
||||
imgSrc: '/tmpimg/j27.png',
|
||||
iconsrc: '/tmpimg/take5_avatar32.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
},
|
||||
{
|
||||
$id: '3',
|
||||
name: 'WeeBeestie',
|
||||
displayName: 'WB',
|
||||
class: 'Capri 25',
|
||||
year: 1989,
|
||||
imgSrc: '/tmpimg/capri25.png',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 6,
|
||||
requiredCerts: [],
|
||||
},
|
||||
{
|
||||
$id: '4',
|
||||
name: 'Just My Imagination',
|
||||
displayName: 'JMI',
|
||||
class: 'Sirius 28',
|
||||
year: 1989,
|
||||
imgSrc: '/tmpimg/JMI.jpg',
|
||||
bookingAvailable: true,
|
||||
maxPassengers: 8,
|
||||
requiredCerts: [],
|
||||
},
|
||||
];
|
||||
@@ -48,7 +48,7 @@ export function getSampleTimeBlocks(): Timeblock[] {
|
||||
.map((b): Timeblock[] => {
|
||||
return template.blocks.map((t): Timeblock => {
|
||||
return {
|
||||
id: 'id' + Math.random().toString(32).slice(2),
|
||||
$id: 'id' + Math.random().toString(32).slice(2),
|
||||
boatId: b.$id,
|
||||
start: addToDate(tsToday, { day: i }).date + ' ' + t[0],
|
||||
end: addToDate(tsToday, { day: i }).date + ' ' + t[1],
|
||||
|
||||
@@ -9,17 +9,18 @@ import {
|
||||
} from '@quasar/quasar-ui-qcalendar';
|
||||
|
||||
import { Reservation, Timeblock } from './schedule.types';
|
||||
import {
|
||||
getSampleReservations,
|
||||
getSampleTimeBlocks,
|
||||
} from './sampledata/schedule';
|
||||
import { AppwriteIds, databases } from 'src/boot/appwrite';
|
||||
|
||||
export const useScheduleStore = defineStore('schedule', () => {
|
||||
// TODO: Implement functions to dynamically pull this data.
|
||||
const reservations = ref<Reservation[]>(getSampleReservations());
|
||||
const timeblocks = ref<Timeblock[]>(getSampleTimeBlocks());
|
||||
const reservations = ref<Reservation[]>([]);
|
||||
const timeblocks = ref<Timeblock[]>([]);
|
||||
|
||||
const getTimeblocksForDate = (date: string): Timeblock[] => {
|
||||
// TODO: This needs to actually make sure we have the dates we need, stay in sync, etc.
|
||||
if (!timeblocks.value) {
|
||||
fetchTimeBlocks();
|
||||
}
|
||||
return timeblocks.value.filter((b) =>
|
||||
compareDate(parsed(b.start) as Timestamp, parsed(date) as Timestamp)
|
||||
);
|
||||
@@ -40,6 +41,17 @@ export const useScheduleStore = defineStore('schedule', () => {
|
||||
});
|
||||
};
|
||||
|
||||
async function fetchTimeBlocks() {
|
||||
try {
|
||||
const response = await databases.listDocuments(
|
||||
AppwriteIds.databaseId,
|
||||
AppwriteIds.collection.timeBlock
|
||||
);
|
||||
timeblocks.value = response.documents as Timeblock[];
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch timeblocks', error);
|
||||
}
|
||||
}
|
||||
// const getConflicts = (timeblock: Timeblock, boat: Boat) => {
|
||||
// const start = date.buildDate({
|
||||
// hour: timeblock.start.hour,
|
||||
@@ -55,6 +67,7 @@ export const useScheduleStore = defineStore('schedule', () => {
|
||||
// });
|
||||
// return scheduleStore.getConflictingReservations(boat, start, end);
|
||||
// };
|
||||
|
||||
const getConflictingReservations = (
|
||||
resource: Boat,
|
||||
start: Date,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { Models } from 'appwrite';
|
||||
import type { Boat } from './boat';
|
||||
|
||||
export type StatusTypes = 'tentative' | 'confirmed' | 'pending' | undefined;
|
||||
@@ -17,8 +18,7 @@ export interface Reservation {
|
||||
objects in here? */
|
||||
|
||||
export type timeTuple = [start: string, end: string];
|
||||
export interface Timeblock {
|
||||
id: string;
|
||||
export interface Timeblock extends Models.Document {
|
||||
boatId: string;
|
||||
start: string;
|
||||
end: string;
|
||||
|
||||
@@ -92,6 +92,7 @@ export const useTaskStore = defineStore('tasks', {
|
||||
docId
|
||||
);
|
||||
this.tasks = this.tasks.filter((task) => docId !== task.$id);
|
||||
console.log(response);
|
||||
} catch (error) {
|
||||
// Need some better error handling, here.
|
||||
console.error('Failed to delete task:', error);
|
||||
|
||||
Reference in New Issue
Block a user