diff --git a/apps/db/migrations/52_indexes.up.sql b/apps/db/migrations/52_indexes.up.sql new file mode 100644 index 0000000..dc57351 --- /dev/null +++ b/apps/db/migrations/52_indexes.up.sql @@ -0,0 +1,13 @@ +ALTER TABLE IF EXISTS public.event_queue DROP COLUMN IF EXISTS status; + +CREATE INDEX IF NOT EXISTS event_queue_lock_idx + ON public.event_queue (lock_expires); + +CREATE UNIQUE INDEX IF NOT EXISTS event_queue_event_id_uq + ON public.event_queue (event_id); + +CREATE UNIQUE INDEX IF NOT EXISTS user_invites_token_idx + ON public.user_invites (token); + +CREATE INDEX IF NOT EXISTS emails_user_id_idx + ON public.emails (user_id); \ No newline at end of file diff --git a/apps/infoalloggi/src/schemas/public/EventQueue.ts b/apps/infoalloggi/src/schemas/public/EventQueue.ts index 17b6448..8c8c8a6 100644 --- a/apps/infoalloggi/src/schemas/public/EventQueue.ts +++ b/apps/infoalloggi/src/schemas/public/EventQueue.ts @@ -11,8 +11,6 @@ export default interface EventQueueTable { lock_expires: ColumnType; data: ColumnType; - - status: ColumnType; } export type EventQueue = Selectable; @@ -27,19 +25,16 @@ export const EventQueueSchema = z.object({ event_id: eventQueueEventId, lock_expires: z.date(), data: z.unknown().nullable(), - status: z.string(), }); export const NewEventQueueSchema = z.object({ event_id: eventQueueEventId.optional(), lock_expires: z.union([z.date(), z.string()]).pipe(z.coerce.date()), data: z.unknown().optional().nullable(), - status: z.string().optional(), }); export const EventQueueUpdateSchema = z.object({ event_id: eventQueueEventId.optional(), lock_expires: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional(), data: z.unknown().optional().nullable(), - status: z.string().optional(), }); \ No newline at end of file diff --git a/apps/infoalloggi/src/schemas/public/PublicSchema.ts b/apps/infoalloggi/src/schemas/public/PublicSchema.ts index f9ff662..c11ed33 100644 --- a/apps/infoalloggi/src/schemas/public/PublicSchema.ts +++ b/apps/infoalloggi/src/schemas/public/PublicSchema.ts @@ -5,6 +5,7 @@ import type { default as UsersTable } from './Users'; import type { default as ChatsEtichetteTable } from './ChatsEtichette'; import type { default as TestiEStringheTable } from './TestiEStringhe'; import type { default as UserEtichetteTable } from './UserEtichette'; +import type { default as TypingStatusTable } from './TypingStatus'; import type { default as AppuntiTable } from './Appunti'; import type { default as UsersStorageTable } from './UsersStorage'; import type { default as ServizioAnnunciTable } from './ServizioAnnunci'; @@ -45,6 +46,8 @@ export default interface PublicSchema { user_etichette: UserEtichetteTable; + typing_status: TypingStatusTable; + appunti: AppuntiTable; users_storage: UsersStorageTable; diff --git a/apps/infoalloggi/src/server/controllers/event_queue.controller.ts b/apps/infoalloggi/src/server/controllers/event_queue.controller.ts index c633c50..50b2382 100644 --- a/apps/infoalloggi/src/server/controllers/event_queue.controller.ts +++ b/apps/infoalloggi/src/server/controllers/event_queue.controller.ts @@ -155,7 +155,6 @@ const getEventsFromQueue = async () => { const events = await db .selectFrom("event_queue") .selectAll() - .where("status", "=", "pending") .where("event_queue.lock_expires", "<=", new Date()) .execute(); return events;