Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31c0e50177 | |||
| 8f813ed7c4 | |||
| 9a14965a54 | |||
| 2fc57a1ae9 | |||
| d76011d301 | |||
| 6d5e243e06 | |||
| 9210621d67 | |||
| cefaf3a850 | |||
| 120ff12fef |
@@ -189,7 +189,15 @@ export const getDoctorsByDepartmentId = async (req, res) => {
|
||||
doctor: {isActive: true},
|
||||
},
|
||||
include: {
|
||||
doctor: true,
|
||||
doctor: {
|
||||
include: {
|
||||
seo: {
|
||||
select: {
|
||||
slug: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
orderBy: {sortOrder: "asc"},
|
||||
});
|
||||
@@ -200,6 +208,7 @@ export const getDoctorsByDepartmentId = async (req, res) => {
|
||||
image: d.doctor.image ?? "",
|
||||
designation: d.doctor.designation,
|
||||
hierarchyOrder: d.sortOrder,
|
||||
slug: d.doctor.seo?.slug ?? "",
|
||||
}));
|
||||
|
||||
res.status(200).json({
|
||||
|
||||
@@ -6,7 +6,7 @@ export interface HealthPackage {
|
||||
name: string;
|
||||
slug: string;
|
||||
description?: string;
|
||||
price: number;
|
||||
price?: number;
|
||||
image?: string;
|
||||
discountedPrice?: number;
|
||||
inclusions: Record<string, string[]>;
|
||||
|
||||
@@ -94,8 +94,8 @@ export default function HealthPackagePage() {
|
||||
slug: "",
|
||||
description: "",
|
||||
image: "",
|
||||
price: 0,
|
||||
discountedPrice: 0,
|
||||
price: undefined,
|
||||
discountedPrice: undefined,
|
||||
categoryId: 0,
|
||||
isActive: true,
|
||||
sortOrder: 1000,
|
||||
@@ -204,8 +204,8 @@ export default function HealthPackagePage() {
|
||||
slug: "",
|
||||
description: "",
|
||||
image: "",
|
||||
price: 0,
|
||||
discountedPrice: 0,
|
||||
price: undefined,
|
||||
discountedPrice: undefined,
|
||||
categoryId: categories[0]?.id || 0,
|
||||
isActive: true,
|
||||
sortOrder: 1000,
|
||||
@@ -270,10 +270,6 @@ export default function HealthPackagePage() {
|
||||
if (!pkgForm.slug?.trim()) return toast.error("URL Slug is required.");
|
||||
if (!pkgForm.categoryId)
|
||||
return toast.error("Please select a valid category.");
|
||||
if (pkgForm.price === undefined || pkgForm.price <= 0)
|
||||
return toast.error(
|
||||
"Regular Price must be a valid amount greater than 0.",
|
||||
);
|
||||
if (!pkgForm.description?.trim())
|
||||
return toast.error("Description is required.");
|
||||
|
||||
@@ -299,8 +295,21 @@ export default function HealthPackagePage() {
|
||||
}
|
||||
});
|
||||
|
||||
const finalData = { ...pkgForm, inclusions: parsedInclusions };
|
||||
const finalData: Partial<HealthPackage> = {
|
||||
...pkgForm,
|
||||
inclusions: parsedInclusions,
|
||||
};
|
||||
|
||||
finalData.price =
|
||||
finalData.price !== undefined && finalData.price !== null
|
||||
? Number(finalData.price)
|
||||
: null;
|
||||
|
||||
finalData.discountedPrice =
|
||||
finalData.discountedPrice !== undefined &&
|
||||
finalData.discountedPrice !== null
|
||||
? Number(finalData.discountedPrice)
|
||||
: null;
|
||||
if (editingPackage?.id) {
|
||||
const changedFields: Record<string, any> = {};
|
||||
Object.keys(finalData).forEach((key) => {
|
||||
@@ -321,10 +330,8 @@ export default function HealthPackagePage() {
|
||||
}
|
||||
|
||||
await updateHealthPackageApi(editingPackage.id, changedFields);
|
||||
toast.success("Package updated successfully!");
|
||||
} else {
|
||||
await createHealthPackageApi(finalData);
|
||||
toast.success("Package created successfully!");
|
||||
}
|
||||
|
||||
setPackageModal(false);
|
||||
@@ -363,10 +370,8 @@ export default function HealthPackagePage() {
|
||||
editingCategory.id,
|
||||
changedFields as Partial<HealthCategory>,
|
||||
);
|
||||
toast.success("Category updated successfully!");
|
||||
} else {
|
||||
await createCategoryApi(catForm as any);
|
||||
toast.success("Category created successfully!");
|
||||
}
|
||||
|
||||
setCategoryModal(false);
|
||||
@@ -517,9 +522,15 @@ export default function HealthPackagePage() {
|
||||
</TableCell>
|
||||
<TableCell>
|
||||
<div className="font-semibold">
|
||||
₹{pkg.discountedPrice || pkg.price}
|
||||
{pkg.discountedPrice != null
|
||||
? `₹${pkg.discountedPrice}`
|
||||
: pkg.price != null
|
||||
? `₹${pkg.price}`
|
||||
: "Not Entered"}
|
||||
</div>
|
||||
{pkg.discountedPrice &&
|
||||
|
||||
{pkg.discountedPrice != null &&
|
||||
pkg.price != null &&
|
||||
pkg.discountedPrice < pkg.price && (
|
||||
<div className="text-xs text-muted-foreground line-through">
|
||||
₹{pkg.price}
|
||||
@@ -833,12 +844,19 @@ export default function HealthPackagePage() {
|
||||
<Input
|
||||
type="number"
|
||||
value={pkgForm.price || ""}
|
||||
onChange={(e) =>
|
||||
onChange={(e) => {
|
||||
const value = e.target.value
|
||||
? Number(e.target.value)
|
||||
: undefined;
|
||||
|
||||
setPkgForm({
|
||||
...pkgForm,
|
||||
price: Number(e.target.value),
|
||||
})
|
||||
}
|
||||
price: value,
|
||||
discountedPrice: value
|
||||
? pkgForm.discountedPrice
|
||||
: undefined,
|
||||
});
|
||||
}}
|
||||
className="text-base"
|
||||
/>
|
||||
</div>
|
||||
@@ -848,11 +866,14 @@ export default function HealthPackagePage() {
|
||||
</Label>
|
||||
<Input
|
||||
type="number"
|
||||
disabled={!pkgForm.price}
|
||||
value={pkgForm.discountedPrice || ""}
|
||||
onChange={(e) =>
|
||||
setPkgForm({
|
||||
...pkgForm,
|
||||
discountedPrice: Number(e.target.value),
|
||||
discountedPrice: e.target.value
|
||||
? Number(e.target.value)
|
||||
: undefined,
|
||||
})
|
||||
}
|
||||
className="text-base"
|
||||
@@ -1055,7 +1076,11 @@ export default function HealthPackagePage() {
|
||||
Pricing
|
||||
</p>
|
||||
<p className="text-xl font-bold">
|
||||
₹{selectedPackage?.discountedPrice || selectedPackage?.price}
|
||||
{selectedPackage?.discountedPrice != null
|
||||
? `₹${selectedPackage.discountedPrice}`
|
||||
: selectedPackage?.price != null
|
||||
? `₹${selectedPackage.price}`
|
||||
: "Not Entered"}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user