70 lines
2.8 KiB
TypeScript
70 lines
2.8 KiB
TypeScript
import {
|
|
seedUnits,
|
|
seedStaffRoles,
|
|
seedStaffPermissions,
|
|
seedRolePermissions,
|
|
seedKeyValStore,
|
|
type UnitSeedData,
|
|
type RolePermissionAssignment,
|
|
type KeyValSeedData,
|
|
type StaffRoleName,
|
|
type StaffPermissionName,
|
|
} from '@/src/dbService'
|
|
import { getMinOrderValue, getDeliveryCharge } from '@/src/lib/env-exporter'
|
|
import { CONST_KEYS } from '@/src/lib/const-keys'
|
|
|
|
export async function seed() {
|
|
console.log("Seeding database...");
|
|
|
|
// Seed units
|
|
const unitsToSeed: UnitSeedData[] = [
|
|
{ shortNotation: "Kg", fullName: "Kilogram" },
|
|
{ shortNotation: "L", fullName: "Litre" },
|
|
{ shortNotation: "Dz", fullName: "Dozen" },
|
|
{ shortNotation: "Pc", fullName: "Unit Piece" },
|
|
];
|
|
await seedUnits(unitsToSeed);
|
|
|
|
// Seed staff roles
|
|
const rolesToSeed: StaffRoleName[] = ['super_admin', 'admin', 'marketer', 'delivery_staff'];
|
|
await seedStaffRoles(rolesToSeed);
|
|
|
|
// Seed staff permissions
|
|
const permissionsToSeed: StaffPermissionName[] = ['crud_product', 'make_coupon', 'crud_staff_users'];
|
|
await seedStaffPermissions(permissionsToSeed);
|
|
|
|
// Seed role-permission assignments
|
|
const rolePermissionAssignments: RolePermissionAssignment[] = [
|
|
// super_admin gets all permissions
|
|
{ roleName: 'super_admin', permissionName: 'crud_product' },
|
|
{ roleName: 'super_admin', permissionName: 'make_coupon' },
|
|
{ roleName: 'super_admin', permissionName: 'crud_staff_users' },
|
|
// admin gets product and coupon permissions
|
|
{ roleName: 'admin', permissionName: 'crud_product' },
|
|
{ roleName: 'admin', permissionName: 'make_coupon' },
|
|
// marketer gets coupon permission
|
|
{ roleName: 'marketer', permissionName: 'make_coupon' },
|
|
];
|
|
await seedRolePermissions(rolePermissionAssignments);
|
|
|
|
// Seed key-val store constants
|
|
const constantsToSeed: KeyValSeedData[] = [
|
|
{ key: CONST_KEYS.readableOrderId, value: 0 },
|
|
{ key: CONST_KEYS.minRegularOrderValue, value: getMinOrderValue() },
|
|
{ key: CONST_KEYS.freeDeliveryThreshold, value: getMinOrderValue() },
|
|
{ key: CONST_KEYS.deliveryCharge, value: getDeliveryCharge() },
|
|
{ key: CONST_KEYS.flashFreeDeliveryThreshold, value: 500 },
|
|
{ key: CONST_KEYS.flashDeliveryCharge, value: 69 },
|
|
{ key: CONST_KEYS.popularItems, value: [] },
|
|
{ key: CONST_KEYS.allItemsOrder, value: [] },
|
|
{ key: CONST_KEYS.versionNum, value: '1.1.0' },
|
|
{ key: CONST_KEYS.playStoreUrl, value: 'https://play.google.com/store/apps/details?id=in.freshyo.app' },
|
|
{ key: CONST_KEYS.appStoreUrl, value: 'https://apps.apple.com/in/app/freshyo/id6756889077' },
|
|
{ key: CONST_KEYS.isFlashDeliveryEnabled, value: false },
|
|
{ key: CONST_KEYS.supportMobile, value: '8688182552' },
|
|
{ key: CONST_KEYS.supportEmail, value: 'qushammohd@gmail.com' },
|
|
];
|
|
await seedKeyValStore(constantsToSeed);
|
|
|
|
console.log("Seeding completed.");
|
|
}
|