CREATE TABLE "invite_event_guests" (
	"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
	"tenant_id" uuid NOT NULL,
	"event_id" uuid NOT NULL,
	"territory_id" uuid NOT NULL,
	"invited_by" uuid NOT NULL,
	"guest_name" text NOT NULL,
	"guest_type" text,
	"invited_date" date NOT NULL,
	"attended" boolean,
	"wants_cme" boolean DEFAULT false NOT NULL,
	"wants_certificate" boolean DEFAULT false NOT NULL,
	"note" text,
	"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "invite_event_staff_quotas" (
	"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
	"tenant_id" uuid NOT NULL,
	"event_id" uuid NOT NULL,
	"territory_id" uuid NOT NULL,
	"user_id" uuid NOT NULL,
	"quota" integer DEFAULT 0 NOT NULL,
	"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "invite_event_territory_quotas" (
	"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
	"tenant_id" uuid NOT NULL,
	"event_id" uuid NOT NULL,
	"territory_id" uuid NOT NULL,
	"quota" integer DEFAULT 0 NOT NULL,
	"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "invite_events" (
	"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
	"tenant_id" uuid NOT NULL,
	"name" text NOT NULL,
	"event_date" date NOT NULL,
	"note" text,
	"created_by" uuid,
	"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "invite_event_guests" ADD CONSTRAINT "invite_event_guests_event_id_invite_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."invite_events"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "invite_event_staff_quotas" ADD CONSTRAINT "invite_event_staff_quotas_event_id_invite_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."invite_events"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "invite_event_territory_quotas" ADD CONSTRAINT "invite_event_territory_quotas_event_id_invite_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."invite_events"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "invite_event_guests_event_idx" ON "invite_event_guests" USING btree ("event_id");--> statement-breakpoint
CREATE INDEX "invite_event_guests_cme_cert_idx" ON "invite_event_guests" USING btree ("event_id","wants_cme","wants_certificate");--> statement-breakpoint
CREATE UNIQUE INDEX "invite_event_staff_quotas_uniq" ON "invite_event_staff_quotas" USING btree ("event_id","user_id");--> statement-breakpoint
CREATE UNIQUE INDEX "invite_event_territory_quotas_uniq" ON "invite_event_territory_quotas" USING btree ("event_id","territory_id");--> statement-breakpoint
CREATE INDEX "invite_events_tenant_date_idx" ON "invite_events" USING btree ("tenant_id","event_date");