add discount to package
This commit is contained in:
@@ -65,15 +65,27 @@ export class PackageDetail {
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
quadPrice!: number;
|
||||
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
quadDiscount!: number;
|
||||
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
triplePrice!: number;
|
||||
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
tripleDiscount!: number;
|
||||
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
doublePrice!: number;
|
||||
|
||||
@Property({ type: "decimal", unsigned: true })
|
||||
doubleDiscount!: number;
|
||||
|
||||
@Property({ type: "decimal", nullable: true, unsigned: true })
|
||||
infantPrice!: number | null;
|
||||
|
||||
@Property({ type: "decimal", nullable: true, unsigned: true })
|
||||
infantDiscount!: number | null;
|
||||
|
||||
@ManyToOne(() => PackageItinerary, {
|
||||
cascade: [Cascade.REMOVE],
|
||||
})
|
||||
|
||||
3504
src/database/migrations/.snapshot-goumrah.json
Normal file
3504
src/database/migrations/.snapshot-goumrah.json
Normal file
File diff suppressed because it is too large
Load Diff
25
src/database/migrations/Migration20251203114705.ts
Normal file
25
src/database/migrations/Migration20251203114705.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { Migration } from "@mikro-orm/migrations";
|
||||
|
||||
export class Migration20251203114705 extends Migration {
|
||||
override async up(): Promise<void> {
|
||||
const knex = this.getKnex();
|
||||
|
||||
await knex.schema.alterTable("packages", (table) => {
|
||||
table.decimal("quad_discount", 10, 2).notNullable().defaultTo(0);
|
||||
table.decimal("triple_discount", 10, 2).notNullable().defaultTo(0);
|
||||
table.decimal("double_discount", 10, 2).notNullable().defaultTo(0);
|
||||
table.decimal("infant_discount", 10, 2).notNullable().defaultTo(0);
|
||||
});
|
||||
}
|
||||
|
||||
override async down(): Promise<void> {
|
||||
const knex = this.getKnex();
|
||||
|
||||
await knex.schema.alterTable("packages", (table) => {
|
||||
table.dropColumn("quad_discount");
|
||||
table.dropColumn("triple_discount");
|
||||
table.dropColumn("double_discount");
|
||||
table.dropColumn("infant_discount");
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -675,9 +675,13 @@ export class PackageController extends Controller {
|
||||
madinahHotel: madinahHotel,
|
||||
transportation: transportationClass,
|
||||
quadPrice: body.quad_price,
|
||||
quadDiscount: body.quad_discount,
|
||||
triplePrice: body.triple_price,
|
||||
tripleDiscount: body.triple_discount,
|
||||
doublePrice: body.double_price,
|
||||
doubleDiscount: body.double_discount,
|
||||
infantPrice: body.infant_price,
|
||||
infantDiscount: body.infant_discount,
|
||||
itinerary: itineraryEntity,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
@@ -1258,9 +1262,13 @@ export class PackageController extends Controller {
|
||||
madinahHotel: madinahHotel,
|
||||
transportation: transportationClass,
|
||||
quadPrice: body.quad_price,
|
||||
quadDiscount: body.quad_discount,
|
||||
triplePrice: body.triple_price,
|
||||
tripleDiscount: body.triple_discount,
|
||||
doublePrice: body.double_price,
|
||||
doubleDiscount: body.double_discount,
|
||||
infantPrice: body.infant_price,
|
||||
infantDiscount: body.infant_discount,
|
||||
itinerary: itineraryEntity,
|
||||
updatedAt: new Date(),
|
||||
});
|
||||
|
||||
@@ -173,9 +173,13 @@ export class PackageMapper {
|
||||
packageDetail.transportation,
|
||||
),
|
||||
quad_price: packageDetail.quadPrice,
|
||||
quad_discount: packageDetail.quadDiscount,
|
||||
triple_price: packageDetail.triplePrice,
|
||||
triple_discount: packageDetail.tripleDiscount,
|
||||
double_price: packageDetail.doublePrice,
|
||||
double_discount: packageDetail.doubleDiscount,
|
||||
infant_price: packageDetail.infantPrice,
|
||||
infant_discount: packageDetail.infantDiscount,
|
||||
itineraries,
|
||||
created_at: packageDetail.createdAt,
|
||||
updated_at: packageDetail.updatedAt,
|
||||
|
||||
@@ -77,19 +77,36 @@ export const packageDetailRequestSchema = z.object({
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.positive("Must be positive."),
|
||||
quad_discount: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.nonnegative("Must be non-negative."),
|
||||
triple_price: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.positive("Must be positive."),
|
||||
triple_discount: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.nonnegative("Must be non-negative."),
|
||||
double_price: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.positive("Must be positive."),
|
||||
double_discount: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.nonnegative("Must be non-negative."),
|
||||
infant_price: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.positive("Must be positive.")
|
||||
.nullable(),
|
||||
infant_discount: z
|
||||
.number("Must be number.")
|
||||
.int("Must be integer.")
|
||||
.nonnegative("Must be non-negative.")
|
||||
.nullable(),
|
||||
itineraries: z.array(
|
||||
z.object(
|
||||
{
|
||||
|
||||
@@ -78,9 +78,13 @@ export type PackageDetailResponse = {
|
||||
madinah_hotel: HotelResponse;
|
||||
transportation: TransportationClassResponse;
|
||||
quad_price: number;
|
||||
quad_discount: number;
|
||||
triple_price: number;
|
||||
triple_discount: number;
|
||||
double_price: number;
|
||||
double_discount: number;
|
||||
infant_price: number | null;
|
||||
infant_discount: number | null;
|
||||
itineraries: PackageItineraryResponse[];
|
||||
created_at: Date;
|
||||
updated_at: Date;
|
||||
|
||||
Reference in New Issue
Block a user