CREATE TABLE "crm_document_template_mappings" ( "id" text PRIMARY KEY NOT NULL, "organization_id" text NOT NULL, "template_version_id" text NOT NULL, "placeholder_key" text NOT NULL, "source_path" text NOT NULL, "data_type" text NOT NULL, "sheet_name" text, "default_value" text, "format_mask" text, "sort_order" integer DEFAULT 0 NOT NULL, "created_at" timestamp with time zone DEFAULT now() NOT NULL, "updated_at" timestamp with time zone DEFAULT now() NOT NULL, "deleted_at" timestamp with time zone ); --> statement-breakpoint CREATE TABLE "crm_document_template_table_columns" ( "id" text PRIMARY KEY NOT NULL, "organization_id" text NOT NULL, "mapping_id" text NOT NULL, "column_name" text NOT NULL, "source_field" text NOT NULL, "column_letter" text, "sort_order" integer DEFAULT 0 NOT NULL, "format_mask" text, "created_at" timestamp with time zone DEFAULT now() NOT NULL, "updated_at" timestamp with time zone DEFAULT now() NOT NULL, "deleted_at" timestamp with time zone ); --> statement-breakpoint CREATE TABLE "crm_document_template_versions" ( "id" text PRIMARY KEY NOT NULL, "organization_id" text NOT NULL, "template_id" text NOT NULL, "version" text NOT NULL, "file_path" text, "schema_json" jsonb NOT NULL, "preview_image_url" text, "is_active" boolean DEFAULT true NOT NULL, "created_at" timestamp with time zone DEFAULT now() NOT NULL, "updated_at" timestamp with time zone DEFAULT now() NOT NULL, "deleted_at" timestamp with time zone, "created_by" text NOT NULL ); --> statement-breakpoint CREATE TABLE "crm_document_templates" ( "id" text PRIMARY KEY NOT NULL, "organization_id" text NOT NULL, "document_type" text NOT NULL, "product_type" text NOT NULL, "file_type" text NOT NULL, "template_name" text NOT NULL, "description" text, "is_default" boolean DEFAULT false NOT NULL, "is_active" boolean DEFAULT true NOT NULL, "created_at" timestamp with time zone DEFAULT now() NOT NULL, "updated_at" timestamp with time zone DEFAULT now() NOT NULL, "deleted_at" timestamp with time zone, "created_by" text NOT NULL, "updated_by" text NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX "crm_document_template_mappings_version_placeholder_idx" ON "crm_document_template_mappings" USING btree ("template_version_id","placeholder_key");--> statement-breakpoint CREATE UNIQUE INDEX "crm_document_template_table_columns_mapping_name_idx" ON "crm_document_template_table_columns" USING btree ("mapping_id","column_name");--> statement-breakpoint CREATE UNIQUE INDEX "crm_document_template_versions_template_version_idx" ON "crm_document_template_versions" USING btree ("template_id","version");--> statement-breakpoint CREATE UNIQUE INDEX "crm_document_templates_org_doc_product_file_name_idx" ON "crm_document_templates" USING btree ("organization_id","document_type","product_type","file_type","template_name");