621e15dd02
- Added Create and Update DTOs for Inventory, Product Brand, Product Category, Product Info, Product, Role, Store, User, and Vendor. - Implemented InventoriesController, ProductBrandsController, ProductCategoriesController, ProductInfoController, ProductsController, RolesController, StoresController, UsersController, and VendorsController with respective CRUD endpoints. - Developed InventoriesService, ProductBrandsService, ProductCategoriesService, ProductInfoService, ProductsService, RolesService, StoresService, UsersService, and VendorsService to handle business logic. - Created PrismaModule and PrismaService for database interactions using Prisma with MariaDB adapter. - Configured application with Swagger for API documentation and added global interceptors for logging and response mapping. - Established e2e testing setup with Jest for the application.
173 lines
5.9 KiB
SQL
173 lines
5.9 KiB
SQL
-- CreateTable
|
|
CREATE TABLE `Users` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`mobileNumber` CHAR(11) NOT NULL,
|
|
`password` VARCHAR(191) NOT NULL,
|
|
`firstName` VARCHAR(191) NOT NULL,
|
|
`lastName` VARCHAR(191) NOT NULL,
|
|
`roleId` INTEGER NOT NULL,
|
|
|
|
UNIQUE INDEX `Users_mobileNumber_key`(`mobileNumber`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Roles` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(100) NOT NULL,
|
|
`description` TEXT NULL,
|
|
`permissions` JSON NULL,
|
|
`createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Products` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`description` TEXT NULL,
|
|
`sku` VARCHAR(100) NULL,
|
|
`barcode` VARCHAR(100) NULL,
|
|
`imageUrl` VARCHAR(255) NULL,
|
|
`attachmentId` BIGINT UNSIGNED NULL,
|
|
`unit` VARCHAR(10) NOT NULL,
|
|
`discount` DECIMAL(10, 2) NOT NULL DEFAULT 0.00,
|
|
`quantity` DECIMAL(10, 2) NOT NULL DEFAULT 0.00,
|
|
`alertQuantity` DECIMAL(10, 2) NOT NULL DEFAULT 5.00,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`isFeatured` BOOLEAN NOT NULL DEFAULT false,
|
|
`createdAt` TIMESTAMP(0) NULL,
|
|
`updatedAt` TIMESTAMP(0) NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
`productInfoId` INTEGER NOT NULL,
|
|
|
|
UNIQUE INDEX `products_sku_unique`(`sku`),
|
|
UNIQUE INDEX `products_barcode_unique`(`barcode`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Product_info` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`description` TEXT NULL,
|
|
`productType` VARCHAR(50) NULL DEFAULT 'simple',
|
|
`metaData` JSON NULL,
|
|
`createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
`brandId` INTEGER NULL,
|
|
`categoryId` INTEGER NULL,
|
|
`vendorId` INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Product_brands` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(100) NOT NULL,
|
|
`description` TEXT NULL,
|
|
`imageUrl` VARCHAR(255) NULL,
|
|
`createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Product_categories` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(100) NOT NULL,
|
|
`description` TEXT NULL,
|
|
`imageUrl` VARCHAR(255) NULL,
|
|
`createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Vendors` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`firstName` VARCHAR(255) NOT NULL,
|
|
`lastName` VARCHAR(255) NOT NULL,
|
|
`email` VARCHAR(255) NULL,
|
|
`mobileNumber` CHAR(11) NOT NULL,
|
|
`address` TEXT NULL,
|
|
`city` VARCHAR(100) NULL,
|
|
`state` VARCHAR(100) NULL,
|
|
`country` VARCHAR(100) NULL,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`createdAt` TIMESTAMP(0) NULL,
|
|
`updatedAt` TIMESTAMP(0) NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
|
|
UNIQUE INDEX `Vendors_mobileNumber_key`(`mobileNumber`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Customers` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`firstName` VARCHAR(255) NOT NULL,
|
|
`lastName` VARCHAR(255) NOT NULL,
|
|
`email` VARCHAR(255) NULL,
|
|
`mobileNumber` CHAR(11) NOT NULL,
|
|
`address` TEXT NULL,
|
|
`city` VARCHAR(100) NULL,
|
|
`state` VARCHAR(100) NULL,
|
|
`country` VARCHAR(100) NULL,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`createdAt` TIMESTAMP(0) NULL,
|
|
`updatedAt` TIMESTAMP(0) NULL,
|
|
`deletedAt` TIMESTAMP(0) NULL,
|
|
|
|
UNIQUE INDEX `Customers_mobileNumber_key`(`mobileNumber`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Inventories` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`location` VARCHAR(255) NULL,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`createdAt` TIMESTAMP(0) NOT NULL,
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Stores` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`location` VARCHAR(255) NULL,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`createdAt` TIMESTAMP(0) NOT NULL,
|
|
`updatedAt` TIMESTAMP(0) NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `Users` ADD CONSTRAINT `Users_roleId_fkey` FOREIGN KEY (`roleId`) REFERENCES `Roles`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `Products` ADD CONSTRAINT `Products_productInfoId_fkey` FOREIGN KEY (`productInfoId`) REFERENCES `Product_info`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_brandId_fkey` FOREIGN KEY (`brandId`) REFERENCES `Product_brands`(`id`) ON DELETE SET NULL ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_categoryId_fkey` FOREIGN KEY (`categoryId`) REFERENCES `Product_categories`(`id`) ON DELETE SET NULL ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_vendorId_fkey` FOREIGN KEY (`vendorId`) REFERENCES `Vendors`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION;
|