fix: event deletion issues
This commit is contained in:
parent
9015e993a8
commit
d7fdd5d257
3 changed files with 178 additions and 7 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "meetup",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.3",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev --turbopack",
|
||||
|
|
170
prisma/migrations/20250701092705_v0_1_3/migration.sql
Normal file
170
prisma/migrations/20250701092705_v0_1_3/migration.sql
Normal file
|
@ -0,0 +1,170 @@
|
|||
-- 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;
|
|
@ -5,7 +5,6 @@ import { Button } from '@/components/ui/button';
|
|||
import Logo from '@/components/misc/logo';
|
||||
import TimePicker from '@/components/time-picker';
|
||||
import { Label } from '@/components/ui/label';
|
||||
import { useGetApiUserMe } from '@/generated/api/user/user';
|
||||
import {
|
||||
usePostApiEvent,
|
||||
useGetApiEventEventID,
|
||||
|
@ -57,8 +56,11 @@ const EventForm: React.FC<EventFormProps> = (props) => {
|
|||
isSuccess,
|
||||
error,
|
||||
} = usePostApiEvent();
|
||||
const { data, isLoading, error: fetchError } = useGetApiUserMe();
|
||||
const { data: eventData } = useGetApiEventEventID(props.eventId!, {
|
||||
const {
|
||||
data: eventData,
|
||||
isLoading,
|
||||
isError,
|
||||
} = useGetApiEventEventID(props.eventId!, {
|
||||
query: { enabled: props.type === 'edit' },
|
||||
});
|
||||
const patchEvent = usePatchApiEventEventID();
|
||||
|
@ -210,8 +212,7 @@ const EventForm: React.FC<EventFormProps> = (props) => {
|
|||
}, []);
|
||||
|
||||
if (props.type === 'edit' && isLoading) return <div>Loading...</div>;
|
||||
if (props.type === 'edit' && fetchError)
|
||||
return <div>Error loading event.</div>;
|
||||
if (props.type === 'edit' && isError) return <div>Error loading event.</div>;
|
||||
|
||||
return (
|
||||
<Dialog open={calendarOpen} onOpenChange={setCalendarOpen}>
|
||||
|
@ -298,7 +299,7 @@ const EventForm: React.FC<EventFormProps> = (props) => {
|
|||
<p className='text-[var(--color-neutral-300)]'>
|
||||
{!isClient || isLoading
|
||||
? 'Loading...'
|
||||
: data?.data.user?.name || 'Unknown User'}
|
||||
: eventData?.data.event.organizer.name || 'Unknown User'}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue