drizzle-kit generate against the now-prod-aligned schema produces a single baseline migration covering all 35 tables. VERIFIED: 0000_baseline_prod_2026_05_19.sql was compared column-for-column and type-for-type against the drizzle-kit pull introspection of tia_prod. Table sets identical, all columns and types match. The baseline is a faithful representation of production. This baseline will be marked as already-applied in prod's __drizzle_migrations table (done out-of-band, not in git), so the migrator runs nothing on the next deploy. It exists purely as the reference point for future schema diffs. Adds drizzle/README.md documenting the baseline reset and the migration workflow going forward.
430 lines
No EOL
17 KiB
SQL
430 lines
No EOL
17 KiB
SQL
CREATE TYPE "public"."child_sex" AS ENUM('male', 'female', 'other');--> statement-breakpoint
|
|
CREATE TYPE "public"."child_stage" AS ENUM('newborn', 'infant', 'solids_start', 'toddler_early', 'toddler_late', 'preschool');--> statement-breakpoint
|
|
CREATE TYPE "public"."member_role" AS ENUM('admin', 'caregiver', 'viewer');--> statement-breakpoint
|
|
CREATE TYPE "public"."diaper_type" AS ENUM('wet', 'dirty', 'both', 'dry');--> statement-breakpoint
|
|
CREATE TYPE "public"."feed_method" AS ENUM('bottle', 'breast_left', 'breast_right', 'breast_both', 'cup', 'spoon', 'finger', 'self');--> statement-breakpoint
|
|
CREATE TYPE "public"."feed_type" AS ENUM('breast_milk', 'formula', 'solid', 'water', 'other');--> statement-breakpoint
|
|
CREATE TYPE "public"."sleep_type" AS ENUM('nap', 'night');--> statement-breakpoint
|
|
CREATE TABLE "admin_sessions" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"admin_id" uuid NOT NULL,
|
|
"session_token" text NOT NULL,
|
|
"expires" timestamp with time zone NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
CONSTRAINT "admin_sessions_session_token_unique" UNIQUE("session_token")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "admins" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"username" varchar(50) NOT NULL,
|
|
"password_hash" varchar(255) NOT NULL,
|
|
"role" varchar(20) DEFAULT 'admin',
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"last_login" timestamp with time zone,
|
|
CONSTRAINT "admins_username_unique" UNIQUE("username"),
|
|
CONSTRAINT "admins_role_check" CHECK ((role)::text = ANY (ARRAY['super_admin','admin','support']))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "password_resets" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"user_id" uuid NOT NULL,
|
|
"token" text NOT NULL,
|
|
"expires_at" timestamp with time zone NOT NULL,
|
|
"used_at" timestamp with time zone,
|
|
CONSTRAINT "password_resets_token_unique" UNIQUE("token")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "member_profiles" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"user_id" uuid NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"slug" text NOT NULL,
|
|
"display_name" text NOT NULL,
|
|
"bio" text,
|
|
"avatar_url" text,
|
|
"is_public" boolean DEFAULT false NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT "member_profiles_user_id_unique" UNIQUE("user_id")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "product_clicks" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"product_id" uuid NOT NULL,
|
|
"clicked_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"referrer" text,
|
|
"ip_hash" text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "recommended_products" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"profile_id" uuid NOT NULL,
|
|
"title" text NOT NULL,
|
|
"description" text,
|
|
"url" text NOT NULL,
|
|
"image_url" text,
|
|
"category" text DEFAULT 'general' NOT NULL,
|
|
"display_order" integer DEFAULT 0 NOT NULL,
|
|
"is_active" boolean DEFAULT true NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "ai_usage" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid,
|
|
"user_id" uuid,
|
|
"intent" text,
|
|
"model_used" text,
|
|
"prompt_tokens" integer,
|
|
"completion_tokens" integer,
|
|
"total_tokens" integer,
|
|
"cost_estimate_paise" numeric(10, 4),
|
|
"duration_ms" integer,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "chat_messages" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"session_id" uuid NOT NULL,
|
|
"role" varchar(20) NOT NULL,
|
|
"content" text NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "chat_sessions" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"title" varchar(255) DEFAULT 'New conversation' NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "audit_log" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid,
|
|
"user_id" uuid,
|
|
"action" varchar(50) NOT NULL,
|
|
"resource_type" varchar(50),
|
|
"resource_id" uuid,
|
|
"ip_address" varchar(45),
|
|
"user_agent" text,
|
|
"metadata" jsonb DEFAULT '{}'::jsonb,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "log_corrections" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"dose_id" uuid NOT NULL,
|
|
"original_value" jsonb NOT NULL,
|
|
"corrected_value" jsonb NOT NULL,
|
|
"reason" text,
|
|
"corrected_by" uuid,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "accounts" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"user_id" uuid NOT NULL,
|
|
"type" text NOT NULL,
|
|
"provider" text NOT NULL,
|
|
"provider_account_id" text NOT NULL,
|
|
"refresh_token" text,
|
|
"access_token" text,
|
|
"expires_at" timestamp,
|
|
"token_type" text,
|
|
"scope" text,
|
|
"id_token" text,
|
|
"session_state" text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "sessions" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"session_token" text NOT NULL,
|
|
"user_id" uuid NOT NULL,
|
|
"expires" timestamp NOT NULL,
|
|
CONSTRAINT "sessions_session_token_unique" UNIQUE("session_token")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "users" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"name" text,
|
|
"email" text NOT NULL,
|
|
"email_verified" timestamp,
|
|
"image" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp DEFAULT now() NOT NULL,
|
|
"password_hash" varchar(255),
|
|
"password_updated_at" timestamp with time zone,
|
|
CONSTRAINT "users_email_unique" UNIQUE("email")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "verification_tokens" (
|
|
"identifier" text NOT NULL,
|
|
"token" text NOT NULL,
|
|
"expires" timestamp NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "children" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"name" text NOT NULL,
|
|
"birth_date" date NOT NULL,
|
|
"sex" "child_sex",
|
|
"stage" "child_stage" DEFAULT 'newborn' NOT NULL,
|
|
"image_url" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "families" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"name" text NOT NULL,
|
|
"tier" varchar(20) DEFAULT 'free',
|
|
"max_children" integer DEFAULT 1,
|
|
"max_members" integer DEFAULT 2,
|
|
"pediatrician_phone" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "family_invites" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"email" text NOT NULL,
|
|
"role" "member_role" DEFAULT 'viewer' NOT NULL,
|
|
"token" text NOT NULL,
|
|
"expires_at" timestamp NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
CONSTRAINT "family_invites_token_unique" UNIQUE("token")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "family_members" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"user_id" uuid NOT NULL,
|
|
"role" "member_role" DEFAULT 'caregiver' NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "attachments" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"log_entry_id" uuid,
|
|
"r2_key" text NOT NULL,
|
|
"r2_thumbnail_key" text,
|
|
"mime_type" text,
|
|
"size_bytes" integer,
|
|
"uploaded_by" uuid,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "memories" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"child_id" uuid,
|
|
"title" text,
|
|
"description" text,
|
|
"taken_at" timestamp with time zone,
|
|
"r2_key" text NOT NULL,
|
|
"r2_thumbnail_key" text,
|
|
"mime_type" text,
|
|
"size_bytes" integer,
|
|
"width" integer,
|
|
"height" integer,
|
|
"vision_caption" text,
|
|
"vision_tags" text[],
|
|
"vision_embedding" vector(1536),
|
|
"is_private" boolean DEFAULT false NOT NULL,
|
|
"processing_status" text DEFAULT 'uploading' NOT NULL,
|
|
"uploaded_by" uuid,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "diapers_logs" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"type" "diaper_type" NOT NULL,
|
|
"notes" text,
|
|
"logged_at" timestamp DEFAULT now() NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "feeds" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"type" "feed_type" NOT NULL,
|
|
"method" "feed_method",
|
|
"amount_ml" real,
|
|
"notes" text,
|
|
"logged_at" timestamp DEFAULT now() NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "growth" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"measured_at" timestamp NOT NULL,
|
|
"weight_kg" real,
|
|
"height_cm" real,
|
|
"head_circumference_cm" real,
|
|
"notes" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "medications" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"name" text NOT NULL,
|
|
"dosage" text,
|
|
"frequency" text,
|
|
"start_date" date NOT NULL,
|
|
"end_date" date,
|
|
"active" boolean DEFAULT true NOT NULL,
|
|
"notes" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "milestone_achievements" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"milestone_key" text NOT NULL,
|
|
"achieved_at" date NOT NULL,
|
|
"notes" text,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "sleeps" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"type" "sleep_type" NOT NULL,
|
|
"started_at" timestamp,
|
|
"ended_at" timestamp,
|
|
"duration_minutes" integer,
|
|
"notes" text,
|
|
"logged_at" timestamp DEFAULT now() NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "vaccinations" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"vaccine_name" text NOT NULL,
|
|
"scheduled_date" date NOT NULL,
|
|
"given_date" date,
|
|
"status" text DEFAULT 'pending' NOT NULL,
|
|
"provider" text,
|
|
"lot_number" text,
|
|
"notes" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "allergies" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"name" varchar(255) NOT NULL,
|
|
"severity" varchar(50) DEFAULT 'mild',
|
|
"notes" text,
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "doctor_visits" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"doctor_name" varchar(255) NOT NULL,
|
|
"reason" varchar(255),
|
|
"visit_date" date NOT NULL,
|
|
"notes" text,
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "illness_logs" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"name" varchar(255) NOT NULL,
|
|
"start_date" date NOT NULL,
|
|
"end_date" date,
|
|
"notes" text,
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "medication_doses" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"medicine_id" uuid NOT NULL,
|
|
"family_id" uuid NOT NULL,
|
|
"administered_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"administered_by" uuid,
|
|
"amount_given" text,
|
|
"notes" text,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "medicines" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"child_id" uuid NOT NULL,
|
|
"name" varchar(255) NOT NULL,
|
|
"dose" varchar(255),
|
|
"notes" text,
|
|
"reminder_time" varchar(10),
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "support_responses" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"ticket_id" uuid,
|
|
"admin_id" uuid,
|
|
"message" text NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now()
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "support_tickets" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"family_id" uuid,
|
|
"user_id" uuid,
|
|
"email" varchar(255) NOT NULL,
|
|
"subject" varchar(255) NOT NULL,
|
|
"description" text,
|
|
"status" varchar(20) DEFAULT 'open',
|
|
"priority" varchar(20) DEFAULT 'normal',
|
|
"created_at" timestamp with time zone DEFAULT now(),
|
|
"updated_at" timestamp with time zone DEFAULT now(),
|
|
CONSTRAINT "support_tickets_status_check" CHECK ((status)::text = ANY (ARRAY['open','in_progress','resolved','closed'])),
|
|
CONSTRAINT "support_tickets_priority_check" CHECK ((priority)::text = ANY (ARRAY['low','normal','high','urgent']))
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "diapers_logs" ADD CONSTRAINT "diapers_logs_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "feeds" ADD CONSTRAINT "feeds_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "growth" ADD CONSTRAINT "growth_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "medications" ADD CONSTRAINT "medications_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "sleeps" ADD CONSTRAINT "sleeps_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "vaccinations" ADD CONSTRAINT "vaccinations_child_id_children_id_fk" FOREIGN KEY ("child_id") REFERENCES "public"."children"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "member_profiles_slug_idx" ON "member_profiles" USING btree ("slug");--> statement-breakpoint
|
|
CREATE INDEX "product_clicks_product_idx" ON "product_clicks" USING btree ("product_id","clicked_at");--> statement-breakpoint
|
|
CREATE INDEX "recommended_products_profile_idx" ON "recommended_products" USING btree ("profile_id","display_order");--> statement-breakpoint
|
|
CREATE INDEX "ai_usage_created_idx" ON "ai_usage" USING btree ("created_at");--> statement-breakpoint
|
|
CREATE INDEX "ai_usage_family_idx" ON "ai_usage" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE INDEX "audit_family_idx" ON "audit_log" USING btree ("family_id","created_at");--> statement-breakpoint
|
|
CREATE INDEX "idx_audit_log_action" ON "audit_log" USING btree ("action");--> statement-breakpoint
|
|
CREATE INDEX "idx_audit_log_created" ON "audit_log" USING btree ("created_at");--> statement-breakpoint
|
|
CREATE INDEX "idx_audit_log_family" ON "audit_log" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE INDEX "idx_audit_log_user" ON "audit_log" USING btree ("user_id");--> statement-breakpoint
|
|
CREATE INDEX "log_corrections_dose_idx" ON "log_corrections" USING btree ("dose_id");--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "accounts_provider_idx" ON "accounts" USING btree ("provider","provider_account_id");--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "verification_tokens_idx" ON "verification_tokens" USING btree ("identifier","token");--> statement-breakpoint
|
|
CREATE INDEX "children_family_idx" ON "children" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "invite_token_idx" ON "family_invites" USING btree ("token");--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "family_members_family_id_user_id_key" ON "family_members" USING btree ("family_id","user_id");--> statement-breakpoint
|
|
CREATE INDEX "attachments_family_idx" ON "attachments" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE INDEX "memories_family_idx" ON "memories" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE INDEX "memories_child_idx" ON "memories" USING btree ("child_id");--> statement-breakpoint
|
|
CREATE INDEX "memories_embedding_idx" ON "memories" USING ivfflat ("vision_embedding" vector_cosine_ops) WITH (lists=100);--> statement-breakpoint
|
|
CREATE INDEX "milestone_child_idx" ON "milestone_achievements" USING btree ("child_id");--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "milestone_achievements_child_milestone_unique" ON "milestone_achievements" USING btree ("child_id","milestone_key");--> statement-breakpoint
|
|
CREATE INDEX "medication_doses_family_idx" ON "medication_doses" USING btree ("family_id");--> statement-breakpoint
|
|
CREATE INDEX "medication_doses_medicine_idx" ON "medication_doses" USING btree ("medicine_id"); |