diff --git a/package.json b/package.json index 2950955..e5e8c9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meetup", - "version": "0.1.3", + "version": "0.1.0", "private": true, "scripts": { "dev": "next dev --turbopack", diff --git a/prisma/migrations/20250701092705_v0_1_3/migration.sql b/prisma/migrations/20250701092705_v0_1_3/migration.sql deleted file mode 100644 index b103c30..0000000 --- a/prisma/migrations/20250701092705_v0_1_3/migration.sql +++ /dev/null @@ -1,170 +0,0 @@ --- RedefineTables -PRAGMA defer_foreign_keys=ON; -PRAGMA foreign_keys=OFF; -CREATE TABLE "new_blocked_slots" ( - "id" TEXT NOT NULL PRIMARY KEY, - "user_id" TEXT NOT NULL, - "start_time" DATETIME NOT NULL, - "end_time" DATETIME NOT NULL, - "reason" TEXT, - "is_recurring" BOOLEAN NOT NULL DEFAULT false, - "rrule" TEXT, - "recurrence_end_date" DATETIME, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updated_at" DATETIME NOT NULL, - CONSTRAINT "blocked_slots_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_blocked_slots" ("created_at", "end_time", "id", "is_recurring", "reason", "recurrence_end_date", "rrule", "start_time", "updated_at", "user_id") SELECT "created_at", "end_time", "id", "is_recurring", "reason", "recurrence_end_date", "rrule", "start_time", "updated_at", "user_id" FROM "blocked_slots"; -DROP TABLE "blocked_slots"; -ALTER TABLE "new_blocked_slots" RENAME TO "blocked_slots"; -CREATE INDEX "blocked_slots_user_id_start_time_end_time_idx" ON "blocked_slots"("user_id", "start_time", "end_time"); -CREATE INDEX "blocked_slots_user_id_is_recurring_idx" ON "blocked_slots"("user_id", "is_recurring"); -CREATE TABLE "new_calendar_export_tokens" ( - "id" TEXT NOT NULL PRIMARY KEY, - "user_id" TEXT NOT NULL, - "token" TEXT NOT NULL, - "scope" TEXT NOT NULL DEFAULT 'MEETINGS_ONLY', - "is_active" BOOLEAN NOT NULL DEFAULT true, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "last_accessed_at" DATETIME, - CONSTRAINT "calendar_export_tokens_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_calendar_export_tokens" ("created_at", "id", "is_active", "last_accessed_at", "scope", "token", "user_id") SELECT "created_at", "id", "is_active", "last_accessed_at", "scope", "token", "user_id" FROM "calendar_export_tokens"; -DROP TABLE "calendar_export_tokens"; -ALTER TABLE "new_calendar_export_tokens" RENAME TO "calendar_export_tokens"; -CREATE UNIQUE INDEX "calendar_export_tokens_token_key" ON "calendar_export_tokens"("token"); -CREATE INDEX "calendar_export_tokens_user_id_idx" ON "calendar_export_tokens"("user_id"); -CREATE TABLE "new_calendar_subscriptions" ( - "id" TEXT NOT NULL PRIMARY KEY, - "user_id" TEXT NOT NULL, - "feed_url" TEXT NOT NULL, - "name" TEXT, - "color" TEXT, - "is_enabled" BOOLEAN NOT NULL DEFAULT true, - "last_synced_at" DATETIME, - "last_sync_error" TEXT, - "sync_frequency_minutes" INTEGER DEFAULT 60, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updated_at" DATETIME NOT NULL, - CONSTRAINT "calendar_subscriptions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_calendar_subscriptions" ("color", "created_at", "feed_url", "id", "is_enabled", "last_sync_error", "last_synced_at", "name", "sync_frequency_minutes", "updated_at", "user_id") SELECT "color", "created_at", "feed_url", "id", "is_enabled", "last_sync_error", "last_synced_at", "name", "sync_frequency_minutes", "updated_at", "user_id" FROM "calendar_subscriptions"; -DROP TABLE "calendar_subscriptions"; -ALTER TABLE "new_calendar_subscriptions" RENAME TO "calendar_subscriptions"; -CREATE INDEX "calendar_subscriptions_user_id_is_enabled_idx" ON "calendar_subscriptions"("user_id", "is_enabled"); -CREATE TABLE "new_email_queue" ( - "id" TEXT NOT NULL PRIMARY KEY, - "user_id" TEXT NOT NULL, - "subject" TEXT NOT NULL, - "body_html" TEXT NOT NULL, - "body_text" TEXT, - "status" TEXT NOT NULL DEFAULT 'PENDING', - "scheduled_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "attempts" INTEGER NOT NULL DEFAULT 0, - "last_attempt_at" DATETIME, - "sent_at" DATETIME, - "error_message" TEXT, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updated_at" DATETIME NOT NULL, - CONSTRAINT "email_queue_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_email_queue" ("attempts", "body_html", "body_text", "created_at", "error_message", "id", "last_attempt_at", "scheduled_at", "sent_at", "status", "subject", "updated_at", "user_id") SELECT "attempts", "body_html", "body_text", "created_at", "error_message", "id", "last_attempt_at", "scheduled_at", "sent_at", "status", "subject", "updated_at", "user_id" FROM "email_queue"; -DROP TABLE "email_queue"; -ALTER TABLE "new_email_queue" RENAME TO "email_queue"; -CREATE INDEX "idx_email_queue_pending_jobs" ON "email_queue"("status", "scheduled_at"); -CREATE INDEX "idx_email_queue_user_history" ON "email_queue"("user_id", "created_at"); -CREATE TABLE "new_external_events" ( - "id" TEXT NOT NULL PRIMARY KEY, - "subscription_id" TEXT NOT NULL, - "ical_uid" TEXT NOT NULL, - "summary" TEXT, - "description" TEXT, - "start_time" DATETIME NOT NULL, - "end_time" DATETIME NOT NULL, - "is_all_day" BOOLEAN NOT NULL DEFAULT false, - "location" TEXT, - "rrule" TEXT, - "dtstamp" DATETIME, - "sequence" INTEGER, - "show_as_free" BOOLEAN NOT NULL DEFAULT false, - "last_fetched_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "external_events_subscription_id_fkey" FOREIGN KEY ("subscription_id") REFERENCES "calendar_subscriptions" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_external_events" ("description", "dtstamp", "end_time", "ical_uid", "id", "is_all_day", "last_fetched_at", "location", "rrule", "sequence", "show_as_free", "start_time", "subscription_id", "summary") SELECT "description", "dtstamp", "end_time", "ical_uid", "id", "is_all_day", "last_fetched_at", "location", "rrule", "sequence", "show_as_free", "start_time", "subscription_id", "summary" FROM "external_events"; -DROP TABLE "external_events"; -ALTER TABLE "new_external_events" RENAME TO "external_events"; -CREATE INDEX "external_events_subscription_id_start_time_end_time_idx" ON "external_events"("subscription_id", "start_time", "end_time"); -CREATE INDEX "external_events_subscription_id_show_as_free_idx" ON "external_events"("subscription_id", "show_as_free"); -CREATE UNIQUE INDEX "external_events_subscription_id_ical_uid_key" ON "external_events"("subscription_id", "ical_uid"); -CREATE TABLE "new_friendships" ( - "user_id_1" TEXT NOT NULL, - "user_id_2" TEXT NOT NULL, - "status" TEXT NOT NULL DEFAULT 'PENDING', - "requested_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "accepted_at" DATETIME, - - PRIMARY KEY ("user_id_1", "user_id_2"), - CONSTRAINT "friendships_user_id_1_fkey" FOREIGN KEY ("user_id_1") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "friendships_user_id_2_fkey" FOREIGN KEY ("user_id_2") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_friendships" ("accepted_at", "requested_at", "status", "user_id_1", "user_id_2") SELECT "accepted_at", "requested_at", "status", "user_id_1", "user_id_2" FROM "friendships"; -DROP TABLE "friendships"; -ALTER TABLE "new_friendships" RENAME TO "friendships"; -CREATE INDEX "idx_friendships_user2_status" ON "friendships"("user_id_2", "status"); -CREATE TABLE "new_group_members" ( - "group_id" TEXT NOT NULL, - "user_id" TEXT NOT NULL, - "role" TEXT NOT NULL DEFAULT 'MEMBER', - "added_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - - PRIMARY KEY ("group_id", "user_id"), - CONSTRAINT "group_members_group_id_fkey" FOREIGN KEY ("group_id") REFERENCES "groups" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "group_members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_group_members" ("added_at", "group_id", "role", "user_id") SELECT "added_at", "group_id", "role", "user_id" FROM "group_members"; -DROP TABLE "group_members"; -ALTER TABLE "new_group_members" RENAME TO "group_members"; -CREATE INDEX "group_members_user_id_idx" ON "group_members"("user_id"); -CREATE TABLE "new_meeting_participants" ( - "meeting_id" TEXT NOT NULL, - "user_id" TEXT NOT NULL, - "status" TEXT NOT NULL DEFAULT 'PENDING', - "added_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - - PRIMARY KEY ("meeting_id", "user_id"), - CONSTRAINT "meeting_participants_meeting_id_fkey" FOREIGN KEY ("meeting_id") REFERENCES "meetings" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "meeting_participants_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_meeting_participants" ("added_at", "meeting_id", "status", "user_id") SELECT "added_at", "meeting_id", "status", "user_id" FROM "meeting_participants"; -DROP TABLE "meeting_participants"; -ALTER TABLE "new_meeting_participants" RENAME TO "meeting_participants"; -CREATE INDEX "idx_participants_user_status" ON "meeting_participants"("user_id", "status"); -CREATE TABLE "new_notifications" ( - "id" TEXT NOT NULL PRIMARY KEY, - "user_id" TEXT NOT NULL, - "type" TEXT NOT NULL, - "related_entity_type" TEXT, - "related_entity_id" TEXT, - "message" TEXT NOT NULL, - "is_read" BOOLEAN NOT NULL DEFAULT false, - "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT "notifications_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_notifications" ("created_at", "id", "is_read", "message", "related_entity_id", "related_entity_type", "type", "user_id") SELECT "created_at", "id", "is_read", "message", "related_entity_id", "related_entity_type", "type", "user_id" FROM "notifications"; -DROP TABLE "notifications"; -ALTER TABLE "new_notifications" RENAME TO "notifications"; -CREATE INDEX "idx_notifications_user_read_time" ON "notifications"("user_id", "is_read", "created_at"); -CREATE TABLE "new_user_notification_preferences" ( - "user_id" TEXT NOT NULL, - "notification_type" TEXT NOT NULL, - "email_enabled" BOOLEAN NOT NULL DEFAULT false, - "updated_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - - PRIMARY KEY ("user_id", "notification_type"), - CONSTRAINT "user_notification_preferences_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE -); -INSERT INTO "new_user_notification_preferences" ("email_enabled", "notification_type", "updated_at", "user_id") SELECT "email_enabled", "notification_type", "updated_at", "user_id" FROM "user_notification_preferences"; -DROP TABLE "user_notification_preferences"; -ALTER TABLE "new_user_notification_preferences" RENAME TO "user_notification_preferences"; -PRAGMA foreign_keys=ON; -PRAGMA defer_foreign_keys=OFF; diff --git a/src/app/(main)/events/[eventID]/page.tsx b/src/app/(main)/events/[eventID]/page.tsx index e095628..ce39d19 100644 --- a/src/app/(main)/events/[eventID]/page.tsx +++ b/src/app/(main)/events/[eventID]/page.tsx @@ -153,7 +153,7 @@ export default function ShowEvent() { {' '} -
+
{event.participants?.map((user) => ( = (props) => { isSuccess, error, } = usePostApiEvent(); - const { - data: eventData, - isLoading, - isError, - } = useGetApiEventEventID(props.eventId!, { + const { data, isLoading, error: fetchError } = useGetApiUserMe(); + const { data: eventData } = useGetApiEventEventID(props.eventId!, { query: { enabled: props.type === 'edit' }, }); const patchEvent = usePatchApiEventEventID(); @@ -213,7 +211,8 @@ const EventForm: React.FC = (props) => { }, []); if (props.type === 'edit' && isLoading) return
Loading...
; - if (props.type === 'edit' && isError) return
Error loading event.
; + if (props.type === 'edit' && fetchError) + return
Error loading event.
; return ( @@ -300,7 +299,7 @@ const EventForm: React.FC = (props) => {

{!isClient || isLoading ? 'Loading...' - : eventData?.data.event.organizer.name || 'Unknown User'} + : data?.data.user?.name || 'Unknown User'}

@@ -337,7 +336,7 @@ const EventForm: React.FC = (props) => { -
+
{selectedParticipants.map((user) => ( -
+
+
@@ -69,7 +69,7 @@ export default function TimePicker({
-
+