515 lines
No EOL
21 KiB
SQL
515 lines
No EOL
21 KiB
SQL
CREATE TABLE `address_areas` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`place_name` text NOT NULL,
|
|
`zone_id` integer,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`zone_id`) REFERENCES `address_zones`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `address_zones` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`zone_name` text NOT NULL,
|
|
`added_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `addresses` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`name` text NOT NULL,
|
|
`phone` text NOT NULL,
|
|
`address_line1` text NOT NULL,
|
|
`address_line2` text,
|
|
`city` text NOT NULL,
|
|
`state` text NOT NULL,
|
|
`pincode` text NOT NULL,
|
|
`is_default` integer DEFAULT false NOT NULL,
|
|
`latitude` real,
|
|
`longitude` real,
|
|
`google_maps_url` text,
|
|
`admin_latitude` real,
|
|
`admin_longitude` real,
|
|
`zone_id` integer,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`zone_id`) REFERENCES `address_zones`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `cart_items` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
`quantity` text NOT NULL,
|
|
`added_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_user_product` ON `cart_items` (`user_id`,`product_id`);--> statement-breakpoint
|
|
CREATE TABLE `complaints` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`order_id` integer,
|
|
`complaint_body` text NOT NULL,
|
|
`images` text,
|
|
`response` text,
|
|
`is_resolved` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `coupon_applicable_products` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`coupon_id` integer NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
FOREIGN KEY (`coupon_id`) REFERENCES `coupons`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_coupon_product` ON `coupon_applicable_products` (`coupon_id`,`product_id`);--> statement-breakpoint
|
|
CREATE TABLE `coupon_applicable_users` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`coupon_id` integer NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
FOREIGN KEY (`coupon_id`) REFERENCES `coupons`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_coupon_user` ON `coupon_applicable_users` (`coupon_id`,`user_id`);--> statement-breakpoint
|
|
CREATE TABLE `coupon_usage` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`coupon_id` integer NOT NULL,
|
|
`order_id` integer,
|
|
`order_item_id` integer,
|
|
`used_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`coupon_id`) REFERENCES `coupons`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`order_item_id`) REFERENCES `order_items`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `coupons` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`coupon_code` text NOT NULL,
|
|
`is_user_based` integer DEFAULT false NOT NULL,
|
|
`discount_percent` text,
|
|
`flat_discount` text,
|
|
`min_order` text,
|
|
`product_ids` text,
|
|
`created_by` integer,
|
|
`max_value` text,
|
|
`is_apply_for_all` integer DEFAULT false NOT NULL,
|
|
`valid_till` integer,
|
|
`max_limit_for_user` integer,
|
|
`is_invalidated` integer DEFAULT false NOT NULL,
|
|
`exclusive_apply` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`created_by`) REFERENCES `staff_users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_coupon_code` ON `coupons` (`coupon_code`);--> statement-breakpoint
|
|
CREATE TABLE `delivery_slot_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`delivery_time` integer NOT NULL,
|
|
`freeze_time` integer NOT NULL,
|
|
`is_active` integer DEFAULT true NOT NULL,
|
|
`is_flash` integer DEFAULT false NOT NULL,
|
|
`is_capacity_full` integer DEFAULT false NOT NULL,
|
|
`delivery_sequence` text DEFAULT '{}',
|
|
`group_ids` text DEFAULT '[]'
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `home_banners` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`image_url` text NOT NULL,
|
|
`description` text,
|
|
`product_ids` text,
|
|
`redirect_url` text,
|
|
`serial_num` integer,
|
|
`is_active` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`last_updated` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `key_val_store` (
|
|
`key` text PRIMARY KEY NOT NULL,
|
|
`value` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `notif_creds` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`token` text NOT NULL,
|
|
`added_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`last_verified` integer,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `notif_creds_token_unique` ON `notif_creds` (`token`);--> statement-breakpoint
|
|
CREATE TABLE `notifications` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`title` text NOT NULL,
|
|
`body` text NOT NULL,
|
|
`type` text,
|
|
`is_read` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `order_items` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`order_id` integer NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
`quantity` text NOT NULL,
|
|
`price` text NOT NULL,
|
|
`discounted_price` text,
|
|
`is_packaged` integer DEFAULT false NOT NULL,
|
|
`is_package_verified` integer DEFAULT false NOT NULL,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `order_status` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`order_time` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`order_id` integer NOT NULL,
|
|
`is_packaged` integer DEFAULT false NOT NULL,
|
|
`is_delivered` integer DEFAULT false NOT NULL,
|
|
`is_cancelled` integer DEFAULT false NOT NULL,
|
|
`cancel_reason` text,
|
|
`is_cancelled_by_admin` integer,
|
|
`payment_state` text DEFAULT 'pending' NOT NULL,
|
|
`cancellation_user_notes` text,
|
|
`cancellation_admin_notes` text,
|
|
`cancellation_reviewed` integer DEFAULT false NOT NULL,
|
|
`cancellation_reviewed_at` integer,
|
|
`refund_coupon_id` integer,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`refund_coupon_id`) REFERENCES `coupons`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `orders` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`address_id` integer NOT NULL,
|
|
`slot_id` integer,
|
|
`is_cod` integer DEFAULT false NOT NULL,
|
|
`is_online_payment` integer DEFAULT false NOT NULL,
|
|
`payment_info_id` integer,
|
|
`total_amount` text NOT NULL,
|
|
`delivery_charge` text DEFAULT '0' NOT NULL,
|
|
`readable_id` integer NOT NULL,
|
|
`admin_notes` text,
|
|
`user_notes` text,
|
|
`order_group_id` text,
|
|
`order_group_proportion` text,
|
|
`is_flash_delivery` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`address_id`) REFERENCES `addresses`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`slot_id`) REFERENCES `delivery_slot_info`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`payment_info_id`) REFERENCES `payment_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `payment_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`status` text NOT NULL,
|
|
`gateway` text NOT NULL,
|
|
`order_id` text,
|
|
`token` text,
|
|
`merchant_order_id` text NOT NULL,
|
|
`payload` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `payment_info_merchant_order_id_unique` ON `payment_info` (`merchant_order_id`);--> statement-breakpoint
|
|
CREATE TABLE `payments` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`status` text NOT NULL,
|
|
`gateway` text NOT NULL,
|
|
`order_id` integer NOT NULL,
|
|
`token` text,
|
|
`merchant_order_id` text NOT NULL,
|
|
`payload` text,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `payments_merchant_order_id_unique` ON `payments` (`merchant_order_id`);--> statement-breakpoint
|
|
CREATE TABLE `product_availability_schedules` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`time` text NOT NULL,
|
|
`schedule_name` text NOT NULL,
|
|
`action` text NOT NULL,
|
|
`product_ids` text DEFAULT '[]' NOT NULL,
|
|
`group_ids` text DEFAULT '[]' NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`last_updated` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `product_availability_schedules_schedule_name_unique` ON `product_availability_schedules` (`schedule_name`);--> statement-breakpoint
|
|
CREATE TABLE `product_categories` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`description` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `product_group_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`group_name` text NOT NULL,
|
|
`description` text,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `product_group_membership` (
|
|
`product_id` integer NOT NULL,
|
|
`group_id` integer NOT NULL,
|
|
`added_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`group_id`) REFERENCES `product_group_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `product_group_membership_pk` ON `product_group_membership` (`product_id`,`group_id`);--> statement-breakpoint
|
|
CREATE TABLE `product_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`short_description` text,
|
|
`long_description` text,
|
|
`unit_id` integer NOT NULL,
|
|
`price` text NOT NULL,
|
|
`market_price` text,
|
|
`images` text,
|
|
`is_out_of_stock` integer DEFAULT false NOT NULL,
|
|
`is_suspended` integer DEFAULT false NOT NULL,
|
|
`is_flash_available` integer DEFAULT false NOT NULL,
|
|
`flash_price` text,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`increment_step` real DEFAULT 1 NOT NULL,
|
|
`product_quantity` real DEFAULT 1 NOT NULL,
|
|
`store_id` integer,
|
|
`scheduled_availability` integer DEFAULT true NOT NULL,
|
|
FOREIGN KEY (`unit_id`) REFERENCES `units`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`store_id`) REFERENCES `store_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `product_reviews` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
`review_body` text NOT NULL,
|
|
`image_urls` text DEFAULT '[]',
|
|
`review_time` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`ratings` real NOT NULL,
|
|
`admin_response` text,
|
|
`admin_response_images` text DEFAULT '[]',
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action,
|
|
CONSTRAINT "rating_check" CHECK("product_reviews"."ratings" >= 1 AND "product_reviews"."ratings" <= 5)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `product_slots` (
|
|
`product_id` integer NOT NULL,
|
|
`slot_id` integer NOT NULL,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`slot_id`) REFERENCES `delivery_slot_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `product_slot_pk` ON `product_slots` (`product_id`,`slot_id`);--> statement-breakpoint
|
|
CREATE TABLE `product_tag_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`tag_name` text NOT NULL,
|
|
`tag_description` text,
|
|
`image_url` text,
|
|
`is_dashboard_tag` integer DEFAULT false NOT NULL,
|
|
`related_stores` text DEFAULT '[]',
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `product_tag_info_tag_name_unique` ON `product_tag_info` (`tag_name`);--> statement-breakpoint
|
|
CREATE TABLE `product_tags` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
`tag_id` integer NOT NULL,
|
|
`assigned_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`tag_id`) REFERENCES `product_tag_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_product_tag` ON `product_tags` (`product_id`,`tag_id`);--> statement-breakpoint
|
|
CREATE TABLE `refunds` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`order_id` integer NOT NULL,
|
|
`refund_amount` text,
|
|
`refund_status` text DEFAULT 'none',
|
|
`merchant_refund_id` text,
|
|
`refund_processed_at` integer,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `reserved_coupons` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`secret_code` text NOT NULL,
|
|
`coupon_code` text NOT NULL,
|
|
`discount_percent` text,
|
|
`flat_discount` text,
|
|
`min_order` text,
|
|
`product_ids` text,
|
|
`max_value` text,
|
|
`valid_till` integer,
|
|
`max_limit_for_user` integer,
|
|
`exclusive_apply` integer DEFAULT false NOT NULL,
|
|
`is_redeemed` integer DEFAULT false NOT NULL,
|
|
`redeemed_by` integer,
|
|
`redeemed_at` integer,
|
|
`created_by` integer NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`redeemed_by`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`created_by`) REFERENCES `staff_users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `reserved_coupons_secret_code_unique` ON `reserved_coupons` (`secret_code`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_secret_code` ON `reserved_coupons` (`secret_code`);--> statement-breakpoint
|
|
CREATE TABLE `special_deals` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`product_id` integer NOT NULL,
|
|
`quantity` text NOT NULL,
|
|
`price` text NOT NULL,
|
|
`valid_till` integer NOT NULL,
|
|
FOREIGN KEY (`product_id`) REFERENCES `product_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `staff_permissions` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`permission_name` text NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_permission_name` ON `staff_permissions` (`permission_name`);--> statement-breakpoint
|
|
CREATE TABLE `staff_role_permissions` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`staff_role_id` integer NOT NULL,
|
|
`staff_permission_id` integer NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`staff_role_id`) REFERENCES `staff_roles`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`staff_permission_id`) REFERENCES `staff_permissions`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_role_permission` ON `staff_role_permissions` (`staff_role_id`,`staff_permission_id`);--> statement-breakpoint
|
|
CREATE TABLE `staff_roles` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`role_name` text NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_role_name` ON `staff_roles` (`role_name`);--> statement-breakpoint
|
|
CREATE TABLE `staff_users` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`password` text NOT NULL,
|
|
`staff_role_id` integer,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`staff_role_id`) REFERENCES `staff_roles`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `store_info` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`description` text,
|
|
`image_url` text,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`owner` integer NOT NULL,
|
|
FOREIGN KEY (`owner`) REFERENCES `staff_users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `units` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`short_notation` text NOT NULL,
|
|
`full_name` text NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_short_notation` ON `units` (`short_notation`);--> statement-breakpoint
|
|
CREATE TABLE `unlogged_user_tokens` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`token` text NOT NULL,
|
|
`added_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`last_verified` integer
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unlogged_user_tokens_token_unique` ON `unlogged_user_tokens` (`token`);--> statement-breakpoint
|
|
CREATE TABLE `upload_url_status` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`key` text NOT NULL,
|
|
`status` text DEFAULT 'pending' NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `user_creds` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`user_password` text NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `user_details` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`bio` text,
|
|
`date_of_birth` integer,
|
|
`gender` text,
|
|
`occupation` text,
|
|
`profile_image` text,
|
|
`is_suspended` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`updated_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `user_details_user_id_unique` ON `user_details` (`user_id`);--> statement-breakpoint
|
|
CREATE TABLE `user_incidents` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`user_id` integer NOT NULL,
|
|
`order_id` integer,
|
|
`date_added` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`admin_comment` text,
|
|
`added_by` integer,
|
|
`negativity_score` integer,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`added_by`) REFERENCES `staff_users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `user_notifications` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`title` text NOT NULL,
|
|
`image_url` text,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
`body` text NOT NULL,
|
|
`applicable_users` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `users` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text,
|
|
`email` text,
|
|
`mobile` text,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `unique_email` ON `users` (`email`);--> statement-breakpoint
|
|
CREATE TABLE `vendor_snippets` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`snippet_code` text NOT NULL,
|
|
`slot_id` integer,
|
|
`is_permanent` integer DEFAULT false NOT NULL,
|
|
`product_ids` text NOT NULL,
|
|
`valid_till` integer,
|
|
`created_at` integer DEFAULT (strftime('%s','now')) NOT NULL,
|
|
FOREIGN KEY (`slot_id`) REFERENCES `delivery_slot_info`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `vendor_snippets_snippet_code_unique` ON `vendor_snippets` (`snippet_code`); |