diff --git a/astro/package.json b/astro/package.json index deb62cf..dae4ec1 100644 --- a/astro/package.json +++ b/astro/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-slot": "^1.0.2", "@tanstack/react-query": "^5.28.14", + "@tanstack/react-query-devtools": "^5.29.0", "@types/leaflet": "^1.9.8", "@types/react": "^18.2.74", "@types/react-dom": "^18.2.23", @@ -27,6 +28,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "css-select": "5.1.0", + "human-id": "^4.1.1", "leaflet": "^1.9.4", "lucide-react": "^0.364.0", "react": "^18.2.0", diff --git a/astro/src/astroTypes.ts b/astro/src/astroTypes.ts index a178f58..d04419e 100644 --- a/astro/src/astroTypes.ts +++ b/astro/src/astroTypes.ts @@ -44,6 +44,7 @@ export interface Maker extends Node { stock: Product[]; createdAt: string; updatedAt: string; + admins: User[]; }; export interface Retailer extends Node { @@ -53,16 +54,17 @@ export interface Retailer extends Node { stock: Product[]; createdAt: string; updatedAt: string; + admins: User[]; }; const DISPATCH_STATUS = ['requested', 'accepted', 'archived'] as const; export type DispatchStatus = typeof DISPATCH_STATUS[number]; export interface Dispatch { - id: string; - dispatchesCode?: string; //Human readable id - createdAt: string; - updatedAt: string; + id?: string; + code?: string; //Human readable id + createdAt?: string; + updatedAt?: string; maker: Maker; retailer: Retailer; @@ -73,8 +75,19 @@ export interface Dispatch { timeSensitive: boolean; status: DispatchStatus; - departureDate: string; - arrivalDate: string; - weightAllowance: number; + departureDate?: string; + arrivalDate?: string; } +export interface CreateDispatch { + code?: string; //Human readable id + + maker: Maker | string; + retailer: Retailer | string; + products: Product[] | string[] ; + + courier?: User; + + timeSensitive: boolean; + status: DispatchStatus; +} diff --git a/astro/src/components/App.tsx b/astro/src/components/App.tsx index 16b4598..8b5f932 100644 --- a/astro/src/components/App.tsx +++ b/astro/src/components/App.tsx @@ -1,6 +1,8 @@ import { useQuery, useMutation, useQueryClient, queryOptions, QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import type { ReactNode } from "react"; -import { KiosMap } from "@/components/KiosMap" +import { KiosMap } from "@/components/KiosMap"; + export const queryClient = new QueryClient({ defaultOptions: { @@ -18,6 +20,7 @@ export const App: React.FC = (props) => { return (
+ {props.children} diff --git a/astro/src/components/KiosMap.tsx b/astro/src/components/KiosMap.tsx index ac4c33c..2963f6c 100644 --- a/astro/src/components/KiosMap.tsx +++ b/astro/src/components/KiosMap.tsx @@ -3,13 +3,15 @@ import { MapContainer, TileLayer, Marker, CircleMarker, Popup, Polyline, LayerGr import 'leaflet/dist/leaflet.css'; import L, { LatLngBounds } from 'leaflet'; import Contacts from './Contacts'; -import type { User, Node, Retailer, Maker, Product, Dispatch, DispatchStatus } from '../astroTypes'; +import type { User, Node, Retailer, Maker, Product, Dispatch, DispatchStatus, CreateDispatch } from '../astroTypes'; import { useQuery, useMutation, useQueryClient, queryOptions } from "@tanstack/react-query"; -import { useGetMakers, useGetDispatches, useGetRetailers, useGetUser, useGetMyself } from "../utils/hooks" +import { useGetMakers, useGetDispatches, useGetRetailers, useGetUser, useGetMyself, API_URL, useGetMyRetailers, useCreateDispatch } from "../utils/hooks" import { Button, buttonVariants } from './ui/Button'; +import { humanId, poolSize, minLength, maxLength } from 'human-id' + import { Dialog, DialogContent, @@ -21,7 +23,7 @@ import { import { LoginForm } from './LoginForm'; import { hasAuthCookie } from '@/utils/authUtils'; -//Payload longitude and latitude are mislabeled in payload (lol) +//Payload longitude and latitude are mislabeled/switched in payload const locationSwitcharoo = (location: number[]) => { if (location.length === 2) { const correctedLocation = [location[1], location[0]] @@ -59,13 +61,16 @@ interface NodeSelection { export const KiosMap = () => { - const [authToken, setAuthToken] = useState('') + const [authToken, setAuthToken] = useState('') const { data: makers, isLoading: isLoadingMakers } = useGetMakers(); const { data: retailers, isLoading: isLoadingRetailers } = useGetRetailers(); const { data: dispatches, isLoading: isLoadingDispatches } = useGetDispatches(); const { data: myself, isLoading: isLoadingMyself } = useGetMyself(authToken); + const { data: myRetailers, isLoading: isLoadingMyRetailers } = useGetMyRetailers(myself); + + const createDispatchMutation = useCreateDispatch(); const [selectedNode, setSelectedNode] = useState({ id: "", type: "none" }) @@ -88,7 +93,6 @@ export const KiosMap = () => { const handleSelectNode = (nodeId: string, typeParam: "maker" | "retailer" | "dispatch" | "none") => { setSelectedNode({ id: nodeId, type: typeParam }) - console.log("set id:", nodeId) } //params: dispatch: Dispatch, courier: User @@ -96,12 +100,24 @@ export const KiosMap = () => { } - const handleOpenCatalogue = () => { - } - - //params - const handleRequestProduct = () => { - + const handleRequestDispatch = (products: Product[], retailer: Retailer, maker: Maker | undefined) => { + if (maker === undefined) { + console.error("Request dispatch error: Marker undefined") + return + } + const dispatch: CreateDispatch = { + code: humanId({ + separator: '-', + capitalize: false, + }), + products: products.map((product) => {return product.id}), + maker: maker.id, + retailer: retailer.id, + timeSensitive: false, + status: "requested", + } + console.log(dispatch) + createDispatchMutation.mutate(dispatch) } const blackDotIcon = L.divIcon({ @@ -131,26 +147,22 @@ export const KiosMap = () => { width={120} src="/kios-logo.png" alt="" /> - - {(myself && myself.name) - ? -

Logged in as: {myself.name}

- :

Logged in

- } + { - (!hasAuthCookie() && !authToken) && + (!hasAuthCookie() && !authToken) ? Login + : myself &&

Logged in as: {myself?.name}

}
Login - + @@ -173,7 +185,7 @@ export const KiosMap = () => { phoneNumber={selectedMaker.phoneNumber} role={'maker'} /> - {(selectedMaker.stock !== undefined && selectedMaker.stock.length > 0) && + {(selectedMaker !== undefined && selectedMaker.stock !== undefined && selectedMaker.stock.length > 0) && {
    {selectedMaker.stock.map((product, i) => { return ( -
  • +
  • {product.picture.url && {

    Weight: {product.weight}

    } - + {myself ? + (myRetailers !== undefined) && +
      + {myRetailers.map((retailer, i) => { + return ( +
    • + +
    • + ) + })} +
    + : + }
  • ) @@ -240,7 +263,7 @@ export const KiosMap = () => { {selectedDispatch.products.map((product, i) => { return ( -
    +
    {product.picture.alt} { /> {selectedDispatch.courier !== undefined ? ( - { const url = `${API_URL}/api/makers` - console.log("Fetching url:", url) const response = await axios.get(url); const makers: Maker[] = response.data.docs; - console.log(`Fetch result from ${url}`, makers) return makers; } @@ -30,11 +29,9 @@ export const useGetMakers = () => { const getRetailers = async () => { const url = `${API_URL}/api/retailers` - console.log("Fetching url:", url) const response = await axios.get(url); const retailers: Retailer[] = response.data.docs; - console.log(`Fetch result from ${url}`, retailers) return retailers; } @@ -49,11 +46,9 @@ export const useGetRetailers = () => { const getUser = async (userId: string) => { const url = `${API_URL}/api/users/${userId}` - console.log("Fetching url:", url) const response = await axios.get(url); const user: User = response.data.docs; - console.log(`Fetch result from ${url}`, user) return user; } @@ -68,7 +63,6 @@ export const useGetUser = (userId: string) => { const getMyself = async (authToken: string) => { const url = `${API_URL}/api/users/me` - console.log("Fetching url:", url) const authHeaders = { "Content-Type": "application/json", @@ -81,8 +75,7 @@ const getMyself = async (authToken: string) => { headers: authHeaders }); - const user: User = response.data - console.log(`Fetch result from ${url}`, user) + const user: User = response.data.user return user; } @@ -97,12 +90,9 @@ export const useGetMyself = (authToken: string) => { const getDispatches = async () => { const url = `${API_URL}/api/dispatches` - console.log("Fetching url:", url) const response = await axios.get(url); const dispatches: Dispatch[] = response.data.docs; - - console.log(`Fetch result from ${url}`, dispatches) return dispatches; } @@ -113,4 +103,58 @@ export const useGetDispatches = () => { queryKey: ['dispatches'], enabled: true }) +} + +const createDispatch = async (dispatch: CreateDispatch) => { + const url = `${API_URL}/api/dispatches`; + return await axios.post(url, dispatch); +}; + +export const useCreateDispatch = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (dispatch: CreateDispatch) => createDispatch(dispatch), + onSuccess: () => { + void queryClient.invalidateQueries({ queryKey: ['dispatches'] }); + }, + mutationKey: ["createDispatch"] + }) +}; + +const getRetailersByAdminId = async (user: User | undefined) => { + if(user === undefined) { + console.error("getMyRetailers error: user undefined") + return [] + } + const adminId = user.id + const url = `${API_URL}/api/retailers` + const response = await axios.get(url); + + const retailers: Retailer[] = response.data.docs; + + let myRetailers: Retailer[] = [] + for (let retailer of retailers) { + console.log(retailer) + if(retailer.admins) { + for (let admin of retailer.admins) { + console.log(admin) + if(admin.id === adminId) { + myRetailers.push(retailer) + } + } + } + } + + console.log("myRetailers:", myRetailers) + return myRetailers; + +} + +export const useGetMyRetailers = (user: User | undefined) => { + return useQuery({ + queryFn: () => getRetailersByAdminId(user), + queryKey: ['myRetailers'], + enabled: (user !== undefined) + }) } \ No newline at end of file diff --git a/astro/yarn.lock b/astro/yarn.lock index 4ba7848..f49f5ba 100644 --- a/astro/yarn.lock +++ b/astro/yarn.lock @@ -814,80 +814,80 @@ resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-2.1.0.tgz#383acd31259d7c9ae8fb1b02d5e18fe613c2a13d" integrity sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg== -"@rollup/rollup-android-arm-eabi@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz#57936f50d0335e2e7bfac496d209606fa516add4" - integrity sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w== +"@rollup/rollup-android-arm-eabi@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz#ca0501dd836894216cb9572848c5dde4bfca3bec" + integrity sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA== -"@rollup/rollup-android-arm64@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz#81bba83b37382a2d0e30ceced06c8d3d85138054" - integrity sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q== +"@rollup/rollup-android-arm64@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz#154ca7e4f815d2e442ffc62ee7f64aee8b2547b0" + integrity sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ== -"@rollup/rollup-darwin-arm64@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz#a371bd723a5c4c4a33376da72abfc3938066842b" - integrity sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA== +"@rollup/rollup-darwin-arm64@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz#02b522ab6ccc2c504634651985ff8e657b42c055" + integrity sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q== -"@rollup/rollup-darwin-x64@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz#8baf2fda277c9729125017c65651296282412886" - integrity sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ== +"@rollup/rollup-darwin-x64@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz#217737f9f73de729fdfd7d529afebb6c8283f554" + integrity sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA== -"@rollup/rollup-linux-arm-gnueabihf@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz#822830a8f7388d5b81d04c69415408d3bab1079b" - integrity sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA== +"@rollup/rollup-linux-arm-gnueabihf@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz#a87e478ab3f697c7f4e74c8b1cac1e0667f8f4be" + integrity sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g== -"@rollup/rollup-linux-arm64-gnu@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz#e20fbe1bd4414c7119f9e0bba8ad17a6666c8365" - integrity sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A== +"@rollup/rollup-linux-arm64-gnu@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz#4da6830eca27e5f4ca15f9197e5660952ca185c6" + integrity sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w== -"@rollup/rollup-linux-arm64-musl@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz#13f475596a62e1924f13fe1c8cf2c40e09a99b47" - integrity sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA== +"@rollup/rollup-linux-arm64-musl@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz#0b0ed35720aebc8f5e501d370a9ea0f686ead1e0" + integrity sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw== -"@rollup/rollup-linux-powerpc64le-gnu@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz#6a431c441420d1c510a205e08c6673355a0a2ea9" - integrity sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA== +"@rollup/rollup-linux-powerpc64le-gnu@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz#024ad04d162726f25e62915851f7df69a9677c17" + integrity sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw== -"@rollup/rollup-linux-riscv64-gnu@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz#53d9448962c3f9ed7a1672269655476ea2d67567" - integrity sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw== +"@rollup/rollup-linux-riscv64-gnu@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz#180694d1cd069ddbe22022bb5b1bead3b7de581c" + integrity sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw== -"@rollup/rollup-linux-s390x-gnu@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz#95f0c133b324da3e7e5c7d12855e0eb71d21a946" - integrity sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA== +"@rollup/rollup-linux-s390x-gnu@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz#f7b4e2b0ca49be4e34f9ef0b548c926d94edee87" + integrity sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA== -"@rollup/rollup-linux-x64-gnu@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz#820ada75c68ead1acc486e41238ca0d8f8531478" - integrity sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg== +"@rollup/rollup-linux-x64-gnu@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz#0aaf79e5b9ccf7db3084fe6c3f2d2873a27d5af4" + integrity sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA== -"@rollup/rollup-linux-x64-musl@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz#ca74f22e125efbe94c1148d989ef93329b464443" - integrity sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg== +"@rollup/rollup-linux-x64-musl@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz#38f0a37ca5015eb07dff86a1b6f94279c179f4ed" + integrity sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g== -"@rollup/rollup-win32-arm64-msvc@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz#269023332297051d037a9593dcba92c10fef726b" - integrity sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ== +"@rollup/rollup-win32-arm64-msvc@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz#84d48c55740ede42c77373f76e85f368633a0cc3" + integrity sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA== -"@rollup/rollup-win32-ia32-msvc@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz#d7701438daf964011fd7ca33e3f13f3ff5129e7b" - integrity sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw== +"@rollup/rollup-win32-ia32-msvc@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz#c1e0bc39e20e760f0a526ddf14ae0543af796605" + integrity sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg== -"@rollup/rollup-win32-x64-msvc@4.14.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz#0bb7ac3cd1c3292db1f39afdabfd03ccea3a3d34" - integrity sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag== +"@rollup/rollup-win32-x64-msvc@4.14.1": + version "4.14.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz#299eee74b7d87e116083ac5b1ce8dd9434668294" + integrity sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew== "@shikijs/core@1.2.4": version "1.2.4" @@ -899,6 +899,18 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.29.0.tgz#d0b3d12c07d5a47f42ab0c1ed4f317106f3d4b20" integrity sha512-WgPTRs58hm9CMzEr5jpISe8HXa3qKQ8CxewdYZeVnA54JrPY9B1CZiwsCoLpLkf0dGRZq+LcX5OiJb0bEsOFww== +"@tanstack/query-devtools@5.28.10": + version "5.28.10" + resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.28.10.tgz#33e9a42dd2199fca12f0dd2d891570ecdbfd3c7b" + integrity sha512-5UN629fKa5/1K/2Pd26gaU7epxRrYiT1gy+V+pW5K6hnf1DeUKK3pANSb2eHKlecjIKIhTwyF7k9XdyE2gREvQ== + +"@tanstack/react-query-devtools@^5.29.0": + version "5.29.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.29.0.tgz#fde50304cc777c9bc8ad3f2f8afcd62412636984" + integrity sha512-WLuaU6yM4KdvBimEP1Km5lM4/p1J40cMp5I5z0Mc6a8QbBUYLK8qJcGIKelfLfDp7KmEcr59tzbRTmdH/GWvzQ== + dependencies: + "@tanstack/query-devtools" "5.28.10" + "@tanstack/react-query@^5.28.14": version "5.29.0" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.29.0.tgz#42b3a2de4ed1d63666f0af04392a34b5e70d49c0" @@ -2462,6 +2474,11 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +human-id@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/human-id/-/human-id-4.1.1.tgz#2801fbd61b9a5c1c9170f332802db6408a39a4b0" + integrity sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg== + human-signals@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" @@ -3626,9 +3643,9 @@ path-scurry@^1.10.2: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== picocolors@^1.0.0: version "1.0.0" @@ -4087,27 +4104,27 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rollup@^4.13.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.14.0.tgz#c3e2cd479f1b2358b65c1f810fa05b51603d7be8" - integrity sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ== + version "4.14.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.14.1.tgz#228d5159c3f4d8745bd24819d734bc6c6ca87c09" + integrity sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.14.0" - "@rollup/rollup-android-arm64" "4.14.0" - "@rollup/rollup-darwin-arm64" "4.14.0" - "@rollup/rollup-darwin-x64" "4.14.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.14.0" - "@rollup/rollup-linux-arm64-gnu" "4.14.0" - "@rollup/rollup-linux-arm64-musl" "4.14.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.14.0" - "@rollup/rollup-linux-riscv64-gnu" "4.14.0" - "@rollup/rollup-linux-s390x-gnu" "4.14.0" - "@rollup/rollup-linux-x64-gnu" "4.14.0" - "@rollup/rollup-linux-x64-musl" "4.14.0" - "@rollup/rollup-win32-arm64-msvc" "4.14.0" - "@rollup/rollup-win32-ia32-msvc" "4.14.0" - "@rollup/rollup-win32-x64-msvc" "4.14.0" + "@rollup/rollup-android-arm-eabi" "4.14.1" + "@rollup/rollup-android-arm64" "4.14.1" + "@rollup/rollup-darwin-arm64" "4.14.1" + "@rollup/rollup-darwin-x64" "4.14.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.14.1" + "@rollup/rollup-linux-arm64-gnu" "4.14.1" + "@rollup/rollup-linux-arm64-musl" "4.14.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.14.1" + "@rollup/rollup-linux-riscv64-gnu" "4.14.1" + "@rollup/rollup-linux-s390x-gnu" "4.14.1" + "@rollup/rollup-linux-x64-gnu" "4.14.1" + "@rollup/rollup-linux-x64-musl" "4.14.1" + "@rollup/rollup-win32-arm64-msvc" "4.14.1" + "@rollup/rollup-win32-ia32-msvc" "4.14.1" + "@rollup/rollup-win32-x64-msvc" "4.14.1" fsevents "~2.3.2" run-parallel@^1.1.9: diff --git a/payload/src/collections/Dispatches.ts b/payload/src/collections/Dispatches.ts index 5cfd9be..cce4289 100644 --- a/payload/src/collections/Dispatches.ts +++ b/payload/src/collections/Dispatches.ts @@ -7,7 +7,9 @@ const Dispatches: CollectionConfig = { }, access: { read: () => true, + create: () => true }, + fields: [ { name: 'code', @@ -27,7 +29,7 @@ const Dispatches: CollectionConfig = { { name: 'courier', type: 'relationship', - relationTo: 'couriers', + relationTo: 'users', hasMany: false, required: false }, @@ -64,28 +66,24 @@ const Dispatches: CollectionConfig = { value: 'archived', }, ], - } + }, + { + name: 'departure', + type: 'date', + required: false, + }, + { + name: 'arrival', + type: 'date', + required: false, + }, + { + name: 'timeSensitive', + type: 'checkbox', + required: false, + defaultValue: false + }, ], }; -export default Dispatches; - -// type Dispatch = { -// id: string; -// dispatchesCode: string; //Human readable id -// createdAt: string; -// updatedAt: string; - -// maker: Maker; -// retailer: Retailer; -// products: Product[]; - -// courier: User; - -// timeSensitive: boolean; -// status: DispatchStatus[]; - -// departureDate: string; -// arrivalDate: string; -// weightAllowance: number; -// } +export default Dispatches; \ No newline at end of file diff --git a/payload/src/collections/Users.ts b/payload/src/collections/Users.ts index 9362bff..2b156d9 100644 --- a/payload/src/collections/Users.ts +++ b/payload/src/collections/Users.ts @@ -6,7 +6,7 @@ const Users: CollectionConfig = { useAsTitle: 'email', }, access: { - + read: () => true }, auth: { tokenExpiration: 7200, // How many seconds to keep the user logged in