feat: implement VehicleCategory entity and master data module support

This commit is contained in:
azeeee05
2026-08-10 17:46:23 +05:30
parent 5f95a5c341
commit 7f529d8ae4
4 changed files with 62 additions and 2 deletions
+25 -2
View File
@@ -268,7 +268,9 @@ SELECT code, name, "tableName", description, "displayOrder", true FROM (VALUES
('eligible-fare-type', 'Eligible Fare Type', 'tbl_eligible_fare_types', 'Eligible Fare Type master', 38),
('applicable-product', 'Applicable Product', 'tbl_applicable_products', 'Applicable Product master', 39),
('meal-type', 'Meal Type', 'tbl_meal_types', 'Meal Type master', 40),
('airport-restriction', 'Airport Restriction', 'tbl_airport_restrictions', 'Airport Restriction master', 41)
('airport-restriction', 'Airport Restriction', 'tbl_airport_restrictions', 'Airport Restriction master', 41),
('destination-type', 'Destination Type', 'tbl_destination_types', 'Destination Type master', 42),
('vehicle-category', 'Vehicle Category', 'tbl_vehicle_categories', 'Vehicle Category master', 43)
) AS t(code, name, "tableName", description, "displayOrder")
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_rules_categories WHERE masters.tbl_rules_categories.code = t.code);
@@ -316,7 +318,9 @@ FROM (VALUES
('eligible-fare-type', 'tbl_eligible_fare_types'),
('applicable-product', 'tbl_applicable_products'),
('meal-type', 'tbl_meal_types'),
('airport-restriction', 'tbl_airport_restrictions')
('airport-restriction', 'tbl_airport_restrictions'),
('destination-type', 'tbl_destination_types'),
('vehicle-category', 'tbl_vehicle_categories')
) AS v(code, "tableName")
WHERE c.code = v.code AND (c."tableName" IS NULL OR c."tableName" != v."tableName");
@@ -714,3 +718,22 @@ SELECT label, value, true FROM (VALUES
('Any Airport', 'any-airport')
) AS t(label, value)
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_airport_restrictions WHERE masters.tbl_airport_restrictions.value = t.value);
-- 45. Destination Types
INSERT INTO masters.tbl_destination_types (label, value, "isActive")
SELECT label, value, true FROM (VALUES
('Home', 'home'),
('Hotel', 'hotel'),
('Airport', 'airport'),
('City Center', 'city-center')
) AS t(label, value)
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_destination_types WHERE masters.tbl_destination_types.value = t.value);
-- 46. Vehicle Categories
INSERT INTO masters.tbl_vehicle_categories (label, value, "isActive")
SELECT label, value, true FROM (VALUES
('Executive Sedan', 'executive-sedan'),
('Luxury SUV', 'luxury-suv'),
('Premium Van', 'premium-van')
) AS t(label, value)
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_vehicle_categories WHERE masters.tbl_vehicle_categories.value = t.value);
@@ -0,0 +1,28 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from 'typeorm';
@Entity({ name: 'tbl_vehicle_categories', schema: 'masters' })
export class VehicleCategory {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column()
label!: string;
@Column()
value!: string;
@Column({ default: true })
isActive!: boolean;
@CreateDateColumn()
createdAt!: Date;
@UpdateDateColumn()
updatedAt!: Date;
}
@@ -52,6 +52,7 @@ import { ApplicableProduct } from './entities/applicable-product.entity';
import { MealType } from './entities/meal-type.entity';
import { AirportRestriction } from './entities/airport-restriction.entity';
import { DestinationType } from './entities/destination-type.entity';
import { VehicleCategory } from './entities/vehicle-category.entity';
@Module({
imports: [
@@ -104,6 +105,7 @@ import { DestinationType } from './entities/destination-type.entity';
MealType,
AirportRestriction,
DestinationType,
VehicleCategory,
]),
],
controllers: [MasterDataController],
@@ -53,6 +53,7 @@ import { ApplicableProduct } from './entities/applicable-product.entity';
import { MealType } from './entities/meal-type.entity';
import { AirportRestriction } from './entities/airport-restriction.entity';
import { DestinationType } from './entities/destination-type.entity';
import { VehicleCategory } from './entities/vehicle-category.entity';
import { CreateActionCategoryDto } from './dto/create-action-category.dto';
import { UpdateActionCategoryDto } from './dto/update-action-category.dto';
@@ -117,6 +118,7 @@ export class MasterDataService implements OnModuleInit {
@InjectRepository(MealType) private mealTypeRepo: Repository<MealType>,
@InjectRepository(AirportRestriction) private airportRestrictionRepo: Repository<AirportRestriction>,
@InjectRepository(DestinationType) private destinationTypeRepo: Repository<DestinationType>,
@InjectRepository(VehicleCategory) private vehicleCategoryRepo: Repository<VehicleCategory>,
) { }
private getRepositoryByCategory(category: string): Repository<any> {
@@ -308,6 +310,11 @@ export class MasterDataService implements OnModuleInit {
case 'TBL_DESTINATION_TYPES':
return this.destinationTypeRepo;
case 'VEHICLE_CATEGORY':
case 'VEHICLE_CATEGORIES':
case 'TBL_VEHICLE_CATEGORIES':
return this.vehicleCategoryRepo;
default:
throw new BadRequestException(`Invalid category: ${category}`);
}