Auto commit: 2025-05-24T11:21:22.644Z

This commit is contained in:
Flatlogic Bot 2025-05-24 11:21:22 +00:00
parent 5c2617a1e3
commit c42c46f6b1
4 changed files with 137 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,41 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
const now = new Date();
await queryInterface.bulkInsert('loyaltytier', [
{
name: 'Mosafer',
annualfee: 0.00,
pointspersar: 0.01,
description: 'Basic support, Track bookings & visa status',
createdAt: now,
updatedAt: now,
},
{
name: 'Elite',
annualfee: 99.00,
pointspersar: 0.02,
description: 'Priority support, Exclusive hotel deals, Free booking cancellations',
createdAt: now,
updatedAt: now,
},
{
name: 'VIB+',
annualfee: 0.00,
pointspersar: 0.03,
description: 'Dedicated travel concierge, Free upgrades on select flights, VIP Umrah & Hajj benefits',
createdAt: now,
updatedAt: now,
},
], {});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete(
'loyaltytier',
{ name: { [Sequelize.Op.in]: ['Mosafer', 'Elite', 'VIB+'] } },
{}
);
},
};

View File

@ -0,0 +1,76 @@
{
href: '/loyalty',
label: 'loyalty',
},
import {
mdiMenu,
mdiClockOutline,
mdiCloud,
mdiCrop,
mdiAccount,
mdiCogOutline,
mdiEmail,
mdiLogout,
mdiThemeLightDark,
mdiGithub,
mdiVuejs,
} from '@mdi/js';
import { MenuNavBarItem } from './interfaces';
const menuNavBar: MenuNavBarItem[] = [
{
isCurrentUser: true,
menu: [
{
icon: mdiAccount,
label: 'My Profile',
href: '/profile',
},
{
isDivider: true,
},
{
icon: mdiLogout,
label: 'Log Out',
isLogout: true,
},
],
},
{
icon: mdiThemeLightDark,
label: 'Light/Dark',
isDesktopNoLabel: true,
isToggleLightDark: true,
},
{
icon: mdiLogout,
label: 'Log out',
isDesktopNoLabel: true,
isLogout: true,
},
];
export const webPagesNavBar = [
{
href: '/home',
label: 'home',
},
{
href: '/about',
label: 'about',
},
{
href: '/services',
label: 'services',
},
{
href: '/contact',
label: 'contact',
},
{
href: '/faq',
label: 'FAQ',
},
];
export default menuNavBar;

View File

@ -0,0 +1,19 @@
import React from 'react';
import type { ReactElement } from 'react';
import LayoutAuthenticated from '../layouts/Authenticated';
const CheckoutPage = () => {
return (
<div className="container mx-auto py-8">
<h1 className="text-3xl font-semibold mb-6">Checkout</h1>
<p className="mb-4">Please log in to your account to proceed with payment and complete your booking.</p>
{/* TODO: Insert checkout form and payment integration here */}
</div>
);
};
CheckoutPage.getLayout = function getLayout(page: ReactElement) {
return <LayoutAuthenticated>{page}</LayoutAuthenticated>;
};
export default CheckoutPage;