-- Create asset_categories table CREATE TABLE "public"."asset_categories" ( "id" uuid NOT NULL DEFAULT gen_random_uuid(), "name" text NOT NULL, "icon" text, "color" text, "card_type" text, "featured" boolean NOT NULL DEFAULT false, "description" text, "created_at" timestamptz NOT NULL DEFAULT now(), "updated_at" timestamptz NOT NULL DEFAULT now(), "deleted_at" timestamptz, PRIMARY KEY ("id") ); CREATE INDEX "asset_categories_deleted_at_idx" ON "public"."asset_categories" ("deleted_at"); -- Create assets table (references profiles and asset_categories) CREATE TABLE "public"."assets" ( "id" uuid NOT NULL DEFAULT gen_random_uuid(), "profile_id" uuid NOT NULL, "status" integer NOT NULL DEFAULT 0, "asset_category_id" uuid NOT NULL, "title" text NOT NULL, "description" text, "link" text, "analytics" jsonb, "created_at" timestamptz NOT NULL DEFAULT now(), "updated_at" timestamptz NOT NULL DEFAULT now(), "deleted_at" timestamptz, PRIMARY KEY ("id"), CONSTRAINT "assets_profile_id_fk" FOREIGN KEY ("profile_id") REFERENCES "public"."profiles" ("id") ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT "assets_asset_category_id_fk" FOREIGN KEY ("asset_category_id") REFERENCES "public"."asset_categories" ("id") ON UPDATE CASCADE ON DELETE CASCADE ); CREATE INDEX "assets_profile_id_idx" ON "public"."assets" ("profile_id"); CREATE INDEX "assets_category_id_idx" ON "public"."assets" ("asset_category_id"); CREATE INDEX "assets_deleted_at_idx" ON "public"."assets" ("deleted_at"); -- Create asset_artifacts table CREATE TABLE "public"."asset_artifacts" ( "id" uuid NOT NULL DEFAULT gen_random_uuid(), "asset_id" uuid NOT NULL, "type" text NOT NULL, "download_url" text, "price" integer NOT NULL DEFAULT 0, "title" text, "description" text, "created_at" timestamptz NOT NULL DEFAULT now(), "updated_at" timestamptz NOT NULL DEFAULT now(), "deleted_at" timestamptz, PRIMARY KEY ("id"), CONSTRAINT "asset_artifacts_asset_id_fk" FOREIGN KEY ("asset_id") REFERENCES "public"."assets" ("id") ON UPDATE CASCADE ON DELETE CASCADE ); CREATE INDEX "asset_artifacts_asset_id_idx" ON "public"."asset_artifacts" ("asset_id"); CREATE INDEX "asset_artifacts_deleted_at_idx" ON "public"."asset_artifacts" ("deleted_at");