diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml
new file mode 100644
index 0000000..02466a5
--- /dev/null
+++ b/.github/workflows/deploy.yaml
@@ -0,0 +1,49 @@
+name: deploy to danak
+
+
+on:
+ push:
+ branches:
+ - production
+
+jobs:
+ build_and_deploy:
+ runs-on: ubuntu-latest
+
+ env:
+ DANAK_SERVER: "https://captain.dev.danakcorp.com"
+ APP_TOKEN: e7d4e8ae6b8164d3c1669c161f7cab295549b6fdfaea90eaf833f24122380841
+ APP_NAME: dmenuplus-api-production
+ GITHUB_TOKEN: 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
+
+ steps:
+ - name: Check out repositorys
+ uses: actions/checkout@v4
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Container Registry
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: zmihamid
+ password: ${{ env.GITHUB_TOKEN }}
+
+ - name: Preset Image Name
+ run: echo "IMAGE_URL=$(echo ghcr.io/zmihamid/${{ github.event.repository.name }}:$(echo ${{ github.sha }} | cut -c1-7) | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+
+ - name: Build and push Docker Image
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ tags: ${{ env.IMAGE_URL }}
+
+ - name: Install CapRover CLI
+ run: npm install -g caprover
+
+ - name: deploy to server
+ run: |
+ caprover deploy -a $APP_NAME -u $DANAK_SERVER --appToken $APP_TOKEN -i "$IMAGE_URL"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ca28fe8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,58 @@
+# compiled output
+/dist
+/node_modules
+/build
+
+# Logs
+logs
+*.log
+npm-debug.log*
+pnpm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# OS
+.DS_Store
+
+# Tests
+/coverage
+/.nyc_output
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# dotenv environment variable files
+.env
+.env.development.local
+.env.test.local
+.env.production.local
+.env.local
+
+# temp directory
+.temp
+.tmp
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+/react/*
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..9416179
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,16 @@
+{
+ "arrowParens": "avoid",
+ "bracketSpacing": true,
+ "insertPragma": false,
+ "bracketSameLine": false,
+ "jsxSingleQuote": true,
+ "printWidth": 120,
+ "proseWrap": "preserve",
+ "quoteProps": "as-needed",
+ "requirePragma": false,
+ "semi": true,
+ "singleQuote": true,
+ "tabWidth": 2,
+ "trailingComma": "all",
+ "useTabs": false
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..b336fb1
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,15 @@
+{
+ "editor.formatOnSave": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "eslint.format.enable": true,
+ "editor.codeActionsOnSave": {
+ "source.fixAll": "explicit",
+ "source.fixAll.eslint": "explicit"
+ },
+ "[typescript]": {
+ "editor.defaultFormatter": "vscode.typescript-language-features"
+ },
+ "[json]": {
+ "editor.defaultFormatter": "vscode.json-language-features"
+ }
+}
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..9ee9880
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,79 @@
+# Stage 1: Base
+FROM node:22-alpine AS base
+
+# Install timezone support
+RUN apk add --no-cache tzdata
+RUN cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && echo "Asia/Tehran" > /etc/timezone
+
+# Set workdir for clarity
+WORKDIR /app
+
+# Stage 2: Dependencies
+FROM base AS deps
+WORKDIR /temp-deps
+COPY package*.json ./
+RUN npm ci --ignore-scripts
+
+# Stage 3: Build
+FROM base AS builder
+WORKDIR /build
+COPY . ./
+COPY --from=deps /temp-deps/node_modules ./node_modules
+RUN if [ -f package.json ] && grep -q '"build":' package.json; then npm run build; fi
+
+# Stage 4: Runner
+FROM base AS runner
+RUN addgroup -S appgroup && adduser -S appuser -G appgroup
+WORKDIR /app
+
+COPY . ./
+COPY --from=builder --chown=appuser:appgroup /build/ ./
+RUN chown -R appuser:appgroup /app
+
+USER appuser
+ENV NODE_ENV=production
+EXPOSE 4000
+
+CMD ["npm", "start"]
+
+# # Stage 1: Build Stage
+# FROM node:22-alpine AS base
+
+# RUN npm install -g corepack@latest
+# RUN corepack enable && corepack prepare pnpm@9 --activate
+
+# # Install tzdata to support timezone settings
+# RUN apk add --no-cache tzdata
+
+# # Set the timezone to Asia/Tehran
+# RUN cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && echo "Asia/Tehran" > /etc/timezone
+
+
+# FROM base AS deps
+# WORKDIR /temp-deps
+# COPY package*.json pnpm-lock.yaml ./
+# RUN pnpm install --frozen-lockfile --loglevel info
+
+
+# FROM base AS builder
+# WORKDIR /build
+# COPY . ./
+# COPY --from=deps /temp-deps/node_modules ./node_modules
+# RUN if [ -f package.json ] && grep -q '"build":' package.json; then pnpm run build; fi
+# RUN pnpm install --prod --frozen-lockfile --loglevel info
+
+# FROM base AS runner
+# RUN addgroup -S appgroup && adduser -S appuser -G appgroup
+# WORKDIR /app
+
+# COPY . ./
+# COPY --from=builder --chown=appuser:appgroup /build/ ./
+
+# RUN chown -R appuser:appgroup /app
+
+# USER appuser
+
+# ENV NODE_ENV=production
+# EXPOSE 3000
+
+# CMD ["npm", "start"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 1a01a7d..8f0f65f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,98 @@
-# negareh-api
+
+
+
+
+[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
+[circleci-url]: https://circleci.com/gh/nestjs/nest
+
+ A progressive Node.js framework for building efficient and scalable server-side applications.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Description
+
+[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
+
+## Project setup
+
+```bash
+$ npm install
+```
+
+## Compile and run the project
+
+```bash
+# development
+$ npm run start
+
+# watch mode
+$ npm run start:dev
+
+# production mode
+$ npm run start:prod
+```
+
+## Run tests
+
+```bash
+# unit tests
+$ npm run test
+
+# e2e tests
+$ npm run test:e2e
+
+# test coverage
+$ npm run test:cov
+```
+
+## Deployment
+
+When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
+
+If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
+
+```bash
+$ npm install -g @nestjs/mau
+$ mau deploy
+```
+
+With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
+
+## Resources
+
+Check out a few resources that may come in handy when working with NestJS:
+
+- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
+- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
+- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
+- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
+- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
+- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
+- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
+- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
+
+## Support
+
+Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
+
+## Stay in touch
+
+- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
+- Website - [https://nestjs.com](https://nestjs.com/)
+- Twitter - [@nestframework](https://twitter.com/nestframework)
+
+## License
+
+Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
diff --git a/database/migrations/.snapshot-postgres.json b/database/migrations/.snapshot-postgres.json
new file mode 100644
index 0000000..c5c67b1
--- /dev/null
+++ b/database/migrations/.snapshot-postgres.json
@@ -0,0 +1,5653 @@
+{
+ "namespaces": [
+ "public"
+ ],
+ "name": "public",
+ "tables": [
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "first_name": {
+ "name": "first_name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "last_name": {
+ "name": "last_name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "admins",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "phone"
+ ],
+ "composite": false,
+ "keyName": "admins_phone_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "admins_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admins_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admins_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "icon_groups",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "icon_groups_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "icon_groups_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "icon_groups_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "url": {
+ "name": "url",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "group_id": {
+ "name": "group_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ }
+ },
+ "name": "icons",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "icons_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "icons_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "icons_group_id_index",
+ "columnNames": [
+ "group_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "icons_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "icons_group_id_foreign": {
+ "constraintName": "icons_group_id_foreign",
+ "columnNames": [
+ "group_id"
+ ],
+ "localTableName": "public.icons",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.icon_groups",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "permissions",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "name"
+ ],
+ "composite": false,
+ "keyName": "permissions_name_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "permissions_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "permissions_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "permissions_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "hashed_token": {
+ "name": "hashed_token",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "rest_id": {
+ "name": "rest_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "user",
+ "admin"
+ ],
+ "mappedType": "enum"
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "mappedType": "datetime"
+ }
+ },
+ "name": "refreshtokens",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "refreshtokens_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "refreshtokens_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "refreshtokens_expires_at_index",
+ "columnNames": [
+ "expires_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "refreshtokens_hashed_token_index",
+ "columnNames": [
+ "hashed_token"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "refreshtokens_owner_id_rest_id_type_index",
+ "columnNames": [
+ "owner_id",
+ "rest_id",
+ "type"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "refreshtokens_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "slug": {
+ "name": "slug",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "logo": {
+ "name": "logo",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "address": {
+ "name": "address",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "menu_color": {
+ "name": "menu_color",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "latitude": {
+ "name": "latitude",
+ "type": "numeric(10,7)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 7,
+ "mappedType": "decimal"
+ },
+ "longitude": {
+ "name": "longitude",
+ "type": "numeric(10,7)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 7,
+ "mappedType": "decimal"
+ },
+ "service_area": {
+ "name": "service_area",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "established_year": {
+ "name": "established_year",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "instagram": {
+ "name": "instagram",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "telegram": {
+ "name": "telegram",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "whatsapp": {
+ "name": "whatsapp",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "seo_title": {
+ "name": "seo_title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "seo_description": {
+ "name": "seo_description",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "tag_names": {
+ "name": "tag_names",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "images": {
+ "name": "images",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "vat": {
+ "name": "vat",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "domain": {
+ "name": "domain",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "score": {
+ "name": "score",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "plan": {
+ "name": "plan",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'base'",
+ "enumItems": [
+ "base",
+ "premium"
+ ],
+ "mappedType": "enum"
+ },
+ "subscription_id": {
+ "name": "subscription_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "subscription_end_date": {
+ "name": "subscription_end_date",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "subscription_start_date": {
+ "name": "subscription_start_date",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ }
+ },
+ "name": "restaurants",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "slug"
+ ],
+ "composite": false,
+ "keyName": "restaurants_slug_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "columnNames": [
+ "subscription_id"
+ ],
+ "composite": false,
+ "keyName": "restaurants_subscription_id_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "restaurants_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "restaurants_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "restaurants_slug_is_active_index",
+ "columnNames": [
+ "slug",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "restaurants_is_active_index",
+ "columnNames": [
+ "is_active"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "restaurants_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "method": {
+ "name": "method",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "Online",
+ "Cash",
+ "Wallet"
+ ],
+ "mappedType": "enum"
+ },
+ "gateway": {
+ "name": "gateway",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "enumItems": [
+ "zarinpal"
+ ],
+ "mappedType": "enum"
+ },
+ "description": {
+ "name": "description",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "order": {
+ "name": "order",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "integer"
+ },
+ "merchant_id": {
+ "name": "merchant_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "payment_methods",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "payment_methods_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "payment_methods_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "payment_methods_restaurant_id_enabled_index",
+ "columnNames": [
+ "restaurant_id",
+ "enabled"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "payment_methods_restaurant_id_method_unique",
+ "columnNames": [
+ "restaurant_id",
+ "method"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "payment_methods_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "payment_methods_restaurant_id_foreign": {
+ "constraintName": "payment_methods_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.payment_methods",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "channels": {
+ "name": "channels",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "json"
+ }
+ },
+ "name": "notification_preferences",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "notification_preferences_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "notification_preferences_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "notification_preferences_restaurant_id_title_unique",
+ "columnNames": [
+ "restaurant_id",
+ "title"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "notification_preferences_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "notification_preferences_restaurant_id_foreign": {
+ "constraintName": "notification_preferences_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.notification_preferences",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "method": {
+ "name": "method",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "dineIn",
+ "customerPickup",
+ "deliveryCar",
+ "deliveryCourier"
+ ],
+ "mappedType": "enum"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "delivery_fee": {
+ "name": "delivery_fee",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "delivery_fee_type": {
+ "name": "delivery_fee_type",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'fixed'",
+ "enumItems": [
+ "fixed",
+ "distanceBased"
+ ],
+ "mappedType": "enum"
+ },
+ "per_kilometer_fee": {
+ "name": "per_kilometer_fee",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "distance_based_min_cost": {
+ "name": "distance_based_min_cost",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "min_order_price": {
+ "name": "min_order_price",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "description": {
+ "name": "description",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "order": {
+ "name": "order",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "integer"
+ }
+ },
+ "name": "deliveries",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "deliveries_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "deliveries_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "deliveries_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "deliveries_restaurant_id_foreign": {
+ "constraintName": "deliveries_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.deliveries",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "code": {
+ "name": "code",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "PERCENTAGE",
+ "FIXED"
+ ],
+ "mappedType": "enum"
+ },
+ "value": {
+ "name": "value",
+ "type": "numeric(10,2)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 2,
+ "mappedType": "decimal"
+ },
+ "max_discount": {
+ "name": "max_discount",
+ "type": "numeric(10,2)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 2,
+ "mappedType": "decimal"
+ },
+ "min_order_amount": {
+ "name": "min_order_amount",
+ "type": "numeric(10,2)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 2,
+ "mappedType": "decimal"
+ },
+ "max_uses": {
+ "name": "max_uses",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "used_count": {
+ "name": "used_count",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "integer"
+ },
+ "max_uses_per_user": {
+ "name": "max_uses_per_user",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "start_date": {
+ "name": "start_date",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "end_date": {
+ "name": "end_date",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "food_categories": {
+ "name": "food_categories",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "foods": {
+ "name": "foods",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "user_phone": {
+ "name": "user_phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "coupons",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "coupons_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "coupons_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "coupons_code_index",
+ "columnNames": [
+ "code"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "coupons_restaurant_id_is_active_index",
+ "columnNames": [
+ "restaurant_id",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "coupons_restaurant_id_code_is_active_index",
+ "columnNames": [
+ "restaurant_id",
+ "code",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "coupons_code_restaurant_id_unique",
+ "columnNames": [
+ "code",
+ "restaurant_id"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "coupons_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "coupons_restaurant_id_foreign": {
+ "constraintName": "coupons_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.coupons",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "subject": {
+ "name": "subject",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "content": {
+ "name": "content",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "application",
+ "restaurant"
+ ],
+ "mappedType": "enum"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "status": {
+ "name": "status",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "default": "'new'",
+ "mappedType": "string"
+ }
+ },
+ "name": "contacts",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "contacts_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "contacts_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "contacts_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "contacts_restaurant_id_foreign": {
+ "constraintName": "contacts_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.contacts",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "avatar_url": {
+ "name": "avatar_url",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "order": {
+ "name": "order",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ }
+ },
+ "name": "categories",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "categories_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "categories_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "categories_is_active_index",
+ "columnNames": [
+ "is_active"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "categories_restaurant_id_is_active_index",
+ "columnNames": [
+ "restaurant_id",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "categories_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "categories_restaurant_id_foreign": {
+ "constraintName": "categories_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.categories",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "category_id": {
+ "name": "category_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "desc": {
+ "name": "desc",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "content": {
+ "name": "content",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "price": {
+ "name": "price",
+ "type": "numeric(10,2)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "precision": 10,
+ "scale": 2,
+ "mappedType": "decimal"
+ },
+ "order": {
+ "name": "order",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "prepare_time": {
+ "name": "prepare_time",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "week_days": {
+ "name": "week_days",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'[]'",
+ "mappedType": "json"
+ },
+ "meal_types": {
+ "name": "meal_types",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'[]'",
+ "mappedType": "json"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "images": {
+ "name": "images",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "in_place_serve": {
+ "name": "in_place_serve",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "false",
+ "mappedType": "boolean"
+ },
+ "pickup_serve": {
+ "name": "pickup_serve",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "false",
+ "mappedType": "boolean"
+ },
+ "score": {
+ "name": "score",
+ "type": "real",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "default": "null",
+ "mappedType": "float"
+ },
+ "discount": {
+ "name": "discount",
+ "type": "real",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "float"
+ },
+ "is_special_offer": {
+ "name": "is_special_offer",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "false",
+ "mappedType": "boolean"
+ }
+ },
+ "name": "foods",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "foods_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "foods_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "foods_is_active_index",
+ "columnNames": [
+ "is_active"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "foods_category_id_is_active_index",
+ "columnNames": [
+ "category_id",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "foods_restaurant_id_is_active_index",
+ "columnNames": [
+ "restaurant_id",
+ "is_active"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "foods_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "foods_restaurant_id_foreign": {
+ "constraintName": "foods_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.foods",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ },
+ "foods_category_id_foreign": {
+ "constraintName": "foods_category_id_foreign",
+ "columnNames": [
+ "category_id"
+ ],
+ "localTableName": "public.foods",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.categories",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "food_id": {
+ "name": "food_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "total_stock": {
+ "name": "total_stock",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "integer"
+ },
+ "available_stock": {
+ "name": "available_stock",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "integer"
+ }
+ },
+ "name": "inventory",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "food_id"
+ ],
+ "composite": false,
+ "keyName": "inventory_food_id_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "inventory_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "inventory_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "inventory_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "inventory_food_id_foreign": {
+ "constraintName": "inventory_food_id_foreign",
+ "columnNames": [
+ "food_id"
+ ],
+ "localTableName": "public.inventory",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.foods",
+ "deleteRule": "cascade",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "is_system": {
+ "name": "is_system",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "false",
+ "mappedType": "boolean"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ }
+ },
+ "name": "roles",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "roles_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "roles_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "roles_restaurant_id_index",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "roles_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "roles_restaurant_id_foreign": {
+ "constraintName": "roles_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.roles",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "admin_id": {
+ "name": "admin_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "role_id": {
+ "name": "role_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ }
+ },
+ "name": "admin_roles",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "admin_roles_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admin_roles_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admin_roles_restaurant_id_index",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admin_roles_admin_id_index",
+ "columnNames": [
+ "admin_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admin_roles_admin_id_restaurant_id_index",
+ "columnNames": [
+ "admin_id",
+ "restaurant_id"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "admin_roles_admin_id_restaurant_id_unique",
+ "columnNames": [
+ "admin_id",
+ "restaurant_id"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "admin_roles_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "admin_roles_admin_id_foreign": {
+ "constraintName": "admin_roles_admin_id_foreign",
+ "columnNames": [
+ "admin_id"
+ ],
+ "localTableName": "public.admin_roles",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.admins",
+ "updateRule": "cascade"
+ },
+ "admin_roles_role_id_foreign": {
+ "constraintName": "admin_roles_role_id_foreign",
+ "columnNames": [
+ "role_id"
+ ],
+ "localTableName": "public.admin_roles",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.roles",
+ "updateRule": "cascade"
+ },
+ "admin_roles_restaurant_id_foreign": {
+ "constraintName": "admin_roles_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.admin_roles",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "permission_id": {
+ "name": "permission_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ }
+ },
+ "name": "role_permissions",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "role_permissions_pkey",
+ "columnNames": [
+ "role_id",
+ "permission_id"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "role_permissions_role_id_foreign": {
+ "constraintName": "role_permissions_role_id_foreign",
+ "columnNames": [
+ "role_id"
+ ],
+ "localTableName": "public.role_permissions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.roles",
+ "updateRule": "cascade"
+ },
+ "role_permissions_permission_id_foreign": {
+ "constraintName": "role_permissions_permission_id_foreign",
+ "columnNames": [
+ "permission_id"
+ ],
+ "localTableName": "public.role_permissions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.permissions",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "week_day": {
+ "name": "week_day",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "integer"
+ },
+ "open_time": {
+ "name": "open_time",
+ "type": "time(0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 0,
+ "mappedType": "time"
+ },
+ "close_time": {
+ "name": "close_time",
+ "type": "time(0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 0,
+ "mappedType": "time"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "rest_id": {
+ "name": "rest_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "schedules",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "schedules_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "schedules_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "schedules_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "serial",
+ "unsigned": false,
+ "autoincrement": true,
+ "primary": true,
+ "nullable": false,
+ "mappedType": "integer"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "mappedType": "datetime"
+ }
+ },
+ "name": "sms_logs",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "sms_logs_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "sms_logs_restaurant_id_foreign": {
+ "constraintName": "sms_logs_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.sms_logs",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "first_name": {
+ "name": "first_name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "last_name": {
+ "name": "last_name",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "birth_date": {
+ "name": "birth_date",
+ "type": "date",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 0,
+ "default": "null",
+ "mappedType": "date"
+ },
+ "marriage_date": {
+ "name": "marriage_date",
+ "type": "date",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 0,
+ "default": "null",
+ "mappedType": "date"
+ },
+ "referrer": {
+ "name": "referrer",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "is_active": {
+ "name": "is_active",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "gender": {
+ "name": "gender",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "default": "true",
+ "mappedType": "boolean"
+ },
+ "avatar_url": {
+ "name": "avatar_url",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "users",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "phone"
+ ],
+ "composite": false,
+ "keyName": "users_phone_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "users_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "users_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "users_is_active_index",
+ "columnNames": [
+ "is_active"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "users_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {},
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "amount": {
+ "name": "amount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "balance": {
+ "name": "balance",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [],
+ "mappedType": "enum"
+ },
+ "reason": {
+ "name": "reason",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "order_completed_deposit",
+ "convert_score_to_point"
+ ],
+ "mappedType": "enum"
+ }
+ },
+ "name": "point_transactions",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "point_transactions_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "point_transactions_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "point_transactions_restaurant_id_index",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "point_transactions_user_id_index",
+ "columnNames": [
+ "user_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "point_transactions_user_id_restaurant_id_index",
+ "columnNames": [
+ "user_id",
+ "restaurant_id"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "point_transactions_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "point_transactions_user_id_foreign": {
+ "constraintName": "point_transactions_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.point_transactions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ },
+ "point_transactions_restaurant_id_foreign": {
+ "constraintName": "point_transactions_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.point_transactions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "cookie_id": {
+ "name": "cookie_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "table_number": {
+ "name": "table_number",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "staff_id": {
+ "name": "staff_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "message": {
+ "name": "message",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'pending'",
+ "enumItems": [
+ "pending",
+ "acknowledged",
+ "rejected",
+ "completed"
+ ],
+ "mappedType": "enum"
+ }
+ },
+ "name": "pagers",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "pagers_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "pagers_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "pagers_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "pagers_restaurant_id_foreign": {
+ "constraintName": "pagers_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.pagers",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ },
+ "pagers_user_id_foreign": {
+ "constraintName": "pagers_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.pagers",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ },
+ "pagers_staff_id_foreign": {
+ "constraintName": "pagers_staff_id_foreign",
+ "columnNames": [
+ "staff_id"
+ ],
+ "localTableName": "public.pagers",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.admins",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "delivery_method_id": {
+ "name": "delivery_method_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "user_address": {
+ "name": "user_address",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "car_address": {
+ "name": "car_address",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "payment_method_id": {
+ "name": "payment_method_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "order_number": {
+ "name": "order_number",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "integer"
+ },
+ "coupon_discount": {
+ "name": "coupon_discount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "coupon_detail": {
+ "name": "coupon_detail",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "items_discount": {
+ "name": "items_discount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "total_discount": {
+ "name": "total_discount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "sub_total": {
+ "name": "sub_total",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "tax": {
+ "name": "tax",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "delivery_fee": {
+ "name": "delivery_fee",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "total": {
+ "name": "total",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "total_items": {
+ "name": "total_items",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "integer"
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "table_number": {
+ "name": "table_number",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "pendingPayment",
+ "paid",
+ "preparing",
+ "deliveredToWaiter",
+ "deliveredToReceptionist",
+ "shipped",
+ "completed",
+ "canceled"
+ ],
+ "mappedType": "enum"
+ },
+ "history": {
+ "name": "history",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ }
+ },
+ "name": "orders",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "orders_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_status_index",
+ "columnNames": [
+ "status"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_restaurant_id_order_number_index",
+ "columnNames": [
+ "restaurant_id",
+ "order_number"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_user_id_status_index",
+ "columnNames": [
+ "user_id",
+ "status"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_restaurant_id_status_index",
+ "columnNames": [
+ "restaurant_id",
+ "status"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "orders_restaurant_id_order_number_unique",
+ "columnNames": [
+ "restaurant_id",
+ "order_number"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "orders_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "orders_user_id_foreign": {
+ "constraintName": "orders_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.orders",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ },
+ "orders_restaurant_id_foreign": {
+ "constraintName": "orders_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.orders",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ },
+ "orders_delivery_method_id_foreign": {
+ "constraintName": "orders_delivery_method_id_foreign",
+ "columnNames": [
+ "delivery_method_id"
+ ],
+ "localTableName": "public.orders",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.deliveries",
+ "updateRule": "cascade"
+ },
+ "orders_payment_method_id_foreign": {
+ "constraintName": "orders_payment_method_id_foreign",
+ "columnNames": [
+ "payment_method_id"
+ ],
+ "localTableName": "public.orders",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.payment_methods",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "order_id": {
+ "name": "order_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "food_id": {
+ "name": "food_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "comment": {
+ "name": "comment",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "text"
+ },
+ "rating": {
+ "name": "rating",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "0",
+ "mappedType": "integer"
+ },
+ "positive_points": {
+ "name": "positive_points",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "negative_points": {
+ "name": "negative_points",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "'pending'",
+ "enumItems": [
+ "pending",
+ "rejected",
+ "approved"
+ ],
+ "mappedType": "enum"
+ }
+ },
+ "name": "reviews",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "reviews_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "reviews_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "reviews_order_id_index",
+ "columnNames": [
+ "order_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "reviews_user_id_index",
+ "columnNames": [
+ "user_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "reviews_food_id_status_index",
+ "columnNames": [
+ "food_id",
+ "status"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "reviews_order_id_food_id_user_id_unique",
+ "columnNames": [
+ "order_id",
+ "food_id",
+ "user_id"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "reviews_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "reviews_order_id_foreign": {
+ "constraintName": "reviews_order_id_foreign",
+ "columnNames": [
+ "order_id"
+ ],
+ "localTableName": "public.reviews",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.orders",
+ "updateRule": "cascade"
+ },
+ "reviews_food_id_foreign": {
+ "constraintName": "reviews_food_id_foreign",
+ "columnNames": [
+ "food_id"
+ ],
+ "localTableName": "public.reviews",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.foods",
+ "updateRule": "cascade"
+ },
+ "reviews_user_id_foreign": {
+ "constraintName": "reviews_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.reviews",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "order_id": {
+ "name": "order_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "amount": {
+ "name": "amount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "reference_id": {
+ "name": "reference_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "method": {
+ "name": "method",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "Online",
+ "Cash",
+ "Wallet"
+ ],
+ "mappedType": "enum"
+ },
+ "gateway": {
+ "name": "gateway",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "enumItems": [
+ "zarinpal"
+ ],
+ "mappedType": "enum"
+ },
+ "transaction_id": {
+ "name": "transaction_id",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "pending",
+ "paid",
+ "failed",
+ "refunded"
+ ],
+ "mappedType": "enum"
+ },
+ "card_pan": {
+ "name": "card_pan",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "verify_response": {
+ "name": "verify_response",
+ "type": "jsonb",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "mappedType": "json"
+ },
+ "paid_at": {
+ "name": "paid_at",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "failed_at": {
+ "name": "failed_at",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "description": {
+ "name": "description",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ }
+ },
+ "name": "payments",
+ "schema": "public",
+ "indexes": [
+ {
+ "columnNames": [
+ "order_id"
+ ],
+ "composite": false,
+ "keyName": "payments_order_id_index",
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "columnNames": [
+ "reference_id"
+ ],
+ "composite": false,
+ "keyName": "payments_reference_id_unique",
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "payments_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "payments_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "payments_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "payments_order_id_foreign": {
+ "constraintName": "payments_order_id_foreign",
+ "columnNames": [
+ "order_id"
+ ],
+ "localTableName": "public.payments",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.orders",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "order_id": {
+ "name": "order_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "food_id": {
+ "name": "food_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "quantity": {
+ "name": "quantity",
+ "type": "int",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "integer"
+ },
+ "unit_price": {
+ "name": "unit_price",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "discount": {
+ "name": "discount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "default": "0",
+ "mappedType": "decimal"
+ },
+ "total_price": {
+ "name": "total_price",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ }
+ },
+ "name": "order_items",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "order_items_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "order_items_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "order_items_food_id_index",
+ "columnNames": [
+ "food_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "order_items_order_id_index",
+ "columnNames": [
+ "order_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "order_items_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "order_items_order_id_foreign": {
+ "constraintName": "order_items_order_id_foreign",
+ "columnNames": [
+ "order_id"
+ ],
+ "localTableName": "public.order_items",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.orders",
+ "updateRule": "cascade"
+ },
+ "order_items_food_id_foreign": {
+ "constraintName": "order_items_food_id_foreign",
+ "columnNames": [
+ "food_id"
+ ],
+ "localTableName": "public.order_items",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.foods",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "admin_id": {
+ "name": "admin_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "pager.created",
+ "order.created",
+ "payment.success",
+ "review.created",
+ "order.status.changed"
+ ],
+ "mappedType": "enum"
+ },
+ "content": {
+ "name": "content",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "seen_at": {
+ "name": "seen_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ }
+ },
+ "name": "notifications",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "notifications_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "notifications_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "notifications_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "notifications_restaurant_id_foreign": {
+ "constraintName": "notifications_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.notifications",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ },
+ "notifications_user_id_foreign": {
+ "constraintName": "notifications_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.notifications",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ },
+ "notifications_admin_id_foreign": {
+ "constraintName": "notifications_admin_id_foreign",
+ "columnNames": [
+ "admin_id"
+ ],
+ "localTableName": "public.notifications",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.admins",
+ "deleteRule": "set null",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "food_id": {
+ "name": "food_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ }
+ },
+ "name": "favorites",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "favorites_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "favorites_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "favorites_user_id_food_id_unique",
+ "columnNames": [
+ "user_id",
+ "food_id"
+ ],
+ "composite": true,
+ "constraint": true,
+ "primary": false,
+ "unique": true
+ },
+ {
+ "keyName": "favorites_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "favorites_user_id_foreign": {
+ "constraintName": "favorites_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.favorites",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ },
+ "favorites_food_id_foreign": {
+ "constraintName": "favorites_food_id_foreign",
+ "columnNames": [
+ "food_id"
+ ],
+ "localTableName": "public.favorites",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.foods",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "address": {
+ "name": "address",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "city": {
+ "name": "city",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "province": {
+ "name": "province",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "postal_code": {
+ "name": "postal_code",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "latitude": {
+ "name": "latitude",
+ "type": "real",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "float"
+ },
+ "longitude": {
+ "name": "longitude",
+ "type": "real",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "mappedType": "float"
+ },
+ "phone": {
+ "name": "phone",
+ "type": "varchar(255)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 255,
+ "mappedType": "string"
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "default": "false",
+ "mappedType": "boolean"
+ }
+ },
+ "name": "user_addresses",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "user_addresses_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "user_addresses_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "user_addresses_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "user_addresses_user_id_foreign": {
+ "constraintName": "user_addresses_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.user_addresses",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ },
+ {
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 6,
+ "default": "now()",
+ "mappedType": "datetime"
+ },
+ "deleted_at": {
+ "name": "deleted_at",
+ "type": "timestamptz",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": true,
+ "length": 6,
+ "mappedType": "datetime"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "restaurant_id": {
+ "name": "restaurant_id",
+ "type": "char(26)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "length": 26,
+ "mappedType": "character"
+ },
+ "amount": {
+ "name": "amount",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "balance": {
+ "name": "balance",
+ "type": "numeric(10,0)",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "precision": 10,
+ "scale": 0,
+ "mappedType": "decimal"
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "credit",
+ "debit"
+ ],
+ "mappedType": "enum"
+ },
+ "reason": {
+ "name": "reason",
+ "type": "text",
+ "unsigned": false,
+ "autoincrement": false,
+ "primary": false,
+ "nullable": false,
+ "enumItems": [
+ "order_payment",
+ "order_refund",
+ "convert_score_to_wallet",
+ "withdraw",
+ "deposit"
+ ],
+ "mappedType": "enum"
+ }
+ },
+ "name": "wallet_transactions",
+ "schema": "public",
+ "indexes": [
+ {
+ "keyName": "wallet_transactions_created_at_index",
+ "columnNames": [
+ "created_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "wallet_transactions_deleted_at_index",
+ "columnNames": [
+ "deleted_at"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "wallet_transactions_restaurant_id_index",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "wallet_transactions_user_id_index",
+ "columnNames": [
+ "user_id"
+ ],
+ "composite": false,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "wallet_transactions_user_id_restaurant_id_index",
+ "columnNames": [
+ "user_id",
+ "restaurant_id"
+ ],
+ "composite": true,
+ "constraint": false,
+ "primary": false,
+ "unique": false
+ },
+ {
+ "keyName": "wallet_transactions_pkey",
+ "columnNames": [
+ "id"
+ ],
+ "composite": false,
+ "constraint": true,
+ "primary": true,
+ "unique": true
+ }
+ ],
+ "checks": [],
+ "foreignKeys": {
+ "wallet_transactions_user_id_foreign": {
+ "constraintName": "wallet_transactions_user_id_foreign",
+ "columnNames": [
+ "user_id"
+ ],
+ "localTableName": "public.wallet_transactions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.users",
+ "updateRule": "cascade"
+ },
+ "wallet_transactions_restaurant_id_foreign": {
+ "constraintName": "wallet_transactions_restaurant_id_foreign",
+ "columnNames": [
+ "restaurant_id"
+ ],
+ "localTableName": "public.wallet_transactions",
+ "referencedColumnNames": [
+ "id"
+ ],
+ "referencedTableName": "public.restaurants",
+ "updateRule": "cascade"
+ }
+ },
+ "nativeEnums": {}
+ }
+ ],
+ "nativeEnums": {}
+}
diff --git a/database/migrations/Migration20260105085439.ts b/database/migrations/Migration20260105085439.ts
new file mode 100644
index 0000000..cfac84e
--- /dev/null
+++ b/database/migrations/Migration20260105085439.ts
@@ -0,0 +1,27 @@
+import { Migration } from '@mikro-orm/migrations';
+
+export class Migration20260105085439 extends Migration {
+
+ override async up(): Promise {
+ this.addSql(`alter table "point_transactions" drop constraint if exists "point_transactions_type_check";`);
+
+ this.addSql(`alter table "categories" add column "order" int null;`);
+
+ this.addSql(`alter table "point_transactions" add constraint "point_transactions_type_check" check("type" in (''));`);
+ }
+
+ override async down(): Promise {
+ this.addSql(`create table "user_wallets" ("id" char(26) not null, "created_at" timestamptz(6) not null default now(), "updated_at" timestamptz(6) not null default now(), "deleted_at" timestamptz(6) null, "restaurant_id" char(26) not null, "user_id" char(26) not null, "wallet" int4 not null default 0, "points" int4 not null default 0, constraint "user_wallets_pkey" primary key ("id"));`);
+ this.addSql(`alter table "user_wallets" add constraint "unique_user_restaurant" unique ("user_id", "restaurant_id");`);
+ this.addSql(`create index "user_wallets_created_at_index" on "user_wallets" ("created_at");`);
+ this.addSql(`create index "user_wallets_deleted_at_index" on "user_wallets" ("deleted_at");`);
+ this.addSql(`create index "user_wallets_restaurant_id_index" on "user_wallets" ("restaurant_id");`);
+ this.addSql(`create index "user_wallets_user_id_index" on "user_wallets" ("user_id");`);
+ this.addSql(`create index "user_wallets_user_id_restaurant_id_index" on "user_wallets" ("user_id", "restaurant_id");`);
+
+ this.addSql(`alter table "point_transactions" drop constraint if exists "point_transactions_type_check";`);
+
+ this.addSql(`alter table "point_transactions" add constraint "point_transactions_type_check" check("type" in (''));`);
+ }
+
+}
diff --git a/database/migrations/Migration20260106054151.ts b/database/migrations/Migration20260106054151.ts
new file mode 100644
index 0000000..96ead46
--- /dev/null
+++ b/database/migrations/Migration20260106054151.ts
@@ -0,0 +1,23 @@
+import { Migration } from '@mikro-orm/migrations';
+
+export class Migration20260106054151 extends Migration {
+
+ override async up(): Promise {
+ this.addSql(`alter table "restaurants" alter column "subscription_id" type varchar(255) using ("subscription_id"::varchar(255));`);
+ this.addSql(`alter table "restaurants" alter column "subscription_id" drop not null;`);
+ this.addSql(`alter table "restaurants" alter column "subscription_end_date" type timestamptz using ("subscription_end_date"::timestamptz);`);
+ this.addSql(`alter table "restaurants" alter column "subscription_end_date" drop not null;`);
+ this.addSql(`alter table "restaurants" alter column "subscription_start_date" type timestamptz using ("subscription_start_date"::timestamptz);`);
+ this.addSql(`alter table "restaurants" alter column "subscription_start_date" drop not null;`);
+ }
+
+ override async down(): Promise {
+ this.addSql(`alter table "restaurants" alter column "subscription_id" type varchar(255) using ("subscription_id"::varchar(255));`);
+ this.addSql(`alter table "restaurants" alter column "subscription_id" set not null;`);
+ this.addSql(`alter table "restaurants" alter column "subscription_end_date" type timestamptz using ("subscription_end_date"::timestamptz);`);
+ this.addSql(`alter table "restaurants" alter column "subscription_end_date" set not null;`);
+ this.addSql(`alter table "restaurants" alter column "subscription_start_date" type timestamptz using ("subscription_start_date"::timestamptz);`);
+ this.addSql(`alter table "restaurants" alter column "subscription_start_date" set not null;`);
+ }
+
+}
diff --git a/database/migrations/Migration20260106192946.ts b/database/migrations/Migration20260106192946.ts
new file mode 100644
index 0000000..3e324b4
--- /dev/null
+++ b/database/migrations/Migration20260106192946.ts
@@ -0,0 +1,14 @@
+import { Migration } from '@mikro-orm/migrations';
+
+export class Migration20260106192946 extends Migration {
+
+ override async up(): Promise {
+ this.addSql(`alter table "contacts" add column "restaurant_id" char(26) null;`);
+ this.addSql(`alter table "contacts" add constraint "contacts_restaurant_id_foreign" foreign key ("restaurant_id") references "restaurants" ("id") on update cascade on delete set null;`);
+ }
+
+ override async down(): Promise {
+ this.addSql(`alter table "contacts" drop constraint "contacts_restaurant_id_foreign";`);
+ }
+
+}
diff --git a/dump/README_icons.md b/dump/README_icons.md
new file mode 100644
index 0000000..6e870d9
--- /dev/null
+++ b/dump/README_icons.md
@@ -0,0 +1,41 @@
+# Icon Naming Process
+
+## Files Created:
+- `icons.csv` - Updated with "icon_name" column
+- `icon_viewer.html` - Web interface to view and name icons
+- `populate_icon_names.js` - Script to add names to CSV
+
+## Step-by-Step Process:
+
+### 1. View the Icons
+- Open `icon_viewer.html` in your web browser
+- You'll see all 138 icons in a grid layout
+- Each icon shows its number and has an input field for naming
+
+### 2. Name the Icons
+- Look at each icon and enter appropriate names in the input fields
+- The progress counter shows how many you've named
+- Names should be descriptive (e.g., "hamburger", "pizza", "coffee", "delivery")
+
+### 3. Export Named Icons (Optional)
+- Click "Export Named Icons" to download a CSV of only the named icons
+- This helps you review your naming before finalizing
+
+### 4. Update the Main CSV
+- Edit `populate_icon_names.js`
+- Replace the placeholder names in the `iconNames` array with your actual names
+- Run the script: `node populate_icon_names.js`
+
+## Example Icon Names:
+- Food items: "pizza", "burger", "pasta", "salad"
+- Drinks: "coffee", "soda", "juice", "beer"
+- Categories: "fast_food", "italian", "asian", "desserts"
+- Actions: "delivery", "pickup", "favorite", "cart"
+
+## Tips:
+- Use consistent naming conventions (snake_case or camelCase)
+- Keep names short but descriptive
+- Group similar icons with consistent prefixes if applicable
+- Review all names before running the populate script
+
+The final CSV will have all original columns plus the new "icon_name" column with your custom names.
diff --git a/dump/dmenu_db.foodcategories.json b/dump/dmenu_db.foodcategories.json
new file mode 100644
index 0000000..4eac54b
--- /dev/null
+++ b/dump/dmenu_db.foodcategories.json
@@ -0,0 +1,7992 @@
+[{
+ "_id": {
+ "$oid": "61a5ff69fe9cee131085690e"
+ },
+ "name": "sd",
+ "icon": "chicken-fry",
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3664d37a0d33354a6d216"
+ },
+ "created_at": {
+ "$date": "2021-11-30T10:39:37.977Z"
+ },
+ "updated_at": {
+ "$date": "2021-11-30T10:39:37.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "name": "پاستا",
+ "icon": "noodles",
+ "index": 7,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-01T11:45:33.006Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:00:00.448Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "name": "پیتزا ایتالیایی",
+ "icon": "pizza",
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-04T17:24:43.141Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:45:12.802Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "name": "پیتزا امریکایی",
+ "icon": "pizza",
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-04T17:25:05.047Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:40:18.165Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "name": "استیک",
+ "icon": "steak",
+ "index": 5,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:43:39.852Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:47:04.964Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac5fcb26d2e0e4fbd9b409"
+ },
+ "name": "غذاهای گریل و فرنگی",
+ "icon": "restaurant",
+ "index": 8,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:44:27.732Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:00:49.241Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "name": "ساندویچ و برگر",
+ "icon": "burger",
+ "index": 4,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:45:11.513Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:46:04.984Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "name": "سوخاری",
+ "icon": "chicken-fry",
+ "index": 3,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:45:59.736Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:45:32.720Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 9,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:47:02.961Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:01:07.393Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "name": "پیش غذا",
+ "icon": "french-fries",
+ "index": 10,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:47:21.897Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:02:54.902Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "name": "نوشیدنی ها",
+ "icon": "cola",
+ "index": 11,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:48:45.139Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:58:20.692Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "name": "قهوه ",
+ "icon": "tea",
+ "index": 15,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:25:46.269Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:13:40.749Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "name": "موهیتو بار",
+ "icon": "juice",
+ "index": 13,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:26:42.399Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:10:16.746Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "name": "اسموتی و شیک ها ",
+ "icon": "juice",
+ "index": 20,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:27:10.686Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:09:12.119Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "name": "کیک و دسر",
+ "icon": "cup-cake",
+ "index": 23,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:27:44.266Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:18:37.180Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "Asset212",
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T08:53:28.397Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T11:20:02.737Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "name": "شیک ها",
+ "icon": "Asset1112",
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:23:58.879Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T11:20:11.041Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2c1e85c48ecb13a43f49e"
+ },
+ "name": "کیک ها",
+ "icon": "Asset1412",
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:29:12.500Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T11:20:20.879Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "name": "شربت ها ",
+ "icon": "Asset1212",
+ "index": 4,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:31:10.089Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T11:20:54.961Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "name": "دمنوش ها",
+ "icon": "Asset212",
+ "index": 5,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:35:25.588Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T11:21:18.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d5519955249f031c7e5d1b"
+ },
+ "name": "test",
+ "icon": "coffee-pot",
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2ab31fa054b3d183cfd06"
+ },
+ "created_at": {
+ "$date": "2022-01-05T08:06:49.547Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-05T08:06:49.547Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d551a655249f031c7e5d22"
+ },
+ "name": "test2",
+ "icon": "chicken-fry",
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2ab31fa054b3d183cfd06"
+ },
+ "created_at": {
+ "$date": "2022-01-05T08:07:02.118Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-05T08:07:02.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "name": "صبحانه",
+ "icon": "culinary",
+ "index": 1,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:46:37.735Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:47:17.693Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "name": "سیب زمینی ها",
+ "icon": "french-fries",
+ "index": 2,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:46:59.704Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:46:59.704Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3db44a8d41eae80b0d16"
+ },
+ "name": "پیش غذا و سالادها ",
+ "icon": "soup-bowl",
+ "index": 3,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:48:36.912Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:48:36.912Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "name": "غذاهای اصلی ",
+ "icon": "burger",
+ "index": 4,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:48:59.392Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:53:47.264Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "name": "کوکی و دسرها (آیتم ها به تعداد محدود در روز موجود میباشد )",
+ "icon": "cup-cake",
+ "index": 5,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:49:19.030Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:49:19.030Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "name": "موکتل های ایرانی و ملل ",
+ "icon": "juice",
+ "index": 6,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:49:39.544Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:49:39.544Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "name": "شیک ها ",
+ "icon": "soft-drinks",
+ "index": 7,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:50:14.214Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:50:14.214Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "name": "نوشیدنی های گرم بر پایه اسپرسو ",
+ "icon": "tea",
+ "index": 8,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:50:40.589Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:50:40.589Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "name": "نوشیدنی های سرد بر پایه اسپرسو ",
+ "icon": "coffee-cup",
+ "index": 9,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:51:25.721Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:51:25.721Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "name": "نوشیدنی های گرم ملل ",
+ "icon": "tea",
+ "index": 10,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:51:40.958Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:51:40.958Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "name": "چای های ایرانی ",
+ "icon": "tea-pot",
+ "index": 11,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:51:53.062Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:51:53.062Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "name": "دمنوش ها ",
+ "icon": "tea-pot",
+ "index": 12,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:56:37.101Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:56:37.101Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3f9e4a8d41eae80b0e27"
+ },
+ "name": "قهوه های شنی ",
+ "icon": "tea",
+ "index": 13,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:56:46.479Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:56:46.479Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "name": "کلد برو ",
+ "icon": "tea",
+ "index": 14,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:56:59.988Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:56:59.988Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "name": "متدهای موج سوم",
+ "icon": "tea",
+ "index": 15,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T05:57:17.699Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T05:57:17.699Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee40f54a8d41eae80b0e4a"
+ },
+ "name": "آپشنال ",
+ "icon": "restaurant",
+ "index": 16,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:02:29.445Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:02:29.445Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fa87da01319e8e5cfe836f"
+ },
+ "name": "نوشیدنی",
+ "icon": "cola",
+ "index": 18,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:32:10.070Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T13:32:10.070Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "name": "خوراک ها",
+ "icon": "restaurant",
+ "index": 1,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:21:50.529Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:23:07.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b2531ee4b0270db4b30a"
+ },
+ "name": "چاشنی ها",
+ "icon": "soup-bowl",
+ "index": 2,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:23:47.657Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:24:08.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "name": "نوشیدنی های خنک",
+ "icon": "soft-drinks",
+ "index": 3,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:24:29.739Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:24:29.739Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203c0641ee4b0270db4b517"
+ },
+ "name": "دسر ها",
+ "icon": "cup-cake",
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T13:23:48.348Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:23:48.348Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "name": "پیش غذا ",
+ "icon": "Asset1512",
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:01:46.410Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:36:48.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "name": "پیتزا آمریکایی",
+ "icon": "Asset2212",
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:02:09.821Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:37:24.175Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "name": "پیتزا ایتالیایی ",
+ "icon": "Asset2212",
+ "index": 3,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:02:48.822Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-14T09:09:28.860Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "name": "پاستا ",
+ "icon": "Asset1312",
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:03:04.961Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:38:02.755Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2141ee4b0270db4c3f8"
+ },
+ "name": "ناهار بوته",
+ "icon": "Asset912",
+ "index": 8,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:03:32.871Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:38:27.963Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "name": "غذای اصلی",
+ "icon": "Asset2112",
+ "index": 5,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:04:18.008Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:37:40.557Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "name": "ساندویچ",
+ "icon": "Asset1612",
+ "index": 7,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:04:56.309Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:34:54.168Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "name": "اسپرسو بار",
+ "icon": "Asset212",
+ "index": 15,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:06:27.299Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-19T16:54:18.322Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "name": "دمی بار",
+ "icon": "Asset212",
+ "index": 16,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:06:49.648Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:36:05.411Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "name": "هاوس آف تی",
+ "icon": "Asset612",
+ "index": 17,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:07:10.371Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:24:59.657Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6207a2fd1ee4b0270db4c458"
+ },
+ "name": "امریکن استایل",
+ "icon": "Asset212",
+ "index": 18,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-12T12:07:25.307Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:35:21.273Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "name": "کیک و دسر",
+ "icon": "Asset1412",
+ "index": 25,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:46:19.419Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:16:00.989Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset712",
+ "index": 14,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:46:41.889Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:34:49.605Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "name": "ماکتل بار",
+ "icon": "juice",
+ "index": 10,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:47:03.539Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-19T16:36:43.402Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208a97b1ee4b0270db4c734"
+ },
+ "name": "ژلاتو میلک شیک",
+ "icon": "Asset1112",
+ "index": 12,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:47:23.287Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-19T16:38:17.917Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "name": "نوشیدنی های گرم ",
+ "icon": "Asset212",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:43:55.703Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-14T11:36:44.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "name": "نوشیدنی های سرد ",
+ "icon": "Asset712",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:46:16.469Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-13T08:46:16.469Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c57e2cf0cf6959b13cb4"
+ },
+ "name": "صبحانه ",
+ "icon": "Asset412",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:46:54.033Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-13T08:46:54.033Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "name": "میان وعده",
+ "icon": "Asset1712",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:47:53.852Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-13T08:47:53.852Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "name": "بستنی",
+ "icon": "Asset812",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:48:10.929Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-13T08:48:10.929Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:48:35.921Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-13T08:48:35.921Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6211ff10c647562f307ebada"
+ },
+ "name": "test",
+ "icon": "Asset712",
+ "index": 1,
+ "storeId": {
+ "$oid": "61f7db200f1d12950f8ba1c9"
+ },
+ "created_at": {
+ "$date": "2022-02-20T08:42:56.089Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-21T12:28:28.663Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "621202be7d3b1d322849e684"
+ },
+ "name": "test2",
+ "icon": "Asset412",
+ "index": 2,
+ "storeId": {
+ "$oid": "61f7db200f1d12950f8ba1c9"
+ },
+ "created_at": {
+ "$date": "2022-02-20T08:58:38.879Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-20T08:58:38.879Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "name": "پیتزا ایتالیایی ",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T07:30:36.627Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-24T06:54:47.309Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "name": "پیتزا آمریکایی ",
+ "icon": "Asset2212",
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T07:31:30.275Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-24T06:54:36.079Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "name": "پاستاها",
+ "icon": "Asset1312",
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T08:55:01.698Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-24T06:55:06.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215f9c1ee45f61f3a69728c"
+ },
+ "name": "استیک ها",
+ "icon": "Asset1012",
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:09:21.026Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-24T06:55:44.606Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "name": "برگرها",
+ "icon": "Asset112",
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:27:37.972Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-24T06:55:19.939Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "name": "ایرانی",
+ "icon": "Asset912",
+ "index": 6,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:06:29.699Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T16:13:16.211Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "621e6021a03b80e0a44edd72"
+ },
+ "name": "سالاد.",
+ "icon": "Asset1512",
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-01T18:04:17.680Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-01T18:04:48.817Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "name": "پیش غذا.",
+ "icon": "french-fries",
+ "index": 17,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:19:56.490Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-06T19:19:56.490Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "name": "نوشیدنی ها ",
+ "icon": "cola",
+ "index": 18,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:31:36.352Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-06T19:31:36.352Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62318f05a03b80e0a44f2d2f"
+ },
+ "name": " پیش غذا",
+ "icon": "Asset412",
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2022-03-16T07:17:25.970Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-22T09:23:30.055Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "name": "کباب ها ",
+ "icon": "Asset912",
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2022-03-16T07:18:20.878Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-22T09:27:24.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "name": "نوشیدنی گرم بر پایه اسپرسو",
+ "icon": "Asset212",
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-20T20:53:53.479Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-20T20:53:53.479Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "name": " نوشیدنی گرم ",
+ "icon": "Asset2012",
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-20T20:54:40.052Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-01T09:20:21.043Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "name": "قهوه سرد",
+ "icon": "Asset712",
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-20T20:54:54.035Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-20T20:54:54.035Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623794afc1bb048b321cd993"
+ },
+ "name": " قهوه دمی",
+ "icon": "Asset1912",
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-20T20:55:11.527Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-20T20:55:11.527Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623794dbc1bb048b321cd99d"
+ },
+ "name": " میان وعده و دسر",
+ "icon": "Asset1412",
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-20T20:55:55.338Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-20T20:55:55.338Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "name": "پیش غذاها",
+ "icon": "Asset2112",
+ "index": 8,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T06:57:22.402Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:46:34.034Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "name": "ساندویچ و برگر",
+ "icon": "Asset112",
+ "index": 3,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:11:48.433Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:44:00.730Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "name": "پیتزا امریکایی",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:12:23.451Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:49:01.737Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "name": "پیتزا ایتالیایی",
+ "icon": "Asset2212",
+ "index": 2,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:12:36.903Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:44:25.413Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 5,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:12:50.161Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T07:12:50.161Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5693ec44ae525a1523be"
+ },
+ "name": "استیک",
+ "icon": "Asset1012",
+ "index": 4,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:13:23.599Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:46:07.234Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 7,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:13:40.613Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T07:13:40.613Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 13,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:13:54.452Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T16:45:43.134Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f56c3ec44ae525a1523d9"
+ },
+ "name": "بشقاب",
+ "icon": "Asset1712",
+ "index": 9,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:14:11.913Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T07:14:11.913Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f56fdec44ae525a1523e8"
+ },
+ "name": "پیده",
+ "icon": "444",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:15:09.804Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T07:15:09.804Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f5717ec44ae525a1523f1"
+ },
+ "name": "خوراک",
+ "icon": "333",
+ "index": 10,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:15:35.054Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T07:15:35.054Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fe90bec44ae525a153778"
+ },
+ "name": "کیک و دسر",
+ "icon": "cup-cake",
+ "index": 20,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:38:19.897Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T17:38:19.897Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "name": "اسپرسو بار",
+ "icon": "Asset212",
+ "index": 21,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:54:13.599Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T17:54:13.599Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "tea",
+ "index": 19,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T18:27:27.794Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-14T18:27:27.794Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset2012",
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:20:55.913Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T11:13:51.161Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "name": "آیس کافه",
+ "icon": "Asset712",
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:01:28.612Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T15:01:28.612Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "name": "میلک شیک",
+ "icon": "Asset1112",
+ "index": 12,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:18:05.513Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T15:18:05.513Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "name": "نوشیدی های سرد",
+ "icon": "Asset1212",
+ "index": 14,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:41:12.531Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T15:41:12.531Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "name": "قهوه های دمی.",
+ "icon": "Asset2012",
+ "index": 16,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:06:10.147Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T17:06:10.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:00:29.217Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:00:29.217Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "name": "نوشیدنی سرد",
+ "icon": "Asset1212",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:00:49.981Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:00:49.981Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815c51d65610bd301c6552"
+ },
+ "name": "دسر و کیک",
+ "icon": "Asset1412",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:02:25.787Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:02:25.787Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "name": "بستنی",
+ "icon": "Asset1112",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:02:46.870Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:02:46.870Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "name": "دمنوش گیاهی",
+ "icon": "Asset1912",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:03:03.557Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:03:03.557Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815caad65610bd301c656d"
+ },
+ "name": "اسموتی",
+ "icon": "Asset1212",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:03:54.883Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:03:54.883Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:04:35.296Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-15T20:07:11.279Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "name": "ماکتل ها",
+ "icon": "Asset1212",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:04:54.741Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T14:43:16.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815d39d65610bd301c659a"
+ },
+ "name": "شربت ها",
+ "icon": "Asset1212",
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T20:06:17.470Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-04T05:18:11.236Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62824a29d65610bd301c6db7"
+ },
+ "name": "گلاسه ها",
+ "icon": "Asset812",
+ "index": 9,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-16T12:57:13.932Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T12:57:13.932Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6288e0d945a8f989e78560f3"
+ },
+ "name": "قلیان",
+ "icon": "Asset111",
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-05-21T12:53:45.485Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-21T12:53:45.485Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628b66ceea3462120c4df415"
+ },
+ "name": "test",
+ "icon": "coffee-cup",
+ "index": 3,
+ "storeId": {
+ "$oid": "6204b1626175e2247c298b04"
+ },
+ "created_at": {
+ "$date": "2022-05-23T10:49:50.408Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T06:32:24.003Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628b66d8ea3462120c4df41e"
+ },
+ "name": "test3",
+ "icon": "cola",
+ "index": 1,
+ "storeId": {
+ "$oid": "6204b1626175e2247c298b04"
+ },
+ "created_at": {
+ "$date": "2022-05-23T10:50:00.148Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-18T06:49:59.798Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a1facb128ed6fd0132a439"
+ },
+ "name": "لقمه",
+ "icon": "hot-dog",
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-09T13:51:07.707Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T13:51:07.707Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "name": "غذا",
+ "icon": "Asset912",
+ "index": 2,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:35:13.581Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:23:18.902Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d21f128ed6fd01333336"
+ },
+ "name": "فرنگی",
+ "icon": "Asset1012",
+ "index": 3,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:35:43.861Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:23:46.431Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d23f128ed6fd0133333f"
+ },
+ "name": "سالاد ها",
+ "icon": "Asset1512",
+ "index": 4,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:36:15.082Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:23:57.300Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d259128ed6fd0133334b"
+ },
+ "name": "نوشیدنی",
+ "icon": "Asset1212",
+ "index": 5,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:36:41.542Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:24:09.663Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d264128ed6fd01333354"
+ },
+ "name": "قلیان",
+ "icon": "Asset111",
+ "index": 6,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:36:52.778Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:24:22.391Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "Asset212",
+ "index": 7,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:52:22.340Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:24:33.269Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset712",
+ "index": 8,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:52:49.728Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:24:58.301Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d630128ed6fd0133339c"
+ },
+ "name": "چای",
+ "icon": "Asset2012",
+ "index": 9,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:53:04.945Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:25:09.042Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d6bc128ed6fd013333bb"
+ },
+ "name": "قهوه نسل ۳",
+ "icon": "Asset212",
+ "index": 10,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:55:24.890Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:25:18.424Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "name": "ماکتل ها",
+ "icon": "Asset1212",
+ "index": 11,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:55:40.211Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:25:28.312Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a9d6e4128ed6fd013333d4"
+ },
+ "name": "شیک ها",
+ "icon": "Asset1112",
+ "index": 12,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T12:56:04.129Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:25:37.031Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "name": "پیش غذاها",
+ "icon": "Asset312",
+ "index": 1,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T09:15:48.189Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-28T07:22:44.563Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "name": "خوراک مخصوص هفت خوان",
+ "icon": "Asset912",
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:21:00.719Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:21:00.719Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "name": "خوراک",
+ "icon": "Asset312",
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:21:41.718Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:21:41.718Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "name": "پیش غذا",
+ "icon": "Asset1512",
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:23:14.602Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:23:14.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "name": "نوشیدنی",
+ "icon": "cola",
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:24:00.722Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:24:00.722Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "name": "چای و نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:26:00.506Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:26:00.506Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceabe27400250986c70a71"
+ },
+ "name": "قلیان",
+ "icon": "Asset111",
+ "index": 6,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:26:26.061Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:26:26.061Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebe677400250986c70e76"
+ },
+ "name": "دسر",
+ "icon": "Asset812",
+ "index": 7,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:45:27.591Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:45:27.591Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "name": " نوشیدنی های سرد",
+ "icon": "Asset1212",
+ "index": 11,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-07-24T13:01:52.194Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-13T13:35:53.394Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62dd47a5faacb066e12064d0"
+ },
+ "name": "پیتزا ",
+ "icon": "pizza",
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-07-24T13:22:45.709Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-13T13:23:36.222Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "name": "صبحانه",
+ "icon": "Asset412",
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-25T14:45:37.740Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-03T18:35:56.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62e400a696be484852cba44b"
+ },
+ "name": "پیتزاها",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "62e3ff5e96be484852cba3c3"
+ },
+ "created_at": {
+ "$date": "2022-07-29T15:45:42.099Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-29T15:45:42.099Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314a2d5e410c5322751b0ba"
+ },
+ "name": "پیتزا",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "63131c3d96be484852d0a9ed"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:06:29.828Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:10:45.740Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314ab2be410c5322751b32c"
+ },
+ "name": "پیتزا",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:42:03.082Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:43:02.958Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314ab3ce410c5322751b335"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 2,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:42:20.161Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:42:20.161Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314ab58e410c5322751b33e"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 3,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:42:48.892Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:42:48.892Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314ab7ce410c5322751b35b"
+ },
+ "name": "سیب زمینی ",
+ "icon": "Asset512",
+ "index": 4,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:43:24.128Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:43:24.128Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314ab8de410c5322751b364"
+ },
+ "name": "بشقاب",
+ "icon": "culinary",
+ "index": 5,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:43:41.436Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:43:41.436Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314aba0e410c5322751b36d"
+ },
+ "name": "پنینی",
+ "icon": "111",
+ "index": 6,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:44:00.632Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:44:00.632Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314abbfe410c5322751b376"
+ },
+ "name": "صبحانه",
+ "icon": "Asset412",
+ "index": 7,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:44:31.699Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:44:31.699Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314abd7e410c5322751b37f"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 8,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:44:55.315Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:44:55.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314abefe410c5322751b39d"
+ },
+ "name": "ماکتیل",
+ "icon": "Asset1212",
+ "index": 9,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "created_at": {
+ "$date": "2022-09-04T13:45:19.910Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:45:19.910Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "632c1d71e410c5322753e6b7"
+ },
+ "name": "دمنوش",
+ "icon": "Asset1912",
+ "index": 15,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2022-09-22T08:31:45.400Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-22T09:21:13.712Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6335df1ae410c532275484e5"
+ },
+ "name": "قهوه های دمی",
+ "icon": "tea-pot",
+ "index": 22,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2022-09-29T18:08:26.002Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-29T18:08:26.002Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "name": "قهوه و نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-12-13T14:09:43.953Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:40:34.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "name": "پیش غذا و سالاد ",
+ "icon": "Asset1512",
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-12-13T15:56:20.469Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-06T12:12:01.106Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "639c921d82d7fc8d726ac4ef"
+ },
+ "name": "کیک",
+ "icon": "Asset1412",
+ "index": 14,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-12-16T15:43:25.623Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-13T14:49:12.232Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63a534a382d7fc8d726b3a9a"
+ },
+ "name": "صبحانه ",
+ "icon": "Asset412",
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-12-23T04:54:59.649Z"
+ },
+ "updated_at": {
+ "$date": "2022-12-23T04:54:59.649Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "name": "قهوه های دمی ",
+ "icon": "Asset1912",
+ "index": 10,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-01-21T16:12:26.429Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-13T13:15:34.680Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "name": "چای و دمنوش ",
+ "icon": "Asset1912",
+ "index": 17,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-04-30T10:37:56.648Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:14:04.311Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "name": "برگر",
+ "icon": "Asset112",
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:23:54.670Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:48:53.089Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450adf498ff3c74144142e4"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:30:12.286Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:30:12.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450aec598ff3c741441431c"
+ },
+ "name": "پنینی ",
+ "icon": "Asset1612",
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:33:41.825Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:43:56.327Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "name": "هات داگ ",
+ "icon": "hot-dog",
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:43:30.739Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:43:30.739Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b1d498ff3c74144143d2"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:46:44.343Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:46:44.343Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b24a98ff3c7414414400"
+ },
+ "name": "سیب زمینی",
+ "icon": "Asset512",
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:48:42.401Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T07:40:42.087Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b2ed98ff3c741441445c"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:51:25.259Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:51:25.259Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b33898ff3c7414414480"
+ },
+ "name": "نوشیدنی",
+ "icon": "juice",
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:52:40.182Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:52:40.182Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "name": "اسپرسو بار",
+ "icon": "tea",
+ "index": 10,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:55:08.482Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:55:08.482Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 11,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:58:50.140Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:58:50.140Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "name": "دمی",
+ "icon": "Asset1912",
+ "index": 12,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:02:56.763Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T07:02:56.763Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "name": " ایس کافی",
+ "icon": "coffee-cup",
+ "index": 13,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:05:41.448Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T07:05:41.448Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "name": "چای دمنوش",
+ "icon": "Asset1912",
+ "index": 14,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:00:51.657Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:00:51.657Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d60f98ff3c7414414899"
+ },
+ "name": "کیک",
+ "icon": "Asset1412",
+ "index": 17,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:21:19.754Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:21:19.754Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "name": "شیک",
+ "icon": "Asset712",
+ "index": 18,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:23:25.954Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:23:25.954Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "name": "نوشیدنی سرد",
+ "icon": "Asset1212",
+ "index": 19,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:28:30.864Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:28:30.864Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6452153398ff3c74144161a1"
+ },
+ "name": "سیروپ",
+ "icon": "coffee-pot",
+ "index": 8,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:02:59.955Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:41:31.003Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "645215c898ff3c74144161bc"
+ },
+ "name": "کیک",
+ "icon": "Asset1412",
+ "index": 6,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:05:28.646Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:41:02.563Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset2012",
+ "index": 8,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-05-06T18:53:53.585Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-06T18:53:53.585Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "name": "نوشیدنی های گرم (بر پایه اسپرسو)",
+ "icon": "Asset212",
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:37:41.571Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:37:41.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "name": "نوشیدنی های سرد ",
+ "icon": "soft-drinks",
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:47:29.956Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-31T19:13:45.330Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "name": " نوشیدنی های گرم ملل",
+ "icon": "tea",
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:47:56.580Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:03:49.776Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466026898ff3c741442d613"
+ },
+ "name": " قهوه های شنی",
+ "icon": "Asset1912",
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:48:08.375Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:04:01.958Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "name": " شیک ها",
+ "icon": "Asset1112",
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:48:23.070Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:48:23.070Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "name": " کوکی ها و دسرها",
+ "icon": "Asset1412",
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:48:41.161Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:48:41.161Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "name": " کلد برو",
+ "icon": "Asset712",
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:49:25.780Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:22:29.295Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "name": " موج سوم",
+ "icon": "Asset212",
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:49:38.602Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:23:59.464Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "name": " چای های ایرانی",
+ "icon": "Asset2012",
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:50:00.173Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:22:00.058Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "name": " دمنوش ها",
+ "icon": "Asset612",
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:50:19.479Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:23:36.385Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "name": " ماکتل ها",
+ "icon": "juice",
+ "index": 11,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:50:36.681Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T15:24:11.615Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "name": " غذاهای اصلی",
+ "icon": "Asset112",
+ "index": 12,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:51:03.793Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:51:03.793Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "name": " پیش غذاها",
+ "icon": "Asset1512",
+ "index": 13,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:51:17.231Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:52:05.163Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "name": " سیب زمینی ها",
+ "icon": "Asset512",
+ "index": 14,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:51:53.574Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:51:53.574Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "name": " صبحانه ها",
+ "icon": "Asset412",
+ "index": 16,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:53:03.749Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:59:38.727Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646603a098ff3c741442d6ee"
+ },
+ "name": " آپشنال",
+ "icon": "333",
+ "index": 17,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:53:20.820Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-18T10:53:20.820Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset1112",
+ "index": 22,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T10:12:05.048Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:11:10.836Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64ae92ed98ff3c7414486796"
+ },
+ "name": "برگرها",
+ "icon": "Asset112",
+ "index": 2,
+ "storeId": {
+ "$oid": "61fe34411ee4b0270db4a459"
+ },
+ "created_at": {
+ "$date": "2023-07-12T11:47:57.474Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:25:26.058Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64ae931298ff3c741448679f"
+ },
+ "name": "سالادها",
+ "icon": "Asset1512",
+ "index": 1,
+ "storeId": {
+ "$oid": "61fe34411ee4b0270db4a459"
+ },
+ "created_at": {
+ "$date": "2023-07-12T11:48:34.563Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:25:34.579Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64aff92198ff3c7414488119"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-07-13T13:16:17.257Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-13T13:16:17.257Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "name": "پیش غذا",
+ "icon": "Asset512",
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-07-17T06:58:16.642Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-17T06:58:16.642Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "name": "برگرها",
+ "icon": "Asset112",
+ "index": 2,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-07-17T06:58:30.762Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-17T07:00:02.036Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64ba6e2698ff3c7414494144"
+ },
+ "name": "دبل برگرها",
+ "icon": "Asset112",
+ "index": 3,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-07-21T11:38:14.985Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T17:23:29.481Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64babeff98ff3c7414494b79"
+ },
+ "name": "تریپل برگرها",
+ "icon": "Asset112",
+ "index": 4,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-07-21T17:23:11.836Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-29T08:57:49.475Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "name": "سالاد و پیش غذا",
+ "icon": "Asset1512",
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T18:58:19.997Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:33:10.791Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "name": "آش بار مهتاب",
+ "icon": "333",
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:03:09.872Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:09:24.164Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "name": "غذای اصلی",
+ "icon": "Asset2112",
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:09:06.227Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:09:06.227Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "name": "شربت بار مهتاب",
+ "icon": "juice",
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:10:15.074Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:10:15.074Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad83e98ff3c741449530a"
+ },
+ "name": "برگر",
+ "icon": "burger",
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:10:54.967Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:10:54.967Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "name": "کافی بار",
+ "icon": "tea",
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:13:03.276Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:13:03.276Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "name": "نوشیدنی گرم شکلاتی",
+ "icon": "coffee-cup",
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:14:05.355Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:14:05.355Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "name": "دسر و کیک",
+ "icon": "Asset1412",
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:14:36.147Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:14:36.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 9,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:14:54.017Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:14:54.017Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "name": "دمنوش بار",
+ "icon": "Asset1912",
+ "index": 10,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:15:15.477Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:15:15.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "name": "ماکتل بار",
+ "icon": "Asset1212",
+ "index": 11,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:15:51.494Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:15:51.494Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "name": "اسموتی",
+ "icon": "soft-drinks",
+ "index": 12,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:16:33.335Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:16:33.335Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "name": "نوشیدنی سرد",
+ "icon": "cola",
+ "index": 13,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:17:08.649Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:17:08.649Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "name": "نوشیدنی های بر پایه اسپرسو",
+ "icon": "Asset212",
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:10:22.923Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:10:22.923Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e845ed59383e8d754e918e"
+ },
+ "name": "قهوه های دمی ",
+ "icon": "Asset212",
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:10:53.349Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:10:53.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8464759383e8d754e919d"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "Asset2012",
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:12:23.543Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:12:23.543Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset1912",
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:14:11.442Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:14:11.442Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "name": "قهوه های سرد",
+ "icon": "Asset612",
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:17:33.706Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:17:33.706Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "name": "شیک ها",
+ "icon": "Asset1112",
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:19:11.804Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:19:11.804Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "name": "موکتل و آب میوه ها",
+ "icon": "Asset1212",
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:19:42.247Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:19:42.247Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "name": "شربت ها",
+ "icon": "soft-drinks",
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:20:33.535Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:20:33.535Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "name": "فانتزی",
+ "icon": "444",
+ "index": 9,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:22:00.057Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:22:00.057Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "name": "افزودنی",
+ "icon": "coffee-pot",
+ "index": 10,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:23:10.118Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T06:23:10.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "name": "پیتزا ها",
+ "icon": "Asset2212",
+ "index": 5,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T08:56:27.027Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-29T08:56:27.027Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "name": "نوشیدنی ها",
+ "icon": "Asset1212",
+ "index": 6,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T08:57:10.486Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-29T08:58:07.968Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f4408459383e8d754f7181"
+ },
+ "name": "بستنی ",
+ "icon": "ice-cream-alt",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:15:00.848Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T08:15:00.848Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "name": "دسر",
+ "icon": "Asset1412",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:01:36.911Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T09:01:36.911Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "name": "صبحانه",
+ "icon": "Asset412",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:15:28.110Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:15:28.110Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "name": "پیش غذاها",
+ "icon": "Asset312",
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:18:56.157Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:18:56.157Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "name": "ایران زمین",
+ "icon": "Asset912",
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:19:29.404Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:19:29.404Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "name": "پیتزا ایتالیایی",
+ "icon": "Asset2212",
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:20:07.042Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:20:07.042Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "name": "برگرها",
+ "icon": "Asset112",
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:20:51.689Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:20:51.689Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "name": "استیک ها",
+ "icon": "Asset1712",
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:21:17.940Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:21:17.940Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:21:43.221Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:21:43.221Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 7,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:24:23.276Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:24:23.276Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519733c59383e8d7551df9e"
+ },
+ "name": "دریایی ها",
+ "icon": "222",
+ "index": 8,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:25:16.303Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T13:26:42.220Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "name": "شات سس ها",
+ "icon": "333",
+ "index": 9,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:26:36.082Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-01T14:26:36.082Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d815259383e8d75521f12"
+ },
+ "name": "برگر",
+ "icon": "Asset112",
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-10-04T15:14:26.594Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T15:14:26.594Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "name": "قلیان",
+ "icon": "Asset111",
+ "index": 16,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-10-04T19:37:55.589Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:41:55.134Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "name": "اسپرسو بار",
+ "icon": "tea",
+ "index": 10,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:10:54.917Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-05T16:10:54.917Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 11,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:42:15.626Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-05T16:42:15.626Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset712",
+ "index": 12,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:09:17.652Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-08T12:54:30.661Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651ef0b759383e8d7552437a"
+ },
+ "name": "میلک شیک",
+ "icon": "Asset1112",
+ "index": 13,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:21:59.621Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-05T17:21:59.621Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "name": "نوشیدنی سرد",
+ "icon": "Asset1212",
+ "index": 14,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:28:01.078Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-08T12:55:21.732Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651eff7759383e8d75524961"
+ },
+ "name": "کیک و دسر ",
+ "icon": "cup-cake",
+ "index": 15,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T18:24:55.290Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-08T12:55:59.399Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65219db959383e8d75527683"
+ },
+ "name": "سوخاری ها",
+ "icon": "chicken-fry",
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-07T18:04:41.565Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-07T18:04:41.565Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "name": "چای و دمنوش",
+ "icon": "tea-pot",
+ "index": 16,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T08:54:05.908Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-08T12:57:27.852Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6522a77659383e8d75527f18"
+ },
+ "name": "قهوه دمی",
+ "icon": "coffee-pot",
+ "index": 17,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T12:58:30.935Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-08T12:58:59.984Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "name": "اسپرسو",
+ "icon": "tea",
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-11T12:23:56.537Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-02T18:17:29.022Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6527fce059383e8d7552d4be"
+ },
+ "name": "اسموتی ",
+ "icon": "Asset712",
+ "index": 18,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:04:16.713Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-12T14:04:16.713Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "name": "اسپرسو با شیر",
+ "icon": "Asset212",
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:36:47.441Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-28T12:13:44.204Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "name": "بار گرم",
+ "icon": "soup-bowl",
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:43:37.275Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-28T12:15:52.808Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset712",
+ "index": 5,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:44:17.798Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:15:01.436Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a471159383e8d755304bd"
+ },
+ "name": "آیس",
+ "icon": "Asset712",
+ "index": 6,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:45:21.273Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:15:44.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a475659383e8d755304c6"
+ },
+ "name": "ماکتیل",
+ "icon": "Asset1212",
+ "index": 7,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:46:30.712Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:15:54.857Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a476859383e8d755304cf"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 8,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:46:48.814Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:16:02.022Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a478059383e8d755304db"
+ },
+ "name": "دمی",
+ "icon": "Asset1912",
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:47:12.739Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:14:23.979Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a53d959383e8d7553076f"
+ },
+ "name": "اسموتی",
+ "icon": "Asset1212",
+ "index": 9,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:39:53.706Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:39:53.706Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a559659383e8d75530778"
+ },
+ "name": "میان وعده",
+ "icon": "Asset412",
+ "index": 10,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:47:18.315Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:47:18.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "name": "کیک ها",
+ "icon": "Asset1412",
+ "index": 11,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:47:42.352Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:47:42.352Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a55c759383e8d7553078a"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset212",
+ "index": 12,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:48:07.200Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-14T08:48:45.575Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "name": "پیتزا ایتالیایی",
+ "icon": "pizza",
+ "index": 14,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:50:41.387Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:06:10.479Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "name": "برگر",
+ "icon": "burger",
+ "index": 12,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:50:56.063Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-24T16:50:56.063Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "name": "پیش غذا",
+ "icon": "Asset312",
+ "index": 13,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:51:12.691Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-24T16:51:12.691Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "name": "پاستا",
+ "icon": "noodles",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:59:45.530Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-24T16:59:45.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65509e8659383e8d7555b820"
+ },
+ "name": "ساندویچ",
+ "icon": "Asset1612",
+ "index": 7,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-11-12T09:44:38.584Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-12T09:44:38.584Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "name": "جگر گوسفندی",
+ "icon": "culinary",
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-17T19:59:52.982Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-17T19:59:52.982Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "name": "جگر گوساله",
+ "icon": "culinary",
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-17T20:00:12.655Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-17T20:00:12.655Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "name": "بارسرد ",
+ "icon": "juice",
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-17T20:00:57.634Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-17T20:00:57.634Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "name": "بارگرم",
+ "icon": "tea",
+ "index": 6,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-17T20:01:45.974Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-17T20:01:45.974Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "name": "بار گرم",
+ "icon": "tea",
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-11T13:47:46.437Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:06:41.390Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "name": "چای ها",
+ "icon": "Asset2012",
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:53:52.497Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:53:52.497Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "name": "دمنوش ها",
+ "icon": "Asset1912",
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:54:08.638Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:54:08.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "name": "شیک ها",
+ "icon": "Asset1112",
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:54:23.298Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:54:23.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "name": "بارسرد",
+ "icon": "Asset1212",
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:54:47.865Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:54:47.865Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "name": "برگرها ",
+ "icon": "Asset112",
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:55:12.574Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:55:12.574Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "name": "هات داگ ها",
+ "icon": "Asset1612",
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:55:41.511Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:55:41.511Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "name": "نوستالژی",
+ "icon": "hot-dog",
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:56:08.303Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:56:17.885Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:56:45.050Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:56:45.050Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "name": "سیب زمینی",
+ "icon": "Asset512",
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T11:57:04.223Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-15T11:57:04.223Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "name": "نوشیدنی های گرم بر پایه قهوه",
+ "icon": "Asset212",
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T07:40:05.126Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:21:48.971Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "Asset2012",
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:24:34.179Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:24:34.179Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "name": "دمنوش ها",
+ "icon": "Asset612",
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:25:40.416Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:25:40.416Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661952b045700b006108c839"
+ },
+ "name": "نوشیدنی های سر بر پایه قهوه",
+ "icon": "Asset712",
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:26:40.120Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:26:40.120Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661952f345700b006108c845"
+ },
+ "name": "ماکتیل",
+ "icon": "Asset1212",
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:27:47.306Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:27:47.306Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "name": "چای",
+ "icon": "tea-pot",
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:28:24.317Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:28:24.317Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:49:41.653Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:49:41.653Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "name": "ایرانی",
+ "icon": "Asset912",
+ "index": 6,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-23T16:21:13.278Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:50:41.781Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "name": "پیتزا",
+ "icon": "Asset2212",
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:33:07.900Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:33:07.900Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "name": "برگر",
+ "icon": "Asset112",
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:33:39.949Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:33:39.949Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f1ca7d6ac2006228224e"
+ },
+ "name": "ساندویچ",
+ "icon": "Asset1612",
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:37:14.717Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:37:14.717Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "name": "ساندویچ نوستالژی",
+ "icon": "Asset1612",
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:37:50.205Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:37:50.205Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f2047d6ac20062282260"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 12,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:38:12.852Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:38:12.852Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "name": "سیب زمینی",
+ "icon": "Asset512",
+ "index": 13,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:38:40.139Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:38:40.139Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9ce07d6ac200622864dc"
+ },
+ "name": "پنه",
+ "icon": "Asset1312",
+ "index": 14,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:11:44.745Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:11:44.745Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663a58217d6ac20062299ee4"
+ },
+ "name": "شربت و عرقیجات",
+ "icon": "soft-drinks",
+ "index": 14,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-05-07T16:34:41.632Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:10:32.917Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 19,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T13:59:08.642Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T13:59:08.642Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f7a717d6ac200622a0833"
+ },
+ "name": "خوراک",
+ "icon": "Asset1312",
+ "index": 22,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T14:02:25.371Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T14:02:25.371Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f7b2c7d6ac200622a0843"
+ },
+ "name": "پیده",
+ "icon": "restaurant",
+ "index": 20,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T14:05:32.834Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T14:05:32.834Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f7efc7d6ac200622a08c2"
+ },
+ "name": "شیرینی",
+ "icon": "cup-cake",
+ "index": 25,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T14:21:48.462Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T14:21:48.462Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "name": "استیک ها",
+ "icon": "Asset1012",
+ "index": 15,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T14:30:12.980Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T14:30:12.980Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 16,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T14:37:18.784Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T14:37:18.784Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "name": "پیتزا آمریکایی",
+ "icon": "Asset2212",
+ "index": 11,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:07:21.104Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:08:31.587Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-16T15:29:36.689Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T15:29:36.689Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "name": "غذای ایرانی",
+ "icon": "Asset312",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T13:59:05.121Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T13:59:05.121Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "name": "باربیکیو",
+ "icon": "Asset912",
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:30:34.129Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:30:34.129Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667865cc7d6ac200622ec08b"
+ },
+ "name": "سالاد ",
+ "icon": "Asset1512",
+ "index": 12,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-06-23T18:13:32.884Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-23T18:13:32.884Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "name": "غذای ایرانی",
+ "icon": "Asset912",
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-14T13:27:16.688Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:22:03.900Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "name": "پیتزا آمریکایی",
+ "icon": "pizza",
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:23:39.535Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:27:04.227Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0034e136cc1007047cd44"
+ },
+ "name": "پیتزا ایتالیایی",
+ "icon": "Asset2212",
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:23:58.296Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:27:23.276Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "name": "برگر",
+ "icon": "Asset112",
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:24:52.704Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:24:52.704Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a003b5136cc1007047cd66"
+ },
+ "name": "خوراک",
+ "icon": "soup-bowl",
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:25:41.973Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:25:41.973Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a003fd136cc1007047cd72"
+ },
+ "name": "پیده",
+ "icon": "Asset1712",
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:26:53.113Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:26:53.113Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0043b136cc1007047cdaa"
+ },
+ "name": "سوخاری",
+ "icon": "111",
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:27:55.615Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:27:55.615Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00458136cc1007047cdb6"
+ },
+ "name": "استیک",
+ "icon": "Asset1012",
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:28:24.659Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:28:24.659Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00491136cc1007047cdc2"
+ },
+ "name": "پاستا",
+ "icon": "Asset1312",
+ "index": 10,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:29:21.306Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:29:21.306Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "name": "پیش غذا",
+ "icon": "Asset512",
+ "index": 11,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:30:30.220Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:37:24.950Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 12,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:31:51.332Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:31:51.332Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "name": "نوشیدنی های بر پایه اسپرسو",
+ "icon": "Asset212",
+ "index": 13,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:34:07.518Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:34:07.518Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a005d2136cc1007047ce11"
+ },
+ "name": "قهوه های دمی",
+ "icon": "Asset212",
+ "index": 14,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:34:42.774Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:34:42.774Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "name": "قهوه های سرد",
+ "icon": "Asset712",
+ "index": 15,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:35:02.998Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:35:09.909Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "name": "چای و دمنوش ",
+ "icon": "Asset2012",
+ "index": 16,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:35:47.667Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:35:47.667Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00636136cc1007047ce4a"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "tea",
+ "index": 17,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:36:22.913Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:36:22.913Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "name": "موکتل و آب میوه ها",
+ "icon": "Asset1212",
+ "index": 18,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:37:15.430Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:37:15.430Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a006a2136cc1007047ce68"
+ },
+ "name": "دسر",
+ "icon": "cup-cake",
+ "index": 19,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:38:10.298Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:38:10.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "name": "شیک ",
+ "icon": "Asset1112",
+ "index": 21,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:41:17.756Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:41:17.756Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00794136cc1007047ceb0"
+ },
+ "name": "بستنی",
+ "icon": "Asset812",
+ "index": 22,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:42:12.098Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T19:42:12.098Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "name": "شربت",
+ "icon": "juice",
+ "index": 23,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:24:19.125Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:24:19.125Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66ec5758f7ba01006213570b"
+ },
+ "name": "اسموتی بار",
+ "icon": "Asset1112",
+ "index": 11,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:54:48.954Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:34:42.194Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66eec765f7ba010062139d62"
+ },
+ "name": "چاکلت بار",
+ "icon": "Asset212",
+ "index": 19,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:17:25.975Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-21T13:35:27.844Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "671ca191c3c0100063e4d1fd"
+ },
+ "name": "دسر",
+ "icon": "cola",
+ "index": 0,
+ "storeId": {
+ "$oid": "671c9c58c3c0100063e4d1a9"
+ },
+ "created_at": {
+ "$date": "2024-10-26T08:00:17.573Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-26T08:00:17.573Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T06:51:48.596Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-16T19:31:32.783Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6730582dc3c0100063e6bc6e"
+ },
+ "name": "بستنی ویژه",
+ "icon": "Asset812",
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T06:52:29.445Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T06:52:29.445Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "name": "دسر",
+ "icon": "cup-cake",
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T06:55:01.176Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-16T19:31:51.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "name": "اسموتی",
+ "icon": "Asset1212",
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T06:56:30.215Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T06:56:30.215Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "name": "آیس کافی",
+ "icon": "Asset712",
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T06:56:56.808Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T06:56:56.808Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "name": "قهوه",
+ "icon": "Asset212",
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:43:01.406Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:43:58.452Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "name": "نوشیدنی های گرم",
+ "icon": "Asset212",
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:45:08.565Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:45:08.565Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "name": "دمنوش",
+ "icon": "Asset612",
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:45:24.441Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:45:24.441Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "name": "آیس بستنی",
+ "icon": "ice-cream-alt",
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:46:46.367Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:46:46.367Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "name": "ویتامینه",
+ "icon": "Asset1112",
+ "index": 10,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:47:09.215Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:48:33.168Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6730651dc3c0100063e6bf88"
+ },
+ "name": "آبمیوه طبیعی",
+ "icon": "juice",
+ "index": 11,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:47:41.968Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-10T07:47:41.968Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "name": "دونات اسپشیال ",
+ "icon": "cup-cake",
+ "index": 12,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:16:42.609Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-14T20:28:23.661Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "name": "دونات آرت",
+ "icon": "cup-cake",
+ "index": 13,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:17:02.145Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:17:02.145Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731af7fc3c0100063e6de9e"
+ },
+ "name": "دونات فانتزی",
+ "icon": "cup-cake",
+ "index": 14,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:17:19.257Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:17:19.257Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "name": "دونات جنرال",
+ "icon": "cup-cake",
+ "index": 15,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:17:38.133Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:17:38.133Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "name": "رست نات",
+ "icon": "cup-cake",
+ "index": 16,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:18:55.166Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:18:55.166Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "name": "برلینر",
+ "icon": "cup-cake",
+ "index": 17,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:19:16.107Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:19:16.107Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "name": "دونات اسپال",
+ "icon": "cup-cake",
+ "index": 18,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:19:39.436Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:19:39.436Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "name": "دونات لقمه ای ",
+ "icon": "cup-cake",
+ "index": 19,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:19:54.805Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-14T20:00:41.671Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b030c3c0100063e6dee6"
+ },
+ "name": "دونات لقمه ای",
+ "icon": "cup-cake",
+ "index": 20,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:20:16.505Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T23:45:52.154Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "name": "دونات ناتس",
+ "icon": "cup-cake",
+ "index": 21,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:20:36.714Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-11T07:20:36.714Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "name": "پیتزا آمریکایی",
+ "icon": "Asset2212",
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:15:10.719Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:43:19.668Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "name": "ﺑﺮ\u0000گرﻫﺎ",
+ "icon": "Asset112",
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:15:39.937Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:43:50.632Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333909c3c0100063e706f7"
+ },
+ "name": "پاستاها",
+ "icon": "Asset1312",
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:16:25.879Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:44:15.245Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "name": "پیش غذا",
+ "icon": "Asset1512",
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:16:56.518Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:44:45.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "name": "نوشیدنی سرد آماده",
+ "icon": "fast-food",
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:17:31.947Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:46:20.089Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset2012",
+ "index": 17,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:17:56.363Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:44:33.443Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "name": "قهوه",
+ "icon": "Asset212",
+ "index": 18,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:18:27.689Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:45:20.357Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673339afc3c0100063e7074b"
+ },
+ "name": "نوشیدنی های سرد",
+ "icon": "juice",
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:19:11.453Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T12:13:01.971Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "name": "نوشیدنی های سرد بر پایه قهوه",
+ "icon": "Asset712",
+ "index": 16,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:20:04.563Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:46:09.384Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "name": "نوشیدنی های طبیعی با بستنی",
+ "icon": "Asset1112",
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:20:52.046Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-12T11:20:52.046Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "name": "ﻧﻮﺷﯿﺪﻧﯽ ﻫﺎ ﺑﺮ ﭘﺎﯾﻪ ﺷﯿﺮ",
+ "icon": "soft-drinks",
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:21:20.567Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-12T11:21:20.567Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "name": "شیک ﻫﺎ و آﯾﺲ پک ها",
+ "icon": "Asset1112",
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:21:55.482Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-12T11:21:55.482Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "name": "آﺑﻤﯿﻮه ﻫﺎی ﻃﺒﯿﻌﯽ",
+ "icon": "juice",
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:27:59.747Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-12T11:27:59.747Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "name": "آﺑﻤﯿﻮه ﻫﺎی ترکیبی",
+ "icon": "juice",
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:30:01.206Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-12T11:30:01.206Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67388c44c3c0100063e7b31a"
+ },
+ "name": "صبحانه",
+ "icon": "culinary",
+ "index": 22,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T12:12:52.137Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-16T12:12:52.137Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d6d7c3c0100063e7d422"
+ },
+ "name": "افزودنی ها",
+ "icon": "soft-drinks",
+ "index": 15,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T11:43:19.646Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:43:19.646Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da3fbc3c0100063e83a7a"
+ },
+ "name": "کیک ها ",
+ "icon": "cup-cake",
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T08:55:23.475Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:45:40.998Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "name": "خوراک ها",
+ "icon": "Asset912",
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:10:30.650Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:42:30.100Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673db4bac3c0100063e83ef2"
+ },
+ "name": "اسنک و میان وعده",
+ "icon": "Asset412",
+ "index": 33,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-20T10:06:50.927Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-20T10:12:13.535Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "name": "غذاهای چلویی",
+ "icon": "Asset912",
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T10:55:32.446Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-25T11:41:59.750Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673e2e4ec3c0100063e85693"
+ },
+ "name": "ساندویچ سرد",
+ "icon": "Asset1612",
+ "index": 7,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-11-20T18:45:34.160Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:41:18.352Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "name": "بر پایه اسپرسو",
+ "icon": "tea",
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-12-22T19:46:48.460Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:37:24.604Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "name": "ماچا",
+ "icon": "Asset612",
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T17:43:43.810Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:38:44.516Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "name": "بدون اسپرسو",
+ "icon": "tea",
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T17:45:06.718Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:37:01.089Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset2012",
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T17:45:53.149Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:40:27.707Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "name": "شیک و اسموتی",
+ "icon": "Asset1112",
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T17:46:22.753Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:40:40.653Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6786fbfaa4463c0057e4f482"
+ },
+ "name": "تست",
+ "icon": "burger",
+ "index": 0,
+ "storeId": {
+ "$oid": "6786f8aba4463c0057e4f42d"
+ },
+ "created_at": {
+ "$date": "2025-01-15T00:06:18.928Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-15T00:06:18.928Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "name": "قهوه گرم",
+ "icon": "tea",
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:50:46.967Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:13:19.535Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "name": "قهوه سرد",
+ "icon": "Asset712",
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:52:37.401Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:13:45.949Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "name": "قهوه دمی",
+ "icon": "Asset212",
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:53:23.754Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:14:08.828Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "name": "ماکتل",
+ "icon": "juice",
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:54:34.165Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:14:22.107Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ea56a4463c0057e68d43"
+ },
+ "name": "اسموتی",
+ "icon": "Asset1212",
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:55:02.784Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:14:36.256Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "coffee-cup",
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:56:16.011Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:13:31.556Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "name": "ساندویچ گرم",
+ "icon": "hot-dog",
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:57:26.915Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-26T12:14:08.862Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795eb06a4463c0057e68d76"
+ },
+ "name": "ساندویچ سرد",
+ "icon": "Asset1612",
+ "index": 13,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T07:57:58.692Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-26T12:14:34.303Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67960d18a4463c0057e693be"
+ },
+ "name": "سالاد و پیش غذا",
+ "icon": "Asset1512",
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T10:23:20.435Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:47:07.008Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset612",
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:00:22.719Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-26T11:00:22.719Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "name": "دسر",
+ "icon": "Asset1412",
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:11:18.595Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-26T11:11:18.595Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6796cfa4a4463c0057e6ab4c"
+ },
+ "name": "دونات دوبی ",
+ "icon": "Asset1412",
+ "index": 23,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-01-27T00:13:24.231Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-27T00:13:24.231Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "name": "نوشیدنی گرم بر پایه اسپرسو",
+ "icon": "tea",
+ "index": 1,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-28T14:26:02.506Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:40:28.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5a53bd2ce20057147d8b"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset2012",
+ "index": 2,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:41:55.148Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:41:55.148Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5ab0bd2ce20057147da6"
+ },
+ "name": "نوشیدنی سرد بر پایه اسپرسو",
+ "icon": "Asset712",
+ "index": 3,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:43:28.491Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:43:28.491Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5adcbd2ce20057147db5"
+ },
+ "name": "دمنوش و چای",
+ "icon": "tea-pot",
+ "index": 4,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:44:12.079Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:44:12.079Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5b01bd2ce20057147dbe"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 5,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:44:49.841Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:44:49.841Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5b42bd2ce20057147dcd"
+ },
+ "name": "ماکتل",
+ "icon": "Asset1212",
+ "index": 6,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:45:54.280Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:45:54.280Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5bbebd2ce20057147ddf"
+ },
+ "name": "اسموتی",
+ "icon": "juice",
+ "index": 7,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:47:58.545Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:47:58.545Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5c40bd2ce20057147de8"
+ },
+ "name": "کیک و دسر",
+ "icon": "Asset1412",
+ "index": 8,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T16:50:08.934Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:50:08.934Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "name": "صبحانه",
+ "icon": "Asset412",
+ "index": 14,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:24:27.978Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-30T10:24:27.978Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "name": "اسپرسو بار",
+ "icon": "Asset212",
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-01-30T13:43:51.129Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T07:32:43.498Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "name": "بارسرد بر پایه اسپرسو",
+ "icon": "soft-drinks",
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:52:06.589Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T07:52:06.589Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "name": "صبحانه",
+ "icon": "Asset412",
+ "index": 7,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:11:49.554Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T08:11:49.554Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c6b9bd2ce2005715971a"
+ },
+ "name": "پیش غذا",
+ "icon": "french-fries",
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:39:21.737Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T15:48:40.139Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "name": "دمنوش ها",
+ "icon": "Asset2012",
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:01:39.603Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T09:01:39.603Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "name": "بارسرد",
+ "icon": "Asset1212",
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T12:39:00.458Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T12:39:00.458Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:06:45.835Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T13:58:10.047Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "name": "غذا اصلی",
+ "icon": "Asset2112",
+ "index": 8,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:31:32.862Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T14:31:32.862Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "name": "بار گرم بدون کافئین ",
+ "icon": "tea",
+ "index": 10,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:05:21.051Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-16T21:05:21.051Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "name": "قهوه ها",
+ "icon": "Asset212",
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T18:43:44.198Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T12:52:39.928Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "name": "پیستری",
+ "icon": "Asset1412",
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:28:12.215Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T12:53:57.400Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "name": "چای و دمنوش",
+ "icon": "Asset612",
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:36:22.500Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T12:56:18.250Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "name": "نوشیدنی سرد",
+ "icon": "Asset712",
+ "index": 12,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:36:47.154Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:05:35.878Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "name": "ماکتل",
+ "icon": "Asset1212",
+ "index": 11,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:37:10.637Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:05:20.543Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "name": "بستنی",
+ "icon": "Asset1112",
+ "index": 10,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:37:28.497Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:04:54.160Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "name": "نوشیدنی گرم",
+ "icon": "Asset212",
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:37:54.745Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:33:44.789Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99dbf536282006224dc58"
+ },
+ "name": "ایتم های بر پایه شیر",
+ "icon": "Asset212",
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:38:39.894Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:01:04.036Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99de8536282006224dc82"
+ },
+ "name": "بیکری",
+ "icon": "Asset1412",
+ "index": 7,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:39:20.752Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:03:57.546Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99e00536282006224dc91"
+ },
+ "name": "سانویچ سرد",
+ "icon": "Asset1612",
+ "index": 8,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:39:44.508Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:04:15.616Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99e11536282006224dc9a"
+ },
+ "name": "سالاد",
+ "icon": "Asset1512",
+ "index": 9,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:40:01.566Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:04:35.523Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e99e84536282006224dcde"
+ },
+ "name": "اب",
+ "icon": "Asset1212",
+ "index": 13,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T19:41:56.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:05:51.413Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faae25f43a0a007b479eaa"
+ },
+ "name": "vip drink",
+ "icon": "juice",
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:17:09.619Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:17:09.619Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67fc02bbc4a0d20062ba1e6c"
+ },
+ "name": "کیک",
+ "icon": "Asset1412",
+ "index": 11,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-04-13T18:30:19.637Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:30:19.637Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "680816f77383a10062ca4ba5"
+ },
+ "name": "
",
+ "icon": "chicken-fry",
+ "index": 1,
+ "storeId": {
+ "$oid": "678922c2a4463c0057e52bde"
+ },
+ "created_at": {
+ "$date": "2025-04-22T22:23:51.883Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-22T22:23:51.883Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "name": "پاستاها",
+ "icon": "Asset1312",
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-10T05:47:33.064Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-10T05:47:33.064Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684ad2a6f114460057d65be3"
+ },
+ "name": "شیک",
+ "icon": "Asset1112",
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-06-12T13:14:14.750Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T12:16:03.103Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684be3cff114460057d679ed"
+ },
+ "name": "Menu star (Only for special days)",
+ "icon": "Asset1312",
+ "index": 2,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:39:43.492Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T08:39:43.492Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "name": "تاپینگ بار",
+ "icon": "Asset1512",
+ "index": 3,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:40:29.347Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T08:40:29.347Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "name": "چیاباتا(سندویچ)",
+ "icon": "Asset1612",
+ "index": 4,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:41:12.455Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T08:41:12.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "name": "نوشیدنی",
+ "icon": "Asset1212",
+ "index": 5,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:41:43.067Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T08:41:43.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "name": "آش ها",
+ "icon": "Asset1312",
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T09:07:56.708Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T09:07:56.708Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "name": "غذاهای اصلی",
+ "icon": "Asset2112",
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:29:13.445Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T11:29:13.445Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "name": "غذاهای ویژه در طول هفته",
+ "icon": "Asset312",
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:29:44.413Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T11:29:44.413Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "name": "صبحانه ",
+ "icon": "Asset412",
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:30:11.039Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T11:30:11.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "name": "نوشیدنی ها",
+ "icon": "Asset1912",
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:32:50.138Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T11:32:50.138Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "name": "پیش غذا",
+ "icon": "french-fries",
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:32:57.638Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T15:32:57.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68615cf876ec130012b3a953"
+ },
+ "name": "دسرها",
+ "icon": "Asset1412",
+ "index": 7,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:34:16.056Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T15:34:16.056Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "name": "اسپرسو بار",
+ "icon": "Asset212",
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:06:11.534Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:06:11.534Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "name": "نوشیدنی سرد بر پایه قهوه",
+ "icon": "Asset712",
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:07:27.059Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:07:27.059Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "name": "ساندویچ ",
+ "icon": "hot-dog",
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:31:24.722Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:31:24.722Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c9154003c3c700124a2481"
+ },
+ "name": "سرویس اضافه",
+ "icon": "333",
+ "index": 8,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-09-16T07:44:00.097Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T07:44:00.097Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "name": "ماکتیل",
+ "icon": "Asset1212",
+ "index": 12,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:39:07.698Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T11:10:00.073Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "name": "اضافه بار",
+ "icon": "Asset812",
+ "index": 15,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:24:29.331Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:24:29.331Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "name": "پیتزا",
+ "icon": "Asset2212",
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T12:49:29.237Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T12:49:29.237Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "name": "منوی اقتصادی ",
+ "icon": "cup-cake",
+ "index": 24,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:00:17.810Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:00:17.810Z"
+ },
+ "__v": 0
+}]
\ No newline at end of file
diff --git a/dump/dmenu_db.foods.json b/dump/dmenu_db.foods.json
new file mode 100644
index 0000000..a03c917
--- /dev/null
+++ b/dump/dmenu_db.foods.json
@@ -0,0 +1,82062 @@
+[{
+ "_id": {
+ "$oid": "61ac62cf49a68c1ea8e7b298"
+ },
+ "price": 5050000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بیف استراگانف .. beef stroganoff ",
+ "description": "فیله گوساله / سس سفید / قارچ و سیب زمینی/ پنیر پارمزان..veal fillet/ mayonnaise sauce/mushroom/potato/parmesan cheese ",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:57:19.400Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:20:06.742Z"
+ },
+ "__v": 0,
+ "image": "food_1714292844747.png",
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac62ed49a68c1ea8e7b2b7"
+ },
+ "price": 4950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چیکن استراگانف .. chicken stroganoff ",
+ "description": "فیله مرغ/ سس سفید / قارچ و سیب زمینی/ پنیر پارمزان..chicken fillet/ mayonnaise sauce/mushroom/potato/parmesan cheese ",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:57:49.127Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:19:45.590Z"
+ },
+ "__v": 0,
+ "image": "food_1714291139700.png",
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac632549a68c1ea8e7b2fb"
+ },
+ "price": 4650000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپاگتی گوشت .. meat spaghetti ",
+ "description": "اســـپاگتی /فیله گوســـاله/گوجه گیلاسی/قارچ/سس مخصوص آلفردو/ پنیر پارمزان..spaghetti/veal fillet/tomato/mushroom/alfredo special sauce/parmesan cheese",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T06:58:45.632Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:19:19.199Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715716176915.png"
+},
+{
+ "_id": {
+ "$oid": "61ac637449a68c1ea8e7b33f"
+ },
+ "price": 4550000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنه میلانو .. Milano Pasta",
+ "description": "پنه ریگاته/فیله مرغ/فیله گوســـاله/گوجه گیلاسی/قارچ/ســـس مخصوص آلفردو/ پنیر پارمزان..rigate pasta/chicken fillet/mushroom/tomato/alfredo special sauce/parmesan cheese",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:00:04.211Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:18:28.520Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1735148231197.png"
+},
+{
+ "_id": {
+ "$oid": "61ac639d49a68c1ea8e7b363"
+ },
+ "price": 4150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنه آلفردو .. Alfredo pasta",
+ "description": "پنـــه ریگاته/فیلـــه مرغ/قـــارچ/ گوجه گیلاســـی /ســـس مخصوص آلفردو/ پنیر پارمزان..rigate pasta/chicken fillet/mushroom/tomato/alfredo special sauce/parmesan cheese",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:00:45.349Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:18:07.000Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715716115154.png"
+},
+{
+ "_id": {
+ "$oid": "61ac659849a68c1ea8e7b460"
+ },
+ "price": 4150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپاگتی پستو .. pesto spaghetti ",
+ "description": "فیله مرغ/اسپاگتی/سس پستو/قارچ/پنیرپارمزان.. chicken fillet/spaghetti/pesto sauce/parmesan cheese/mushroom",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:09:12.133Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:17:27.438Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715715922343.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6aa35b008d6934770945"
+ },
+ "price": 6150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چانو.. Chano ",
+ "description": "پنیر/فیله گوساله طعم دارشده/ارگانو.سیر cheese/veal fillet/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:30:43.601Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:28:18.788Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714290662409.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6acb5b008d6934770954"
+ },
+ "price": 6600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "مازراتی.. Pulled beef ",
+ "description": "پنیر/مغز ران گوساله طعم دار شده/قارچ/ فلفل دلمه ای/گوجه/ارگانو..cheese/calf thigh marrow/mushroom/sweet pepper/olive/tomato/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:31:23.921Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:27:26.519Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291733978.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6ae75b008d6934770961"
+ },
+ "price": 5500000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کاپری چیوسا.. Capricciosa",
+ "description": "پنیر/ژامبـــون گوشـــت/قارچ/فلفل دلمـــه ای/ارگانو..cheese/ham meat/mushroom/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:31:51.067Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:27:03.523Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291580847.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6b155b008d693477096e"
+ },
+ "price": 5600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیسیلی(Hot).. Sicily ",
+ "description": "پنیر/فیلـــه مـــرغ گریـــل شـــده طعـــم دار تند/قارچ/فلفل دلمه ای /ارگانو/سس بار بیکیو..cheese/hot chicken fillet grilled/mushroom/sweet pepper/organo/Bar.B.Q sauce",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:32:37.399Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:26:41.101Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714292109999.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6b5f5b008d693477097b"
+ },
+ "price": 5500000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پپرونی (Hot).. Pepperoni ",
+ "description": "پنیر /پپرونی/ارگانو/هالوپینو..cheese/pepperoni/olive/organo/jalopino",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:33:51.497Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:25:52.788Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713707400167.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6b765b008d6934770988"
+ },
+ "price": 4400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وجتریین.. Vegetarian ",
+ "description": "پنیر/سبزیجات تازه فصل/صیفی جات تازه فصل/ارگانو..cheese/vegetables/summer crops/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:34:14.749Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:25:28.615Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714292678356.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6b955b008d6934770995"
+ },
+ "price": 4400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "مارگاریتا.. Margherita ",
+ "description": "پنیر/گوجه /ریحان/ارگانو..cheese/tomato/basil/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:34:45.351Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:25:03.444Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291688802.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6bbd5b008d69347709a2"
+ },
+ "price": 6100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوارترپیتزا.. Quarter pizza ",
+ "description": "۱/۴ کاپری / ۱/۴ سیسیلی/۱/۴ پپرونی/۱/۴ چانو..1,4capri/1,4sicily/1,4pepperoni/1,4chano",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:35:25.676Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:24:38.097Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291863631.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6bd95b008d69347709af"
+ },
+ "price": 5700000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بیف پستو.. Beef pesto",
+ "description": "پنیـــر/فیلـــه گوســـاله/پیاز/فلفل دلمـــه ای/سس پستو/ریحان..cheese/veal fillet/onion/sweet pepper/olive/pesto sauce/basil",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:35:53.029Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:24:12.429Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291001069.png"
+},
+{
+ "_id": {
+ "$oid": "61ac6f8da4f3d5cd60e059bb"
+ },
+ "price": 5610000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بولونز.. Bolognese ",
+ "description": "پنیـــر/گوشـــت چـــرخ کـــرده طعـــم دار شده/قارچ/فلفل دلمه ای/ارگانو..cheese/mince meat/mushroom/sweet pepper/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:51:41.171Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:23:51.288Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac6fb6a4f3d5cd60e059c8"
+ },
+ "price": 6050000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "مگابیف اند چیکن.. Beef & chicken ",
+ "description": "پنیـــر/چیکـــن استریپس/گوشـــت چـــرخ کرده/قارچ/پیاز/فلفل دلمه ای/ارگانو..cheese/chicken strips/mince meat/mushroom/onion/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:52:22.641Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:23:12.781Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714290596848.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7000a4f3d5cd60e059f2"
+ },
+ "price": 9200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "فیله مینیون .. fillett beef& mushroom sauce ",
+ "description": "فیلـــه گوســـاله /ســـس قارچ/دورچین ســـبزیجات و صیفی جات بخارپز )کاملا ترد و بدون چربی(سیب زمینی تنوری..veal fillet/mushroom sauce/steamed vegetables/steamed summer crops/roast potatoes/",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:53:36.003Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:52:31.771Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715701889899.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7020a4f3d5cd60e059ff"
+ },
+ "price": 9200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسموکی .. smoked beef fillet & mushrooms sauce ",
+ "description": "فیله گوساله دودی/سس قارچ/دورچین سبزیجات و صیفی جات بخارپز )کاملا تردو بدون چربی(سیب زمینی تنوری ..smoked veal fillet/mushroom sauce/steamed vegetables/steamed summer crops/roast potatoes ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T07:54:08.419Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:52:13.631Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291822159.png"
+},
+{
+ "_id": {
+ "$oid": "61ac718ba4f3d5cd60e05a7e"
+ },
+ "price": 4800000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "خورا ک اسپانیایی.. Spain food",
+ "description": "فیله گوساله تفت داده شده/مرغ تفت داده شده/پیاز ژولین/فلفل دلمه ای /قارچ / کنجد ذرت/سس مخصوص سرآشپز..veal fillet/chicken/julienne onion/sweet pepper/mushroom/sesame/corn/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5fcb26d2e0e4fbd9b409"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:00:11.791Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:53:12.544Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773216671.png"
+},
+{
+ "_id": {
+ "$oid": "61ac71c5a4f3d5cd60e05aa1"
+ },
+ "price": 4320000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بشقاب سبزیجات.. vegetarian dish",
+ "description": "انـــواع ســـبزیجات تـــازه و صیفـــی جـــات تـــازه فصـــل بخارپز/پـــوره سیب زمینی..fresh steamed vegetables/fresh steamed summer crops/mashed potatoes/",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5fcb26d2e0e4fbd9b409"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:01:09.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:52:52.532Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714293582193.png"
+},
+{
+ "_id": {
+ "$oid": "61ac72b3a4f3d5cd60e05aca"
+ },
+ "price": 5750000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دبل برگر..double burger ",
+ "description": "گوشـــت خالص/پنیـــر گودا/پنیـــر کاراملی/گوجه/خیارشور/ کاهو/سیب زمینی سرخ شده..pure meat/gouda cheese/caramely cheese/tomato/pickled cucumber/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:05:07.788Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:36:55.526Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291899865.png"
+},
+{
+ "_id": {
+ "$oid": "61ac72cba4f3d5cd60e05ad7"
+ },
+ "price": 4420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چیز برگر ..cheese burger",
+ "description": "گوشـــت خالـــص / پنیـــر گودا/پنیـــر کاراملی/گوجه/خیارشور/ کاهو/سیب زمینی سرخ شده..pure meat/gouda cheese/ caramely cheese/tomato/pickled cucumber/lettuce/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:05:31.742Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:36:25.651Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706018252.png"
+},
+{
+ "_id": {
+ "$oid": "61ac72eea4f3d5cd60e05aec"
+ },
+ "price": 4320000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "برگر کلاسیک ..classic burger",
+ "description": "گوشت خالص /گوجه/خیارشور/ کاهو/سیب زمینی سرخ شده..pure meat/tomato/pickled cucumber/lettuce/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:06:06.200Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:36:04.719Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715753283656.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7312a4f3d5cd60e05af9"
+ },
+ "price": 4520000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماشروم برگر .. mushroom burgers ",
+ "description": "گوشت خالص/خیارشور/سس مخصوص قارچ/سیب زمینی سرخ شده..pure meat/pickled cucumber/special mushroom sauce/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:06:42.431Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:35:43.587Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715752985770.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7331a4f3d5cd60e05b06"
+ },
+ "price": 3900000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "زینگر برگر .. zinger burger",
+ "description": "فیله مرغ سوخاری استریپس/کاهو/خیارشور/پنیر گودا/سیب زمینی سرخ شده..stripped fried chicken fillet/lettuce/pickled cucumber/gouda cheese/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:07:13.709Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:35:16.216Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706335139.png"
+},
+{
+ "_id": {
+ "$oid": "61ac736ea4f3d5cd60e05b20"
+ },
+ "price": 4950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "5 ستاره .. star burger: beef & chicken ",
+ "description": "گوشـــت خالص/فیلـــه مـــرغ گریـــل شـــده/پنیر گودا/گوجه/خیارشور/کاهو/سیب زمینی سرخ شده..pure meat/grilled chicken fillet/gouda cheese/tomato/pickled cucumber/lettuce/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:08:14.480Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:34:54.832Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291935378.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7385a4f3d5cd60e05b33"
+ },
+ "price": 4250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنینی مرغ با سس پستو .. chicken pesto panini ",
+ "description": "فیلـــه مرغ مـــزه دار گریل/سس پستو/ کاهو/گوجه/خیارشور/ســـیب زمینی سرخ شده..grilled chicken fillet/pesto sauce/lettuce/tomato/pickled cucumber/french fries ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:08:37.275Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:34:33.555Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713779020113.png"
+},
+{
+ "_id": {
+ "$oid": "61ac73a6a4f3d5cd60e05b40"
+ },
+ "price": 4920000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنینی بیف .. beef fillet panini",
+ "description": "فیله گوساله مزه دار شده / پنیر گودا/کاهو/گوجه/خیارشور/سیب زمینی سرخ شده..veal fillet/gouda cheese/tomato/pickled cucumber/french fries/lettuce",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:09:10.348Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:34:08.573Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715752107592.png"
+},
+{
+ "_id": {
+ "$oid": "61ac73c2a4f3d5cd60e05b4d"
+ },
+ "price": 5160000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "فیلا دلفیا ..Philadelphia sandwich ",
+ "description": "فیلـــه گوســـاله و فیله مـــرغ طعـــم دار شـــده/پنیر گودا/ســـس مخصوص/فلفـــل دلمـــه ای/ پیـــاز/ قـــارچ/ ســـیب زمینـــی ســـرخ شده/سس خردل با نان چاپاتا..veal fillet/chicken fillet/ gouda cheese/special sauce/sweet pepper/onion/mushroom/french fries/mustard/chapata bread ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:09:38.991Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:33:40.853Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713772958621.png"
+},
+{
+ "_id": {
+ "$oid": "61ac73e2a4f3d5cd60e05b5a"
+ },
+ "price": 5420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنینی رست بیف .. roast beef panini ",
+ "description": "مغز ران گوساله/پیاز و جعفری/قارچ/خیارشور/سیب زمینی سرخ شده..calf thigh marrow/onion/parsley/mushroom/pickled cucumber/french fries",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:10:10.547Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:33:14.575Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713779110050.png"
+},
+{
+ "_id": {
+ "$oid": "61ac740de442f524fe417bba"
+ },
+ "price": 4150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دوتکه:(نرمال)",
+ "description": "دوتکه ســـوخاری/ سیب زمینی سرخ کرده/نان بروتچن /سس های مخصوص..two slices fried/french fries/brutchen bread/special sauces",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:10:53.992Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:39:36.287Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713707054857.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7432e442f524fe417bea"
+ },
+ "price": 5150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سه تکه:(نرمال)",
+ "description": "سه تکه سوخاری/ همراه سیب زمینی سرخ کرده/نان بروتچن /سس های مخصوص..three slices fried/french fries/brutchen bread/special sauces",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:11:30.702Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:39:16.885Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713707048869.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7451e442f524fe417c16"
+ },
+ "price": 7100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنج تکه:(نرمال)",
+ "description": "پنج تکه سوخاری/سیب زمینی سرخ کرده/نان بروتچن /سس های مخصوص..five slices fried/french fries/brut Chen bread/special sauces",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:12:01.890Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:38:53.035Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713707039568.png"
+},
+{
+ "_id": {
+ "$oid": "61ac74b9e442f524fe417c23"
+ },
+ "price": 4370000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سه تکه فیله : (استریپس)",
+ "description": "سه فیله سوخاری/سیب زمینی سرخ کرده/نان بروتچن /سس های مخصوص..three fried fillet/french fries/britches bread/special sauces",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:13:45.110Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:38:33.867Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706975656.png"
+},
+{
+ "_id": {
+ "$oid": "61ac74ede442f524fe417c30"
+ },
+ "price": 5950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنج تکه فیله : (استریپس)",
+ "description": "پنج فیله سوخاری/سیب زمینی سرخ کرده/نان بروتچن /سس های مخصوص..five slices fried/french fries/ brutchen bread/special sauces",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:14:37.911Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:38:13.371Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706989835.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7515e442f524fe417c3d"
+ },
+ "price": 4700000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه کودکان",
+ "description": "چیکـــن اســـترپس بـــا نـــان بروتچـــن کوچـــک/دو عـــدد فیلـــه اســـترپس/قارچ سوخاری/ســـیب زمینـــی ســـرخ کـــرده/ ســـالاد کلم/سس مخصوص..one slices fried/ brutchen bread/two strips fillet/fried mushroom/french fries/ cabbage salad/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:15:17.023Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:37:49.586Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7531e442f524fe417c4d"
+ },
+ "price": 6380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سوخاری ویــــــژه",
+ "description": "یـــک تکـــه ســـوخاری /دو تکـــه فیله اســـتریپس/زینگر برگر/ســـیب زمینی سرخ کرده/ قارچ سوخاری/ سس مخصوص مخصوص ..one slice fried/two slices strips fillet/zinger burger/french fries/fried mushroom/ cabbage salad/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac602726d2e0e4fbd9b43f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:15:45.311Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:37:26.481Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7564e442f524fe417c5a"
+ },
+ "price": 3950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالاد سزار(مرغ گریل) .. Caesar salad",
+ "description": "کاهـــو رســـمی و پیچ/گوجـــه گیلاســـی/زیتون/نان کروتان/پنیـــر پارمزان/همراه با سس سزار..lettuce/tomato/olive/crotan bread/parmesan cheese/ Caesar sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:16:36.821Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:55:31.353Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715788350856.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7599e442f524fe417c67"
+ },
+ "price": 4050000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالاد سزار (فیله سوخار ی با دیپ چدار) .. Caesar salad/Fried chicken",
+ "description": "کاهـــو رســـمی و پیچ/گوجـــه گیلاســـی/زیتون/نان کروتان/پنیـــر پارمزان/همراه با سس سزار..lettuce/tomato/olive/crotan bread/parmesan cheese/ Caesar sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:17:29.441Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:54:56.299Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713772878324.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7630e442f524fe417c96"
+ },
+ "price": 3300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالاد فصل .. Iranian salad ",
+ "description": "کاهـــو رســـمی و پیـــچ /کلـــم قرمـــز /هویج/گوجـــه گیلاسی/زیتون/خیار/همراه با سس رنج..lettuce/red cabbage/ carrot/tomato/olive/cucumber/sis wrench",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:20:00.602Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:54:29.389Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715852971271.png"
+},
+{
+ "_id": {
+ "$oid": "61ac76aae442f524fe417cb0"
+ },
+ "price": 2550000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیب زمینی پنیر و قارچ .. Mushroom cheese potatoes",
+ "description": "سیب زمینی /قارچ/پنیر..potato/mushroom/cheese",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:22:02.857Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:01:47.573Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715934773791.png"
+},
+{
+ "_id": {
+ "$oid": "61ac76c7e442f524fe417cbd"
+ },
+ "price": 2750000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیب زمینی پنیرقارچ و ژامبون",
+ "description": "سیب زمینی/قارچ/ژامبون/پنیر..potato/mushroom/ham/cheese",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:22:31.108Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:01:23.056Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714290894911.png"
+},
+{
+ "_id": {
+ "$oid": "61ac76ede442f524fe417cd7"
+ },
+ "price": 3100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "نان سیر .. garlic bread",
+ "description": "گوجه گیلاسی، سس سیر، ذرت، پنیر پیتزا..tomato/garlic sauce/corn/pizza cheese ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:23:09.889Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:01:04.214Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773293238.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7710e442f524fe417ce4"
+ },
+ "price": 3250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "میکس ناچو و فیله سوخاری",
+ "description": "چیپس تورتیلا/تکه های فیله سوخاری/دیپ پنیر چدار..tortilla chips/fried fillet/cheddar dip cheese ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:23:44.391Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:00:33.524Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773138383.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7735e442f524fe417cf1"
+ },
+ "price": 2450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "قارچ سوخاری .. fried mushroom",
+ "description": "قارچ سوخاری / سس مخصوص..fried mushroom/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:24:21.481Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:58:51.021Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715934677455.png"
+},
+{
+ "_id": {
+ "$oid": "61ac774fe442f524fe417cfe"
+ },
+ "price": 3000000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "قارچ سوخاری پنیر",
+ "description": "قارچ سوخاری / پنیر/سیب زمینی/سس قارچ..fried mushroom/cheese/potato/mushroom sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:24:47.726Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:58:23.826Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773268030.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7768e442f524fe417d0b"
+ },
+ "price": 800000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لیموناد lemonade",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:25:12.952Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:36:28.192Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715791954744.png"
+},
+{
+ "_id": {
+ "$oid": "61ac777ce442f524fe417d18"
+ },
+ "price": 1100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پشن موهیتو passion fruit ",
+ "description": " پشن فروت نعناع اسپرایت و لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:25:32.286Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:35:54.251Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715791769702.png"
+},
+{
+ "_id": {
+ "$oid": "61ac778de442f524fe417d25"
+ },
+ "price": 900000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موهیتو کلاسیک mojito",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:25:49.862Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:33:04.711Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714291977244.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7809e442f524fe417d32"
+ },
+ "price": 1100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ردبری موهیتو redberry mojito",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:27:53.770Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:32:39.604Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1714293126185.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7823e442f524fe417d3f"
+ },
+ "price": 950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بلک موهیتو black mojito",
+ "description": "لیمو.نعنا.کوکاکولا",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:28:19.603Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:31:57.279Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715791641400.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7a10e442f524fe417e26"
+ },
+ "price": 440000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "نوشابه قوطی.. Coca-Cola/Fanta/Sprite",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:36:32.098Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-02T17:29:33.135Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715806193784.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7a1ee442f524fe417e33"
+ },
+ "price": 520000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماءالشعیر قوطی.. Lemon/Peach/Cactus/Tropical/Classic",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:36:46.736Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T11:29:57.045Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715806156688.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7a2ce442f524fe417e40"
+ },
+ "price": 110000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آب معدنی.. Mineral water",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:37:00.292Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-15T20:52:17.278Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715806335977.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7a3ee442f524fe417e4f"
+ },
+ "price": 490000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دوغ لیوانی.. Yoghurt",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:37:18.871Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-15T20:53:41.464Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715806418661.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7a99e442f524fe417e61"
+ },
+ "price": 4890000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه ژیوان(تک نفره).. Zhivan pizza ",
+ "description": "پنیر/ژامبون مرغ و گوشت/هات داگ/قارچ/فلفل دلمه ای/ارگانو..cheese/chicken & meat ham/hot dog/mushroom/olive/sweet pepper/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:38:49.143Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:32:41.254Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7ac6e442f524fe417e73"
+ },
+ "price": 6940000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه ژیوان(دو نفره).. Zhivan pizza ",
+ "description": "پنیر/ژامبون مرغ و گوشت/هات داگ/قارچ/فلفل دلمه ای/ارگانو..cheese/chicken & meat ham/hot dog/mushroom/olive/sweet pepper/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:39:34.328Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:32:06.125Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7b06e442f524fe417e80"
+ },
+ "price": 5690000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رست بیف(تک نفره).. Roast beef ",
+ "description": "پنیر/مغـــز ران گوســـاله مـــزه دار شـــده/قارچ /فلفل دلمه ای/ارگانو..cheese/calf thigh/marrow/mushroom/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:40:38.777Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:31:24.813Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7b29e442f524fe417e8d"
+ },
+ "price": 8330000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رست بیف(دو نفره).. Roast beef ",
+ "description": "پنیر/مغـــز ران گوســـاله مـــزه دار شـــده/قارچ /فلفل دلمه ای/ارگانو..cheese/calf thigh marrow/mushroom/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:41:13.673Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:31:14.868Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7b66e442f524fe417e9a"
+ },
+ "price": 4990000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپشیال(تک نفره).. Special ",
+ "description": "پنیر/ژامبون/کوکتل /قارچ/فلفل دلمه ای/ارگانو..cheese/ham/cocktail/mushroom/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:42:14.191Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:33:26.457Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706544776.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7b83e442f524fe417ea7"
+ },
+ "price": 7060000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپشیال(دو نفره).. Special ",
+ "description": "پنیر/ژامبون/کوکتل /قارچ/فلفل دلمه ای /ارگانو..cheese/ham/cocktail/mushroom/sweet pepper/olive/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:42:43.608Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:30:51.459Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706534918.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7baae442f524fe417eb4"
+ },
+ "price": 5140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وایت چیکن(تک نفره).. Chicken Alfredo ",
+ "description": "پنیر/مرغ مزه دار شده با خامه /قارچ/ارگانو/ذرت..cheese/chicken with cream/mushroom/organo/corn",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:43:22.260Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T09:45:38.574Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706184032.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7c74e442f524fe417f03"
+ },
+ "price": 7110000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وایت چیکن (دو نفره).. Chicken Alfredo ",
+ "description": "پنیر/مرغ مزه دار شده با خامه/قارچ/ارگانو/ذرت..cheese/chicken with cream/mushroom/organo/corn",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:46:44.786Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T09:43:14.398Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706161875.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7cc0e442f524fe417f14"
+ },
+ "price": 3940000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سبزیجات(تک نفره).. Vegetarian ",
+ "description": "پنیر/ انواع سبزیجات و صیفی جات تازه فصل..cheese/vegetables/summer crops",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:48:00.853Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:30:19.695Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773093656.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7d24e442f524fe417f2f"
+ },
+ "price": 5100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سبزیجات(دو نفره).. Vegetarian ",
+ "description": "پنیر/ انواع سبزیجات و صیفی جات تازه فصل..cheese/vegetables/summer crops",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:49:40.052Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:30:11.386Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713773039190.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7d4ae442f524fe417f3c"
+ },
+ "price": 4940000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پپرونی ژیوان(Hot)تک نفره.. Pepperoni ",
+ "description": "پنیر/پپرونی/هالوپینو/ارگانو/..cheese/pepperoni/jalopino/organo/olive",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:50:18.589Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:29:57.389Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706642707.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7d66e442f524fe417f49"
+ },
+ "price": 7120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پپرونی ژیوان(Hot)دو نفره.. Pepperoni ",
+ "description": "پنیر/پپرونی/هالوپینو/ارگانو/.cheese/pepperoni/jalopino/organo/olive",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:50:46.488Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:29:47.091Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1713706628691.png"
+},
+{
+ "_id": {
+ "$oid": "61ac7e67e442f524fe417f70"
+ },
+ "price": 5340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "میت اند مشروم(تک نفره).. Meat & mushroom ",
+ "description": "پنیر/گوشت چرخ کرده/قارچ/ فلفل دلمه ای/ پیاز/ ارگانو..cheese/mince meat/mushroom/sweet pepper/onion/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:55:03.050Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:25:30.392Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7e86e442f524fe417f7d"
+ },
+ "price": 7940000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "میت اند مشروم(دو نفره).. Meat & mushroom ",
+ "description": "پنیر/گوشت چرخ کرده/قارچ/ فلفل دلمه ای/ پیاز/ ارگانو..cheese/mince meat/mushroom/sweet pepper/onion/organo",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:55:34.986Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:29:32.156Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7ebee442f524fe417f8a"
+ },
+ "price": 4920000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالامی(تک نفره).. Salami ",
+ "description": "پنیر/ســـالامی/ فلفـــل دلمـــه ای/ ارگانو/قارچ..cheese/salami/sweet pepper/olive/organo/mushroom",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:56:30.759Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:29:20.839Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ac7ee9e442f524fe417fa5"
+ },
+ "price": 7060000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالامی(دو نفره).. Salami ",
+ "description": "پنیر/ســـالامی/ فلفـــل دلمـــه ای/ارگانو/قارچ..cheese/salami/sweet pepper/olive/organo/mushroom",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-05T08:57:13.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:25:06.108Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61b1a8defc1eece3d7626414"
+ },
+ "price": 800000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دمنوش سیـــــب و دارچیـن تک نفره Apple & Cinnamon",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:57:34.397Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-17T13:19:17.806Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854518650.png"
+},
+{
+ "_id": {
+ "$oid": "61b1a8f5fc1eece3d7626421"
+ },
+ "price": 1100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دمنوش سیـــــب و دارچیـن دو نفره Apple & Cinnamon",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:57:57.941Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-17T13:18:50.895Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854419222.png"
+},
+{
+ "_id": {
+ "$oid": "61b1a963fc1eece3d762644b"
+ },
+ "price": 600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای سبـز و لیمو تک نفره green tea& lemon",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T06:59:47.605Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:11:48.148Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854304419.png"
+},
+{
+ "_id": {
+ "$oid": "61b1a982fc1eece3d7626458"
+ },
+ "price": 1200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "جای سبز و لیمو دو نفره green tea & lemon ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:00:18.979Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:10:48.830Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854245151.png"
+},
+{
+ "_id": {
+ "$oid": "61b1aba9fc1eece3d76264da"
+ },
+ "price": 650000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هارمونیا تک نفره harmonies ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:09:29.169Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:08:18.393Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854093204.png"
+},
+{
+ "_id": {
+ "$oid": "61b1abcdfc1eece3d76264e9"
+ },
+ "price": 1000000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هارمونیا دو نفره harmonies",
+ "description": " گل گاو زبان سنبلطیب لیمو عمانی",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:10:05.009Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:07:41.179Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715854057726.png"
+},
+{
+ "_id": {
+ "$oid": "61b1acb1fc1eece3d762652b"
+ },
+ "price": 1160000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرســــــو دبـــــــــــل().. Double Espresso ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:13:53.627Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:59:08.054Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711371198.png"
+},
+{
+ "_id": {
+ "$oid": "61b1ad21fc1eece3d7626552"
+ },
+ "price": 1300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آمریکانــــــــــــــو.. Americano",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:15:45.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:57:19.850Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711236185.png"
+},
+{
+ "_id": {
+ "$oid": "61b1ad62fc1eece3d762656e"
+ },
+ "price": 1950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "مــــــــوکا(کلاسیک).. Mocha",
+ "description": "شکلات / قهوه ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:16:50.710Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:57:00.659Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711203117.png"
+},
+{
+ "_id": {
+ "$oid": "61b1ade7fc1eece3d76265a4"
+ },
+ "price": 2750000,
+ "stock": 0,
+ "static_discount": -1,
+ "name": "قهوه دمی سایفون.. Siphon coffee",
+ "description": "قهوه اسپشیال ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:19:03.321Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:56:24.191Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711089472.png"
+},
+{
+ "_id": {
+ "$oid": "61b1aed3fc1eece3d76265c0"
+ },
+ "price": 1300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "قهوه ترک.. Turkish coffee",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:22:59.520Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:54:59.448Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711043900.png"
+},
+{
+ "_id": {
+ "$oid": "61b1aef5fc1eece3d76265cd"
+ },
+ "price": 1600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شکلات داغ .. Hot Chocolate",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-09T07:23:33.390Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:54:38.288Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715711005802.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d866fc1eece3d76267b7"
+ },
+ "price": 1950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسموتی استوایی tropical smoothie ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:09:26.614Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:57:45.111Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855939026.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d882fc1eece3d76267c9"
+ },
+ "price": 1800000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " اسموتی انبه mango smoothie ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:09:54.391Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:57:15.223Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855856058.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d899fc1eece3d76267d6"
+ },
+ "price": 1500000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسموتی اپلایم apple & lime smoothie ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:10:17.925Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:56:46.476Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855800832.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d904fc1eece3d76267f0"
+ },
+ "price": 1600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "نوتلا شیک nutella miklshake",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:12:04.452Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:56:00.331Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855573768.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d922fc1eece3d76267fd"
+ },
+ "price": 1500000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پینات شیک peanut milkshake",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:12:34.855Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:55:41.790Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855464156.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d982fc1eece3d7626824"
+ },
+ "price": 1300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شوکو شیک chocolate milkshake",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:14:10.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:55:10.687Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715855404611.png"
+},
+{
+ "_id": {
+ "$oid": "61b5d9d8fc1eece3d762683f"
+ },
+ "price": 1830000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " آفوگاتو.. Affogato",
+ "description": "بستنی/اسپرسو ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:15:36.541Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:52:27.127Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715710983514.png"
+},
+{
+ "_id": {
+ "$oid": "61b5da7bfc1eece3d7626891"
+ },
+ "price": 2050000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وافل نوتلا waffle nutella",
+ "description": "وافل/بستنی/دورچین میوه ایی روز",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2021-12-12T11:18:19.852Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-17T13:23:19.722Z"
+ },
+ "__v": 0,
+ "active": true,
+ "image": "food_1715807218334.png"
+},
+{
+ "_id": {
+ "$oid": "61d2b9b5513bb64bd71e9ccb"
+ },
+ "price": 100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو سینگل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T08:54:13.897Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T08:54:13.897Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bd12513bb64bd71e9cf0"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:08:34.249Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:08:34.249Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61d2bd33513bb64bd71e9cfd"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دوپیو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:09:07.080Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:09:07.080Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bd52513bb64bd71e9d0a"
+ },
+ "price": 110000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:09:38.171Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:09:38.171Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bd6f513bb64bd71e9d17"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کافه لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:10:07.128Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:10:07.128Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bd89513bb64bd71e9d24"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:10:33.588Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:10:33.588Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bdae513bb64bd71e9d31"
+ },
+ "price": 180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:11:10.460Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:11:10.460Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2be17513bb64bd71e9d4d"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دوپیو عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:12:55.416Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:12:55.416Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2be5d513bb64bd71e9d5c"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آفاگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:14:05.810Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:14:05.810Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2be7b513bb64bd71e9d69"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو رومانو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:14:35.066Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:14:35.066Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2beb567a7c86145ed716d"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیس کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:15:33.421Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:15:33.421Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bed267a7c86145ed7185"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیس لاته ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:16:02.768Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:16:02.768Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2beec67a7c86145ed719b"
+ },
+ "price": 180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیس موکا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:16:28.870Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:16:28.870Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf0b67a7c86145ed71b2"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "فرنچ پرس ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:16:59.494Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:16:59.494Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf2c5c48ecb13a43f28a"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترکیش کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:17:32.260Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:17:32.260Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf455c48ecb13a43f2a6"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کن پانا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:17:57.781Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:17:57.781Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf645c48ecb13a43f2c2"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "قهوه دمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:18:28.724Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:18:28.724Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf825c48ecb13a43f2d7"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کلد برو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:18:58.220Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:18:58.220Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bf9e5c48ecb13a43f2eb"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:19:26.851Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:19:26.851Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bfbe5c48ecb13a43f2ff"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:19:58.711Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:19:58.711Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bfde5c48ecb13a43f317"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیر کاکائو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 21,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:20:30.889Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:20:30.889Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2bfff5c48ecb13a43f32e"
+ },
+ "price": 160000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیر نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:21:03.601Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:21:03.601Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c0175c48ecb13a43f340"
+ },
+ "price": 160000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:21:27.757Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:21:27.757Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c0305c48ecb13a43f352"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیر عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 24,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:21:52.998Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:21:52.998Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c0745c48ecb13a43f37a"
+ },
+ "price": 170000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رپنیک چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2b988513bb64bd71e9cb2"
+ },
+ "index": 25,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:23:00.959Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:23:00.959Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c0e05c48ecb13a43f3c1"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک نوتلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:24:48.484Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:24:48.484Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1015c48ecb13a43f3da"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک موز ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:25:21.218Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:25:21.218Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1245c48ecb13a43f3f7"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:25:56.180Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:25:56.180Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c14b5c48ecb13a43f412"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک کاپوچینو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:26:35.490Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:26:35.490Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1685c48ecb13a43f42a"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک بادام زمینی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:27:04.814Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:27:04.814Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1845c48ecb13a43f441"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک انبه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:27:32.660Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:27:32.660Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1a65c48ecb13a43f460"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک اسپرسو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:28:06.748Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:28:06.748Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c1c25c48ecb13a43f47c"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شیک شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c0ae5c48ecb13a43f39f"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:28:34.673Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:28:34.673Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2075c48ecb13a43f4b9"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کیک بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c1e85c48ecb13a43f49e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:29:43.688Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:29:43.688Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2255c48ecb13a43f4d4"
+ },
+ "price": 140000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کیک شکلاتی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c1e85c48ecb13a43f49e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:30:13.459Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:30:13.459Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2415c48ecb13a43f4eb"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کیک موز گردو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c1e85c48ecb13a43f49e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:30:41.186Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:30:41.186Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2895c48ecb13a43f525"
+ },
+ "price": 180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شربت نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:31:53.528Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:31:53.528Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2aa5c48ecb13a43f53d"
+ },
+ "price": 180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شربت بیدمشک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:32:26.018Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:32:26.018Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2c95c48ecb13a43f551"
+ },
+ "price": 180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شربت زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:32:57.298Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:32:57.298Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c2ec5c48ecb13a43f564"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "فلامینگو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:33:32.691Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:33:32.691Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3055c48ecb13a43f576"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:33:57.938Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:33:57.938Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3255c48ecb13a43f589"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پاستیلی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:34:29.041Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:34:29.041Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3465c48ecb13a43f59c"
+ },
+ "price": 20000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کرن لاین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c25e5c48ecb13a43f506"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:35:02.577Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:35:02.577Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c37b5c48ecb13a43f5c6"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آرامش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:35:55.761Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:35:55.761Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3945c48ecb13a43f5d7"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ژالان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:36:20.180Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:36:20.180Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3b65c48ecb13a43f5eb"
+ },
+ "price": 220000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "میکس بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:36:54.556Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:36:54.556Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3d45c48ecb13a43f5fd"
+ },
+ "price": 220000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آفرینش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:37:24.088Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:37:24.088Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c3ee5c48ecb13a43f60f"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رویا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:37:50.818Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:37:50.818Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4075c48ecb13a43f621"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شهنوش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:38:15.127Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:38:15.127Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4235c48ecb13a43f633"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پرسیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:38:43.578Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:38:43.578Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c43f5c48ecb13a43f645"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لمونکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:39:11.090Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:39:11.090Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c45f5c48ecb13a43f658"
+ },
+ "price": 200000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آنیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:39:43.766Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:39:43.766Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c47e5c48ecb13a43f66b"
+ },
+ "price": 220000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دمنوش سال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:40:14.344Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:40:14.344Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4a05c48ecb13a43f67e"
+ },
+ "price": 220000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دمنوش هارمونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:40:48.517Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:40:48.517Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4bb5c48ecb13a43f690"
+ },
+ "price": 220000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دمنوش پراگ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:41:15.644Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:41:15.644Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4db5c48ecb13a43f6a3"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای پوئر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:41:47.240Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:41:47.240Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c4f85c48ecb13a43f6b6"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:42:16.440Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:42:16.440Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c5125c48ecb13a43f6c7"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:42:42.690Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:42:42.690Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c5455c48ecb13a43f6de"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای به لیمو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:43:33.096Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:43:33.096Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c55e5c48ecb13a43f6f0"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:43:58.759Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:43:58.759Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c5805c48ecb13a43f703"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای مروارید چینی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:44:32.818Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:44:32.818Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d2c5a45c48ecb13a43f716"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چای بلومینگ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61d2c35d5c48ecb13a43f5b0"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "created_at": {
+ "$date": "2022-01-03T09:45:08.536Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:45:08.536Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61d5559dcbd2de185c5f6c9a"
+ },
+ "price": 100000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "test",
+ "description": "adssad",
+ "short_description": "",
+ "category": {
+ "$oid": "61d5519955249f031c7e5d1b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61d2ab31fa054b3d183cfd06"
+ },
+ "created_at": {
+ "$date": "2022-01-05T08:23:57.571Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-05T08:23:57.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61ee42984a8d41eae80b0e6c"
+ },
+ "price": 520000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "تست فرانسه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:09:28.462Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:31:18.070Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee42bb4a8d41eae80b0e7b"
+ },
+ "price": 480000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "املت فرانسه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:10:03.709Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:30:27.727Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee42f54a8d41eae80b0e8b"
+ },
+ "price": 860000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بشقاب ایرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:11:01.033Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:29:56.175Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee43084a8d41eae80b0e98"
+ },
+ "price": 1150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بشقاب انگلیسی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:11:20.144Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:29:13.025Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee43214a8d41eae80b0eab"
+ },
+ "price": 480000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "املت قارچ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:11:45.151Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:28:12.338Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee43324a8d41eae80b0eb8"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "املت ایرانی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:12:02.180Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:27:34.519Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44614a8d41eae80b0f50"
+ },
+ "price": 720000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پاستا پنه چیکن آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:17:05.324Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T13:44:37.442Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee449f4a8d41eae80b0f73"
+ },
+ "price": 820000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پاستا پنه آلفردو با فیله گوساله ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:18:07.231Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T13:57:27.623Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44b44a8d41eae80b0f80"
+ },
+ "price": 750000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "برگر کلاسیک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:18:28.161Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T14:01:02.842Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44c64a8d41eae80b0f8d"
+ },
+ "price": 830000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چیز برگر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:18:46.113Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T14:33:20.417Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44d84a8d41eae80b0f9a"
+ },
+ "price": 1180000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دابل چیز برگر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:19:04.290Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T14:40:03.284Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44e74a8d41eae80b0fa7"
+ },
+ "price": 990000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "چوریتسو برگر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:19:19.610Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T14:44:10.229Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee44f84a8d41eae80b0fb4"
+ },
+ "price": 870000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "برگر با سس قارچ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:19:36.364Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T14:45:56.854Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee45234a8d41eae80b0fce"
+ },
+ "price": 1280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بشقاب استیک گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:20:19.304Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:20:19.304Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee45324a8d41eae80b0fdb"
+ },
+ "price": 580000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بشقاب سبزیجات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3db44a8d41eae80b0d16"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:20:34.381Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-09T13:42:51.327Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee45e44a8d41eae80b1063"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "جینجر لایم ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:23:32.164Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:50:36.803Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee45f64a8d41eae80b1070"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:23:50.644Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:08:27.924Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee460f4a8d41eae80b107d"
+ },
+ "price": 450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رِد موهیتو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:24:15.101Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:55:07.629Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46204a8d41eae80b108a"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:24:32.283Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:09:02.629Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46404a8d41eae80b1099"
+ },
+ "price": 420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "خاکشیر بهارنارنج ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:25:04.640Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:59:21.991Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46524a8d41eae80b10a6"
+ },
+ "price": 460000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "زعفران آلوئه ورا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:25:22.834Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:02:22.670Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46624a8d41eae80b10b3"
+ },
+ "price": 450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لیمو زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:25:38.400Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:03:16.937Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46754a8d41eae80b10c0"
+ },
+ "price": 420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بیدمشک نسترن ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:25:57.929Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:10:34.998Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46894a8d41eae80b10cd"
+ },
+ "price": 490000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رز چینی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:26:17.361Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:06:45.751Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46a14a8d41eae80b10da"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:26:41.771Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:44:18.990Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46b14a8d41eae80b10e7"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موز کارامل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:26:57.061Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:43:35.346Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46bf4a8d41eae80b10f4"
+ },
+ "price": 460000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موز شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:27:11.891Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:42:03.862Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46cc4a8d41eae80b1101"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "شکلات فندق ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:27:24.894Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:42:57.911Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee46db4a8d41eae80b110e"
+ },
+ "price": 520000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پسته زعفران اعلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:27:39.701Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:40:37.167Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47004a8d41eae80b1128"
+ },
+ "price": 600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کیت کت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:28:16.944Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-24T13:42:45.238Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47164a8d41eae80b1135"
+ },
+ "price": 480000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اوریو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:28:38.880Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:35:24.229Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47274a8d41eae80b1142"
+ },
+ "price": 460000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:28:55.854Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:34:43.861Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47364a8d41eae80b114f"
+ },
+ "price": 530000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:29:10.522Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:32:31.346Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47464a8d41eae80b115c"
+ },
+ "price": 490000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کره بادام زمینی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:29:26.254Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:24:23.838Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee475b4a8d41eae80b116b"
+ },
+ "price": 600000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه (نوتلا،کره بادام زمینی) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e164a8d41eae80b0d44"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:29:47.793Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-16T14:18:18.461Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47774a8d41eae80b1178"
+ },
+ "price": 310000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو ",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:30:15.731Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:31:49.689Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47904a8d41eae80b1187"
+ },
+ "price": 290000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:30:40.118Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:31:08.384Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47a14a8d41eae80b1194"
+ },
+ "price": 270000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:30:57.373Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:28:35.022Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47b54a8d41eae80b11a1"
+ },
+ "price": 320000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "امریکانو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:31:17.662Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:41:07.906Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47ca4a8d41eae80b11b0"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "امریکانو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:31:38.294Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:34:21.980Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47de4a8d41eae80b11bf"
+ },
+ "price": 280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "امریکانو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:31:58.394Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:33:48.232Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee47f44a8d41eae80b11cc"
+ },
+ "price": 260000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کُن هیلو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:32:20.936Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:32:20.936Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee480b4a8d41eae80b11db"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کُن هیلو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:32:43.049Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:32:43.049Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48214a8d41eae80b11e8"
+ },
+ "price": 240000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کُن هیلو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:33:05.364Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:33:05.364Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48454a8d41eae80b11f5"
+ },
+ "price": 340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رومانو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:33:41.970Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:46:08.948Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48554a8d41eae80b1202"
+ },
+ "price": 320000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رومانو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:33:57.971Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:46:56.667Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee486b4a8d41eae80b120f"
+ },
+ "price": 310000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "رومانو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:34:19.012Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:46:37.423Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48854a8d41eae80b121c"
+ },
+ "price": 330000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوبانو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:34:45.689Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:46:11.144Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48964a8d41eae80b1229"
+ },
+ "price": 310000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوبانو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:35:02.205Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:33:48.890Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee48ec4a8d41eae80b1247"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوبانو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:36:28.813Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:33:19.999Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49124a8d41eae80b1254"
+ },
+ "price": 500000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترونگ کافی ",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:37:06.032Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:40:05.006Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49274a8d41eae80b1261"
+ },
+ "price": 490000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترونگ کافی ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:37:27.091Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:39:34.163Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee493a4a8d41eae80b126e"
+ },
+ "price": 480000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترونگ کافی ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:37:46.183Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:39:18.190Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee495a4a8d41eae80b127b"
+ },
+ "price": 260000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کورتادو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:38:18.663Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:38:18.663Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee496c4a8d41eae80b1288"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کورتادو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:38:36.153Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:38:36.153Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49844a8d41eae80b1297"
+ },
+ "price": 240000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کورتادو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:39:00.449Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:39:00.449Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49a24a8d41eae80b12a4"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماکیاتو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:39:30.283Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T14:25:08.349Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49db4a8d41eae80b12be"
+ },
+ "price": 370000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماکیاتو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:40:27.433Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T14:24:22.140Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee49f94a8d41eae80b12cb"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماکیاتو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:40:57.018Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T14:23:17.056Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b364a8d41eae80b1396"
+ },
+ "price": 420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موکاتلا",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:46:14.084Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:21:05.120Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b474a8d41eae80b13a5"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موکاتلا ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:46:31.244Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:20:31.479Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b5d4a8d41eae80b13b2"
+ },
+ "price": 390000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "موکاتلا ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:46:53.778Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:19:44.011Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b774a8d41eae80b13bf"
+ },
+ "price": 410000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لاته ماکیاتو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:47:19.338Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:00:29.712Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b874a8d41eae80b13cc"
+ },
+ "price": 390000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " لاته ماکیاتو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:47:35.003Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:02:08.373Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4b9d4a8d41eae80b13d9"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لاته ماکیاتو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:47:57.262Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:58:12.133Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4bb44a8d41eae80b13e6"
+ },
+ "price": 480000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بیچیرین",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:48:20.202Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:26:09.511Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4bcc4a8d41eae80b13f5"
+ },
+ "price": 470000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " بیچیرین",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:48:44.510Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:26:47.917Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4bdd4a8d41eae80b1402"
+ },
+ "price": 460000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "بیچیرین ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:49:01.495Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:28:05.343Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c0c4a8d41eae80b140f"
+ },
+ "price": 420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اورجینال آفوگاتو ",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:49:48.432Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:03:21.760Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c214a8d41eae80b141e"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " اورجینال آفوگاتو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:50:09.352Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:47:35.429Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c354a8d41eae80b142d"
+ },
+ "price": 390000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اورجینال آفوگاتو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:50:29.620Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:47:02.221Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c5a4a8d41eae80b143a"
+ },
+ "price": 450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سفرون آفوگاتو ",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:51:06.354Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:24:21.373Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c6d4a8d41eae80b1449"
+ },
+ "price": 440000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سفرون آفوگاتو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:51:25.373Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:22:04.348Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c7e4a8d41eae80b1458"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سفرون آفوگاتو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:51:42.641Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:21:29.004Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4c934a8d41eae80b1465"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد آمریکانو",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:52:03.407Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:20:54.423Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ca94a8d41eae80b1474"
+ },
+ "price": 340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد آمریکانو ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:52:25.673Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:17:59.217Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4cba4a8d41eae80b1481"
+ },
+ "price": 320000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد آمریکانو ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:52:42.095Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:16:39.317Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4cda4a8d41eae80b1499"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو تونیک ",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:53:14.482Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:32:43.720Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ce94a8d41eae80b14a6"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو تونیک ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:53:29.122Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:28:16.352Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4d024a8d41eae80b14b7"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو تونیک ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:53:54.962Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:27:11.290Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4d154a8d41eae80b14c4"
+ },
+ "price": 430000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد لاته",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:54:13.442Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:45:45.519Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4d284a8d41eae80b14d3"
+ },
+ "price": 420000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد لاته ",
+ "description": "80%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:54:32.061Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:45:23.299Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4d3a4a8d41eae80b14e2"
+ },
+ "price": 410000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آیسد لاته ",
+ "description": "50%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:54:50.972Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:42:44.358Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4d534a8d41eae80b14ef"
+ },
+ "price": 280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "والتون",
+ "description": "100%",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:55:15.464Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T06:55:15.464Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4dc84a8d41eae80b151a"
+ },
+ "price": 340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هات چاکلت کلاسیک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:57:12.080Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:10:52.260Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4e534a8d41eae80b1539"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هات چاکلت ویژه ( شکلات ریئل) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:59:31.542Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:12:45.660Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4e614a8d41eae80b1546"
+ },
+ "price": 280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "وایت چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:59:45.394Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T16:04:29.690Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4e6e4a8d41eae80b1553"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دارک چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T06:59:58.432Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T16:29:17.027Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4e7b4a8d41eae80b1560"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "افترایت چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:00:11.412Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T16:06:00.366Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4e934a8d41eae80b156d"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هات فندقی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:00:35.737Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:10:58.262Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ea24a8d41eae80b157a"
+ },
+ "price": 450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:00:50.365Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:08:38.450Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4eb14a8d41eae80b1587"
+ },
+ "price": 350000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:01:05.172Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:08:17.457Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ec14a8d41eae80b1594"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماسالا رژیمی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:01:21.845Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:08:15.314Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ed24a8d41eae80b15a1"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ماسالا چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:01:38.483Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:07:35.671Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ee04a8d41eae80b15ae"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سلپ ترکی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e6c4a8d41eae80b0d65"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:01:52.612Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:13:27.093Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4ef94a8d41eae80b15bb"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " کمر باریک (شارژ نا محدود ) به همراه کوکی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:02:17.532Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:02:17.532Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f124a8d41eae80b15c8"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "مراکشی (شارژ رایگان )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:02:42.831Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:12:09.573Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f204a8d41eae80b15d5"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " سیاه هل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:02:56.642Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:14:00.247Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f324a8d41eae80b15e2"
+ },
+ "price": 250000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "هل و دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:03:14.493Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:14:39.272Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f4c4a8d41eae80b1602"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:03:40.603Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:12:49.374Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f5f4a8d41eae80b160f"
+ },
+ "price": 300000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لیمو عسل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:03:59.379Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:15:18.269Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f6e4a8d41eae80b161c"
+ },
+ "price": 330000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:04:14.164Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:16:19.372Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f7c4a8d41eae80b1629"
+ },
+ "price": 280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": " دودی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:04:28.674Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:16:53.823Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f8d4a8d41eae80b1638"
+ },
+ "price": 280000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سبز و دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:04:45.394Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:17:25.300Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4f9c4a8d41eae80b1645"
+ },
+ "price": 290000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوهی و لوندر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:05:00.924Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:18:00.094Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4fbc4a8d41eae80b1652"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "آرامبخش",
+ "description": " (نا مناسب برای افراد با فشار خون پایین ،بانوان بارداری افراد دارای کم خونی)",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:05:32.022Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:16:49.918Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4fd94a8d41eae80b165f"
+ },
+ "price": 340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "گل گاوزبان",
+ "description": "(نا مناسب برای افراد با فشار خون پایین ،بانوان بارداری افراد دارای کم خونی)",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:06:01.224Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:17:27.861Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee4fed4a8d41eae80b166c"
+ },
+ "price": 340000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "به لیمو بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:06:21.853Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:19:56.578Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee50954a8d41eae80b1679"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ویژه ٱ کافه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:09:09.562Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:22:34.268Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee50ad4a8d41eae80b1686"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پرتقال گل محمدی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:09:33.470Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:23:21.868Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee50c44a8d41eae80b1693"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیب و به ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:09:56.411Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:24:05.300Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee50da4a8d41eae80b16a0"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیب و دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:10:18.598Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:26:37.696Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee50ef4a8d41eae80b16ad"
+ },
+ "price": 370000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیب و وانیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:10:39.410Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:27:59.474Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee510a4a8d41eae80b16ba"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "میکس بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:11:06.669Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:27:06.885Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51214a8d41eae80b16c7"
+ },
+ "price": 350000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترک کلاسیک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f9e4a8d41eae80b0e27"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:11:29.071Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:29:15.351Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51314a8d41eae80b16d4"
+ },
+ "price": 380000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترکیش وایت کافی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f9e4a8d41eae80b0e27"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:11:45.610Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:28:49.909Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51454a8d41eae80b16e1"
+ },
+ "price": 390000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترکیش وایت کافی هل و دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f9e4a8d41eae80b0e27"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:12:05.713Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:28:18.751Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51614a8d41eae80b16ee"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ترکیش وایت کافی زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f9e4a8d41eae80b0e27"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:12:33.122Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:27:51.380Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51734a8d41eae80b16fb"
+ },
+ "price": 490000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:12:51.589Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:35:28.550Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee51864a8d41eae80b1708"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "های کافئین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:13:10.490Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:35:57.361Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee519b4a8d41eae80b1715"
+ },
+ "price": 400000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سوپر کافئین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:13:31.473Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T18:36:40.003Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52174a8d41eae80b1722"
+ },
+ "price": 460000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرسو +انرژی زا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:15:35.979Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:01:24.633Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52294a8d41eae80b172f"
+ },
+ "price": 450000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوکا+کلدبرو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fab4a8d41eae80b0e32"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:15:53.653Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T16:59:46.273Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee523b4a8d41eae80b173c"
+ },
+ "price": 350000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "V_60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:16:11.670Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:16:11.670Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee524a4a8d41eae80b1749"
+ },
+ "price": 330000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "ایروپرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:16:26.804Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:16:26.804Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee525e4a8d41eae80b1756"
+ },
+ "price": 330000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کِمکس ۱کاپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:16:47.001Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:16:47.001Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee526e4a8d41eae80b1763"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کِمکس ۳ کاپ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:17:02.712Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:17:02.712Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52864a8d41eae80b1770"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سایفون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3fbd4a8d41eae80b0e3d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:17:26.525Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:17:26.525Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52994a8d41eae80b177d"
+ },
+ "price": 50000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سیروپ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee40f54a8d41eae80b0e4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:17:45.989Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:17:45.989Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52a84a8d41eae80b178a"
+ },
+ "price": 30000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "عسل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee40f54a8d41eae80b0e4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:18:00.842Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:18:00.842Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52bc4a8d41eae80b1799"
+ },
+ "price": 50000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "نوتلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee40f54a8d41eae80b0e4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:18:20.079Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-24T07:18:20.079Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61ee52db4a8d41eae80b17b3"
+ },
+ "price": 150000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "پنیر اضافه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee40f54a8d41eae80b0e4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-01-24T07:18:51.844Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-06T14:42:12.707Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa83e901319e8e5cfe82dd"
+ },
+ "price": 60000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوکی شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:15:21.871Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T13:15:21.871Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa871b01319e8e5cfe8356"
+ },
+ "price": 950000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "سالاد سزار گریل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3db44a8d41eae80b0d16"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:28:59.677Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-10T13:33:43.502Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa882501319e8e5cfe837c"
+ },
+ "price": 110000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "کوکا/فانتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61fa87da01319e8e5cfe836f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:33:25.319Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T13:33:25.319Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa890901319e8e5cfe8397"
+ },
+ "price": 110000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "اسپرایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61fa87da01319e8e5cfe836f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:37:13.086Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T13:37:13.086Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa896301319e8e5cfe83a1"
+ },
+ "price": 120000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "دلستر(هلو/لیمو)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61fa87da01319e8e5cfe836f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:38:43.830Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T13:38:43.830Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa899401319e8e5cfe83ab"
+ },
+ "price": 60000,
+ "stock": 500,
+ "static_discount": 0,
+ "name": "آب معدنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61fa87da01319e8e5cfe836f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T13:39:32.117Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:18:11.247Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa96d119f66a77ced06b2a"
+ },
+ "price": 390000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لاته %100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T14:36:01.111Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:02:17.851Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa96f319f66a77ced06b34"
+ },
+ "price": 370000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لاته %80",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T14:36:35.411Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:01:09.692Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa971319f66a77ced06b3e"
+ },
+ "price": 360000,
+ "stock": 0,
+ "static_discount": 0,
+ "name": "لاته %50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T14:37:07.519Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T14:57:40.621Z"
+ },
+ "__v": 0,
+ "active": true
+},
+{
+ "_id": {
+ "$oid": "61fa9dcf95502c4192a405d4"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو%100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:05:51.763Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:43:27.998Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fa9df695502c4192a405df"
+ },
+ "price": 360000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو%80",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:06:30.501Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:42:52.613Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fa9e4995502c4192a405f6"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو%50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:07:53.545Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:42:25.822Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fa9ed995502c4192a4060e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا %100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:10:17.328Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:45:40.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fa9fe11ee4b0270db496dd"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا%80",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:14:41.801Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:45:19.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61faa0161ee4b0270db496e9"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا%50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:15:34.338Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:44:58.548Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61faa0ff1ee4b0270db49710"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته زفرون %100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:19:27.901Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:44:33.458Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61faa12c1ee4b0270db4971f"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته زفرون %80",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:20:12.260Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:44:07.626Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61faa14d1ee4b0270db4972b"
+ },
+ "price": 370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته زفرون %50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 21,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T15:20:45.892Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:43:52.928Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fabc561ee4b0270db49921"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک دبل چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T17:16:06.658Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-24T13:37:53.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "61fabc7a1ee4b0270db4992e"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-02T17:16:42.566Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-24T13:51:07.180Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62014cd31ee4b0270db4abf3"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تومیتو پاستا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-07T16:46:11.334Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-07T16:46:11.334Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b46e1ee4b0270db4b33b"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیزی کلاسیک",
+ "description": "گوشت گوسفندی اعلاء ، دنبه ، نخود ، لوبیا ، گوجه ، پیاز ادویه مخصوص ایزی دیزی",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:32:46.628Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:57:47.154Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b4da1ee4b0270db4b346"
+ },
+ "price": 700000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیزی تند",
+ "description": "گوشت گوسفندی اعلاء ، دنبه ، نخود ، لوبیا ، گوجه ، پیاز، فلفل چیلی ، قرمز ، پاپریکا، ادویه مخصوص ایزی دیزی",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:34:34.336Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:59:07.374Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b5641ee4b0270db4b35e"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیزی کشک",
+ "description": "گوشت گوسفندی اعلاء ، دنبه ، نخود ، لوبیا ، کشک محلی ساییده شده ، نعنا داغ، گل زرد ، بادمجان یا چغندر در صورت سفارش ، ادویه مخصوص ایزی دیزی",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:36:52.874Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:01:28.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b5881ee4b0270db4b368"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قورمه بلوچی",
+ "description": "گوشت راسته مزه دار شده در سس ماست ، پیاز ، ادویه های هندی",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:37:28.528Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:02:59.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b5ac1ee4b0270db4b372"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوفته آبی",
+ "description": "گوشت چرخ کرده مخلوط ، آرد نخودچی ،آرد سوخاری ،سبزیجات معطر ، رب گوجه، پیاز، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:38:04.506Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:04:56.488Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b6bb1ee4b0270db4b37d"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بریانی",
+ "description": "گوشت قلوهگاه گوسفندی و ادویه مخصوص به همراه آب گوشت",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:42:35.767Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:05:55.663Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b6f31ee4b0270db4b389"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "حلیم بادمجان",
+ "description": "بادمجان ، کوشت گردن ، لوبیا سفید ، کشک محلی ساییده شده ،پیاز داغ ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:43:31.634Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:09:18.397Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7231ee4b0270db4b393"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میرزاقاسمی",
+ "description": "بادمجان کبابی ، گوجه کبابی ، سیر ،پیاز داغ ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:44:19.356Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:10:19.433Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7431ee4b0270db4b39f"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک بادمجان",
+ "description": "بادمجان ، کشک محلی ساییده شده ،پیاز داغ ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:44:51.845Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:11:07.188Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b75c1ee4b0270db4b3ab"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بزقرمه",
+ "description": "گوشت گوسفندی ، نخود ، لوبیا ، سیر ، کشک ساییده شده ، زعفران ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:45:16.455Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:12:20.936Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7811ee4b0270db4b3b7"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سرداغی",
+ "description": "گوشت گوسفندی چرخ شده ، عدس ، کنجد ، تخم خرفه ، پیاز ، کشک محلی ساییده شده ، سیر ، زعفران ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:45:53.785Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:20:32.245Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7a81ee4b0270db4b3c3"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سرداشی",
+ "description": "گوشت مخلوط گوساله و گوسفند ، گوجه ، فلفل سبز ، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:46:32.586Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:21:17.139Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7d21ee4b0270db4b3cf"
+ },
+ "price": 120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بورانی بادمجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b2531ee4b0270db4b30a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:47:14.488Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:47:14.488Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b7ea1ee4b0270db4b3db"
+ },
+ "price": 120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست و خیار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b2531ee4b0270db4b30a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:47:38.314Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:47:38.314Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8091ee4b0270db4b3e7"
+ },
+ "price": 120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انواع ترشی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b2531ee4b0270db4b30a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:48:09.995Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:48:09.995Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8261ee4b0270db4b3f3"
+ },
+ "price": 50000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست چکیده کوزه ای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b2531ee4b0270db4b30a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:48:38.553Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:48:38.553Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8441ee4b0270db4b3fd"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشیدنی های گازدار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:49:08.596Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:49:08.596Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8641ee4b0270db4b407"
+ },
+ "price": 70000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:49:40.435Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:49:40.435Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b87f1ee4b0270db4b413"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:50:07.069Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:50:07.069Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8a01ee4b0270db4b422"
+ },
+ "price": 80000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ آبعلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:50:40.516Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:50:40.516Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203b8ba1ee4b0270db4b42e"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ محلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b27d1ee4b0270db4b32b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T12:51:06.807Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T12:51:06.807Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6203c0101ee4b0270db4b4f1"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تاس کباب",
+ "description": "گوشت گوسفندی ، پیاز ، سیب زمینی ، به ، هویج",
+ "short_description": "",
+ "category": {
+ "$oid": "6203b1de1ee4b0270db4b2fb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "created_at": {
+ "$date": "2022-02-09T13:22:24.639Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-09T13:22:24.639Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6204c3b31ee4b0270db4b88f"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنکیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d3d4a8d41eae80b0cf0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-10T07:50:11.768Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-17T15:25:48.888Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208a8e61ee4b0270db4c6f1"
+ },
+ "price": 3970000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد آنتروکت مخصوص بوته",
+ "description": "کاهو پیچ ، مغز گردو ، جعفری ،گوجه چری ،سس آنتروکت فرانسه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:44:54.804Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:19:07.272Z"
+ },
+ "__v": 0,
+ "image": "food_1729757443896.png"
+},
+{
+ "_id": {
+ "$oid": "6208aad71ee4b0270db4c75c"
+ },
+ "price": 5350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد بیف",
+ "description": "کاهورسمی کاهو فرانسه بنفش،سورل،روکولا،میکروگرین ،توت فرنگی،فیله گوساله،گردوکاراملی ،چیپس هویج،سس زرشک",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:53:11.160Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:19:51.474Z"
+ },
+ "__v": 0,
+ "image": "food_1728303279211.png"
+},
+{
+ "_id": {
+ "$oid": "6208ab321ee4b0270db4c766"
+ },
+ "price": 4390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار سوخاری",
+ "description": "کاهو، مرغ سوخاری با پنیر ، نان کروتانز ، گوجه چری ، پنیر پارمسان ، سس سزار مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:54:42.139Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:20:04.941Z"
+ },
+ "__v": 0,
+ "image": "food_1729758275074.png"
+},
+{
+ "_id": {
+ "$oid": "6208ab8b1ee4b0270db4c780"
+ },
+ "price": 4530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار گریل ",
+ "description": "کاهو، مرغ گریل شده ، نان کروتانز ، گوجه چری ، پنیر پارمسان ، سس سزار مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T06:56:11.413Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:22:21.749Z"
+ },
+ "__v": 0,
+ "image": "food_1729757571328.png"
+},
+{
+ "_id": {
+ "$oid": "6208acc31ee4b0270db4c7ad"
+ },
+ "price": 2590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با دیپ کافه دوپاری(new)",
+ "description": "سیب زمینی وجز ، دیپ کافه دوپاری، پولبیبر، میکرو گرین، گرین اویل، پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:01:23.153Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:22:34.163Z"
+ },
+ "__v": 0,
+ "image": "food_1728331073193.png"
+},
+{
+ "_id": {
+ "$oid": "6208ad161ee4b0270db4c7cf"
+ },
+ "price": 3230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن اسپایسی(new)",
+ "description": "سینه مرغ، سالاد روکولا، سس باربیکیو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:02:46.801Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:23:00.606Z"
+ },
+ "__v": 0,
+ "image": "food_1729757914158.png"
+},
+{
+ "_id": {
+ "$oid": "6208ad361ee4b0270db4c7db"
+ },
+ "price": 1310000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوپ روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:03:18.483Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:23:44.459Z"
+ },
+ "__v": 0,
+ "image": "food_1729755496336.png"
+},
+{
+ "_id": {
+ "$oid": "6208ae301ee4b0270db4c804"
+ },
+ "price": 6530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست بیف",
+ "description": "گوشت ریش شده، سس آیولی روی پیتزا، قارچ،زیتون اسلایس ، پنیر، سس مخصوص کف پیتزا",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:07:28.413Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:24:14.060Z"
+ },
+ "__v": 0,
+ "image": "food_1729756171799.png"
+},
+{
+ "_id": {
+ "$oid": "6208ae821ee4b0270db4c80e"
+ },
+ "price": 5210000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن نیویورکر",
+ "description": "مرغ ماسالا، قارچ، فلفل دلمه، سس گوجه، دیپ پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:08:50.039Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:24:47.650Z"
+ },
+ "__v": 0,
+ "image": "food_1729756321754.png"
+},
+{
+ "_id": {
+ "$oid": "6208af8ffa922c7fd13637d4"
+ },
+ "price": 5370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپشیال",
+ "description": "میکس ژامبون، سوسیس، قارچ، فلفل دلمه،زیتون",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:13:19.220Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:24:56.693Z"
+ },
+ "__v": 0,
+ "image": "food_1731413338758.png"
+},
+{
+ "_id": {
+ "$oid": "6208b09e81751aaffbf65db4"
+ },
+ "price": 5850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کواترو استاجونی",
+ "description": "پیتزا چهار فصل شامل: پپرونی، استیک، فیله مرغ و سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:17:50.822Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:25:15.114Z"
+ },
+ "__v": 0,
+ "image": "food_1729756471445.png"
+},
+{
+ "_id": {
+ "$oid": "6208b11e81751aaffbf65dca"
+ },
+ "price": 5570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیاولا (پپرونی)",
+ "description": "پپرونی، سس مخصوص، موتزارلا",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:19:58.798Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:25:24.690Z"
+ },
+ "__v": 0,
+ "image": "food_1729758594732.png"
+},
+{
+ "_id": {
+ "$oid": "6208b18981751aaffbf65dd4"
+ },
+ "price": 4350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وردورا (سبزیجات)",
+ "description": "بادمجان، کدو، فلفل دلمه، پیار، قارچ، زیتون، اسفناج، سس گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:21:45.862Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:25:35.931Z"
+ },
+ "__v": 0,
+ "image": "food_1729758629130.png"
+},
+{
+ "_id": {
+ "$oid": "6208b1f081751aaffbf65dde"
+ },
+ "price": 5570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کواترو فور ماجی(new)",
+ "description": "خمیر ایتالیایی، سس مارینارا، پنیر میکس، ژامبون بوقلمون، گوجه گیلاسی، دیپ کافه دوپاری،اوریگانو، ریحان، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:23:28.083Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:25:55.902Z"
+ },
+ "__v": 0,
+ "image": "food_1728330406509.png"
+},
+{
+ "_id": {
+ "$oid": "6208b27881751aaffbf65df4"
+ },
+ "price": 6450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوله میو",
+ "description": "فیله گوساله، پیاز کاراملی، سس گوجه، خمیر مخصوص ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:25:44.492Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:26:10.236Z"
+ },
+ "__v": 0,
+ "image": "food_1729755229649.png"
+},
+{
+ "_id": {
+ "$oid": "6208b31c81751aaffbf65e02"
+ },
+ "price": 5610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پولو",
+ "description": "فیله مرغ، قارچ، گردو، سس پستوروی پیتزا، موتزارلا، دیپ پنیر، سس گوجه، پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:28:28.093Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:26:22.333Z"
+ },
+ "__v": 0,
+ "image": "food_1729756261349.png"
+},
+{
+ "_id": {
+ "$oid": "6208b36d81751aaffbf65e0c"
+ },
+ "price": 6350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک",
+ "description": "فیله مزه دار شده، قارچ ، زیتون، سس سیر روی پیتزا، پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:29:49.204Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:26:35.077Z"
+ },
+ "__v": 0,
+ "image": "food_1729756530319.png"
+},
+{
+ "_id": {
+ "$oid": "6208b40881751aaffbf65e16"
+ },
+ "price": 4070000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارگریتا",
+ "description": "سس گوجه فرنگی، موتزارلا، گوجه خشک، بازیلیکو، پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:32:24.784Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:26:50.853Z"
+ },
+ "__v": 0,
+ "image": "food_1729756652007.png"
+},
+{
+ "_id": {
+ "$oid": "6208b86f81751aaffbf65e55"
+ },
+ "price": 4250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن آلفردو",
+ "description": "پنه ، فیله مرغ ، قارچ ، سس آلفردو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:51:11.022Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:27:06.257Z"
+ },
+ "__v": 0,
+ "image": "food_1696945630526.png"
+},
+{
+ "_id": {
+ "$oid": "6208b90181751aaffbf65e69"
+ },
+ "price": 4290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فور چیز(new)",
+ "description": "پنه، سس آلفردو، سس مارینارا، دیپ کافه دوپاری، پنیر پارمسان، پنیر خامه ای، سینه مرغ، چیپس بادمجان، ریحان ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:53:37.658Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:27:14.836Z"
+ },
+ "__v": 0,
+ "image": "food_1728306961819.png"
+},
+{
+ "_id": {
+ "$oid": "6208b9612cf0cf6959b13aaf"
+ },
+ "price": 4450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف آرابیاتا(new)",
+ "description": "فتو چینی، سس آرابیاتا، پنیر پارمسان، فیله گوساله، میکرو گرین، چیپس بادمجان، هالوپینو(تند)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:55:13.313Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:27:23.878Z"
+ },
+ "__v": 0,
+ "image": "food_1728306836636.png"
+},
+{
+ "_id": {
+ "$oid": "6208ba302cf0cf6959b13b0a"
+ },
+ "price": 7930000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته استیک",
+ "description": "فیله گوساله با برنج ایرانی ، گوجه فرنگی، سس سماق، پیاز کبابی، ساید سالاد",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2141ee4b0270db4c3f8"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T07:58:40.170Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:27:38.760Z"
+ },
+ "__v": 0,
+ "image": "food_1728330109953.png"
+},
+{
+ "_id": {
+ "$oid": "6208bac12cf0cf6959b13b3e"
+ },
+ "price": 5690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته سبزی با ماهی",
+ "description": "برنج ایرانی، سیر، سبزی، ماهی قزل آلا سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2141ee4b0270db4c3f8"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:01:05.272Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:27:51.160Z"
+ },
+ "__v": 0,
+ "image": "food_1728301711620.png"
+},
+{
+ "_id": {
+ "$oid": "6208baf12cf0cf6959b13b52"
+ },
+ "price": 5650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب تابه ای",
+ "description": "کته، گوشت گوساله، سس گوجه، چیپس هویج به همراه سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2141ee4b0270db4c3f8"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:01:53.788Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:28:02.469Z"
+ },
+ "__v": 0,
+ "image": "food_1728300683426.png"
+},
+{
+ "_id": {
+ "$oid": "6208bd262cf0cf6959b13be7"
+ },
+ "price": 9850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله استیک(new)",
+ "description": "فیله گوساله ، سیب زمینی تنوری، کافه دوپاری، هویج، چری دمی گلس",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:11:18.732Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:28:22.523Z"
+ },
+ "__v": 0,
+ "image": "food_1732099203488.png"
+},
+{
+ "_id": {
+ "$oid": "6208bda52cf0cf6959b13bfb"
+ },
+ "price": 5750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استیک",
+ "description": "سینه مرغ گریل شده ، پوره سیب زمینی ، سبزیجات ، سس پیازچه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T08:13:25.721Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:28:32.032Z"
+ },
+ "__v": 0,
+ "image": "food_1728331458194.png"
+},
+{
+ "_id": {
+ "$oid": "6208c8962cf0cf6959b13d37"
+ },
+ "price": 4750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن لاورز",
+ "description": "برگر ۱۵۰ گرمی،بیکن ،پنبر،کاهو لوتوس ،گوجه فرنگی ،خیارشور، پیاز کاراملی، سس مخصوص، ساید سالاد و سیب زمینی (سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:00:06.683Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:28:47.607Z"
+ },
+ "__v": 0,
+ "image": "food_1729754952099.png"
+},
+{
+ "_id": {
+ "$oid": "6208c9102cf0cf6959b13d41"
+ },
+ "price": 4390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک برگر",
+ "description": "نان برگر، برگر ۱۵۰ گرمی، گوجه فرنگی، کاهو لوتوس، پیازکاراملی، خیار، سس مخصوص، ساید سالاد و سیب زمینی(سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:02:08.902Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:28:56.686Z"
+ },
+ "__v": 0,
+ "image": "food_1729758171518.png"
+},
+{
+ "_id": {
+ "$oid": "6208c98e2cf0cf6959b13d63"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:04:14.541Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:06:55.364Z"
+ },
+ "__v": 0,
+ "image": "food_1645017478067.png"
+},
+{
+ "_id": {
+ "$oid": "6208c9a52cf0cf6959b13d78"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دبل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:04:37.492Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:06:39.141Z"
+ },
+ "__v": 0,
+ "image": "food_1645017517499.png"
+},
+{
+ "_id": {
+ "$oid": "6208c9d92cf0cf6959b13d91"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:05:29.681Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:40:25.431Z"
+ },
+ "__v": 0,
+ "image": "food_1645017556188.png"
+},
+{
+ "_id": {
+ "$oid": "6208c9f22cf0cf6959b13d9b"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک دمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:05:54.240Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:05:54.403Z"
+ },
+ "__v": 0,
+ "image": "food_1645017579932.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca042cf0cf6959b13db0"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:06:12.514Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:40:05.012Z"
+ },
+ "__v": 0,
+ "image": "food_1645017618831.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca1a2cf0cf6959b13dbc"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:06:34.073Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:39:49.708Z"
+ },
+ "__v": 0,
+ "image": "food_1645017667092.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca322cf0cf6959b13dc6"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:06:58.300Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:39:31.221Z"
+ },
+ "__v": 0,
+ "image": "food_1645017705127.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca4a2cf0cf6959b13dd5"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه یونانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:07:22.573Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:04:30.443Z"
+ },
+ "__v": 0,
+ "image": "food_1645017753302.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca692cf0cf6959b13dec"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:07:53.981Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:38:56.194Z"
+ },
+ "__v": 0,
+ "image": "food_1645017778152.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca872cf0cf6959b13dfc"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:08:23.537Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:38:41.719Z"
+ },
+ "__v": 0,
+ "image": "food_1645017814380.png"
+},
+{
+ "_id": {
+ "$oid": "6208ca9d2cf0cf6959b13e08"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:08:45.453Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:03:37.702Z"
+ },
+ "__v": 0,
+ "image": "food_1645017958798.png"
+},
+{
+ "_id": {
+ "$oid": "6208cab12cf0cf6959b13e12"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:09:05.343Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:03:23.681Z"
+ },
+ "__v": 0,
+ "image": "food_1645017999993.png"
+},
+{
+ "_id": {
+ "$oid": "6208cab22cf0cf6959b13e19"
+ },
+ "price": 4190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن پستو(new)",
+ "description": "نان چیاباتا، سینه مرغ گریل، پستو ریحان، گوجه خشک، دیپ کافه دوپاری، ریحان ایتالیایی، سیب زمینی",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:09:06.003Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:29:13.126Z"
+ },
+ "__v": 0,
+ "image": "food_1728331220150.png"
+},
+{
+ "_id": {
+ "$oid": "6208cac42cf0cf6959b13e30"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرانسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:09:24.129Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:03:09.193Z"
+ },
+ "__v": 0,
+ "image": "food_1645018036872.png"
+},
+{
+ "_id": {
+ "$oid": "6208cae62cf0cf6959b13e3a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:09:58.501Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:38:19.301Z"
+ },
+ "__v": 0,
+ "image": "food_1645018080298.png"
+},
+{
+ "_id": {
+ "$oid": "6208cafc2cf0cf6959b13e44"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آيس کارامل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:10:20.614Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:02:35.623Z"
+ },
+ "__v": 0,
+ "image": "food_1645018126527.png"
+},
+{
+ "_id": {
+ "$oid": "6208cb892cf0cf6959b13e8c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:12:41.502Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:02:15.399Z"
+ },
+ "__v": 0,
+ "image": "food_1645018189433.png"
+},
+{
+ "_id": {
+ "$oid": "6208cba62cf0cf6959b13e98"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هویج گلاسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:13:10.481Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:01:57.451Z"
+ },
+ "__v": 0,
+ "image": "food_1645018225650.png"
+},
+{
+ "_id": {
+ "$oid": "6208cbbc2cf0cf6959b13ea2"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آناناس گلاسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:13:32.332Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:01:32.332Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6208cbde2cf0cf6959b13eb8"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گرین لایف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:14:06.800Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T12:01:19.471Z"
+ },
+ "__v": 0,
+ "image": "food_1645018352272.png"
+},
+{
+ "_id": {
+ "$oid": "6208cf932cf0cf6959b13f1f"
+ },
+ "price": 5650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پولد بیف(new)",
+ "description": "پولد بیف، قارچ، سس چری دنی گلس ، سیب زمینی، نان چیاباتا، روکولا، سس کوکتل",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T09:29:55.180Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:29:24.305Z"
+ },
+ "__v": 0,
+ "image": "food_1728331686617.png"
+},
+{
+ "_id": {
+ "$oid": "6208ecb59f0f86e3387c591c"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "پنیر خامه ای،خامه،لیدی فینگر",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T11:34:13.864Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:36:12.980Z"
+ },
+ "__v": 0,
+ "image": "food_1729759180680.png"
+},
+{
+ "_id": {
+ "$oid": "6208ed289f0f86e3387c5938"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل",
+ "description": "دو عدد وافل،دورچین میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T11:36:08.213Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:36:23.267Z"
+ },
+ "__v": 0,
+ "image": "food_1729756586757.png"
+},
+{
+ "_id": {
+ "$oid": "6208edfc9f0f86e3387c5982"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-13T11:39:40.852Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:36:32.637Z"
+ },
+ "__v": 0,
+ "image": "food_1729759056825.png"
+},
+{
+ "_id": {
+ "$oid": "6209f06b9f0f86e3387c5ef4"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون ۱ کاپ",
+ "description": "در دهه سی قرن هجدهم میلادی توسط لوف در آلمان طراحی شد،وسیله ای است که به کمک خلاء هوا در دو مخزن که روی هم سوار می شوند کار می کند",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:02:19.346Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:13:41.279Z"
+ },
+ "__v": 0,
+ "image": "food_1728374457341.png"
+},
+{
+ "_id": {
+ "$oid": "6209f0ef9f0f86e3387c5efe"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون ۲ کاپ",
+ "description": "در دهه سی قرن هجدهم میلادی توسط لوف در آلمان طراحی شد،وسیله ای است که به کمک خلاء هوا در دو مخزن که روی هم سوار می شوند کار می کند",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:04:31.726Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:13:46.546Z"
+ },
+ "__v": 0,
+ "image": "food_1728374458345.png"
+},
+{
+ "_id": {
+ "$oid": "6209f2d49f0f86e3387c5f14"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس ۲ کاپ ",
+ "description": "در سال ۱۹۴ توسط پیتر شلمبوم اختراع شد،در این روش قهوه داخل فیلتر ریخته شده و آب جوش از روی آن عبور کرده و قهوه دم کشیده داخل ظرف شیشه ای می ریزد",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:12:36.427Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:13:54.528Z"
+ },
+ "__v": 0,
+ "image": "food_1728374428131.png"
+},
+{
+ "_id": {
+ "$oid": "6209f30d9f0f86e3387c5f1e"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس ۴ کاپ",
+ "description": "در سال ۱۹۴ توسط پیتر شلمبوم اختراع شد،در این روش قهوه داخل فیلتر ریخته شده و آب جوش از روی آن عبور کرده و قهوه دم کشیده داخل ظرف شیشه ای می ریزد",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:13:33.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:14:03.637Z"
+ },
+ "__v": 0,
+ "image": "food_1728374433041.png"
+},
+{
+ "_id": {
+ "$oid": "6209f4459f0f86e3387c5f28"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایروپرس",
+ "description": "توسط اروبی به مدریت آلن آدلر در سال ۲۰۰۵ اختراع شد، در این روش قهوه آسیاب شده همراه آب داغ داخل سیلندر ریخته شده و با فشار سرنگ از فیلتر عبور داده می شود",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:18:45.446Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:14:09.818Z"
+ },
+ "__v": 0,
+ "image": "food_1729759018128.png"
+},
+{
+ "_id": {
+ "$oid": "6209f4d79f0f86e3387c5f32"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وی۶۰",
+ "description": "کارکردی مشابه کمکس داشته با این تفاوت که طعمی غنی تر نسبت به کمکس دارد",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-02-14T06:21:11.485Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:14:17.527Z"
+ },
+ "__v": 0,
+ "image": "food_1728374474365.png"
+},
+{
+ "_id": {
+ "$oid": "620a374d9f0f86e3387c62a7"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سان شاین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:04:45.897Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:37:50.096Z"
+ },
+ "__v": 0,
+ "image": "food_1645018390978.png"
+},
+{
+ "_id": {
+ "$oid": "620a37629f0f86e3387c62b4"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:05:06.177Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:57:16.441Z"
+ },
+ "__v": 0,
+ "image": "food_1645018438471.png"
+},
+{
+ "_id": {
+ "$oid": "620a37779f0f86e3387c62be"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفاگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:05:27.885Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:55:00.042Z"
+ },
+ "__v": 0,
+ "image": "food_1645018483060.png"
+},
+{
+ "_id": {
+ "$oid": "620a37989f0f86e3387c62c8"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپرینا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:06:00.578Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:54:40.232Z"
+ },
+ "__v": 0,
+ "image": "food_1645018530231.png"
+},
+{
+ "_id": {
+ "$oid": "620a37bb9f0f86e3387c62d4"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:06:35.239Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:37:12.899Z"
+ },
+ "__v": 0,
+ "image": "food_1645018603413.png"
+},
+{
+ "_id": {
+ "$oid": "620a37d79f0f86e3387c62de"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فروت رول",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:07:03.658Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:53:36.892Z"
+ },
+ "__v": 0,
+ "image": "food_1645018627969.png"
+},
+{
+ "_id": {
+ "$oid": "620a37f29f0f86e3387c62ea"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "واترملون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:07:30.914Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:53:09.963Z"
+ },
+ "__v": 0,
+ "image": "food_1645018661219.png"
+},
+{
+ "_id": {
+ "$oid": "620a383a9f0f86e3387c62f4"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیپس و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:08:42.499Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:52:52.854Z"
+ },
+ "__v": 0,
+ "image": "food_1645193702676.png"
+},
+{
+ "_id": {
+ "$oid": "620a38599f0f86e3387c62fe"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیپس و پنیر ۲ نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:09:13.409Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:52:36.691Z"
+ },
+ "__v": 0,
+ "image": "food_1645193668341.png"
+},
+{
+ "_id": {
+ "$oid": "620a388f9f0f86e3387c630a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:10:07.876Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:36:27.000Z"
+ },
+ "__v": 0,
+ "image": "food_1645193637610.png"
+},
+{
+ "_id": {
+ "$oid": "620a38bb9f0f86e3387c6319"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:10:51.124Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:35:54.803Z"
+ },
+ "__v": 0,
+ "image": "food_1645193598058.png"
+},
+{
+ "_id": {
+ "$oid": "620a38d59f0f86e3387c6323"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با پنیر دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:11:17.788Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:35:18.729Z"
+ },
+ "__v": 0,
+ "image": "food_1645193558686.png"
+},
+{
+ "_id": {
+ "$oid": "620a39059f0f86e3387c6330"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:12:05.598Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:34:58.760Z"
+ },
+ "__v": 0,
+ "image": "food_1645193521047.png"
+},
+{
+ "_id": {
+ "$oid": "620a39249f0f86e3387c633c"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ویژه دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:12:36.197Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:34:37.949Z"
+ },
+ "__v": 0,
+ "image": "food_1645193485198.png"
+},
+{
+ "_id": {
+ "$oid": "620a39689f0f86e3387c6346"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی هات داگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:13:44.994Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:49:09.555Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "620a39889f0f86e3387c6350"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ژامبون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:14:16.547Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:47:51.904Z"
+ },
+ "__v": 0,
+ "image": "food_1645193428118.png"
+},
+{
+ "_id": {
+ "$oid": "620a39a69f0f86e3387c635a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شنیسل مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:14:46.809Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:47:08.350Z"
+ },
+ "__v": 0,
+ "image": "food_1645193401471.png"
+},
+{
+ "_id": {
+ "$oid": "620a39d69f0f86e3387c6364"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنک",
+ "description": "سوسیس، پنیر، قارچ، فلفل دلمه، سس کچاپ و فرانسه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:15:34.128Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:33:49.537Z"
+ },
+ "__v": 0,
+ "image": "food_1645018726223.png"
+},
+{
+ "_id": {
+ "$oid": "620a39ee9f0f86e3387c636e"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:15:58.724Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:34:32.144Z"
+ },
+ "__v": 0,
+ "image": "food_1645018748768.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a0c9f0f86e3387c6378"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:16:28.337Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:33:28.999Z"
+ },
+ "__v": 0,
+ "image": "food_1645018704529.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a219f0f86e3387c6382"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شاتوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:16:49.179Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:33:08.757Z"
+ },
+ "__v": 0,
+ "image": "food_1645193275929.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a369f0f86e3387c638c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:17:10.322Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:42:28.319Z"
+ },
+ "__v": 0,
+ "image": "food_1645193187571.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a459f0f86e3387c6396"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:17:25.380Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:32:51.077Z"
+ },
+ "__v": 0,
+ "image": "food_1645193106675.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a5b9f0f86e3387c63a2"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخلوط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:17:47.916Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:41:51.615Z"
+ },
+ "__v": 0,
+ "image": "food_1645193071691.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a6f9f0f86e3387c63ac"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "معجون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:18:07.649Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:32:20.312Z"
+ },
+ "__v": 0,
+ "image": "food_1645193040976.png"
+},
+{
+ "_id": {
+ "$oid": "620a3a9d9f0f86e3387c63b6"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی ایتالیایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:18:53.666Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:41:19.442Z"
+ },
+ "__v": 0,
+ "image": "food_1645193010587.png"
+},
+{
+ "_id": {
+ "$oid": "620a3aae9f0f86e3387c63c0"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:19:10.518Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:32:00.138Z"
+ },
+ "__v": 0,
+ "image": "food_1645192964012.png"
+},
+{
+ "_id": {
+ "$oid": "620a3abf9f0f86e3387c63ca"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:19:27.577Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:31:43.286Z"
+ },
+ "__v": 0,
+ "image": "food_1645192930977.png"
+},
+{
+ "_id": {
+ "$oid": "620a3ad79f0f86e3387c63d4"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وانیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:19:51.308Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:31:17.910Z"
+ },
+ "__v": 0,
+ "image": "food_1645192904361.png"
+},
+{
+ "_id": {
+ "$oid": "620a3b299f0f86e3387c63df"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شاتوت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:21:13.225Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:30:56.790Z"
+ },
+ "__v": 0,
+ "image": "food_1645192850800.png"
+},
+{
+ "_id": {
+ "$oid": "620a3b409f0f86e3387c63ed"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توت فرنگی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:21:36.467Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:30:38.916Z"
+ },
+ "__v": 0,
+ "image": "food_1645192828049.png"
+},
+{
+ "_id": {
+ "$oid": "620a3b999f0f86e3387c6402"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:23:05.595Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:30:21.086Z"
+ },
+ "__v": 0,
+ "image": "food_1645192677552.png"
+},
+{
+ "_id": {
+ "$oid": "620a3bb49f0f86e3387c640d"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:23:32.126Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:30:04.415Z"
+ },
+ "__v": 0,
+ "image": "food_1645192651340.png"
+},
+{
+ "_id": {
+ "$oid": "620a3bf89f0f86e3387c6417"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات موز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:24:40.554Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:29:39.088Z"
+ },
+ "__v": 0,
+ "image": "food_1645192568861.png"
+},
+{
+ "_id": {
+ "$oid": "620a3c2d9f0f86e3387c6421"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:25:33.900Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:29:19.816Z"
+ },
+ "__v": 0,
+ "image": "food_1645192541740.png"
+},
+{
+ "_id": {
+ "$oid": "620a3c7d9f0f86e3387c642b"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "M&M",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:26:53.097Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:37:54.372Z"
+ },
+ "__v": 0,
+ "image": "food_1645192458431.png"
+},
+{
+ "_id": {
+ "$oid": "620a3ca39f0f86e3387c6435"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وانیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:27:31.296Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:28:57.279Z"
+ },
+ "__v": 0,
+ "image": "food_1645192380780.png"
+},
+{
+ "_id": {
+ "$oid": "620a3ce49f0f86e3387c643f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نارگیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:28:36.878Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:37:24.633Z"
+ },
+ "__v": 0,
+ "image": "food_1645192357817.png"
+},
+{
+ "_id": {
+ "$oid": "620a3d0b9f0f86e3387c6449"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:29:15.178Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:28:25.660Z"
+ },
+ "__v": 0,
+ "image": "food_1645192328640.png"
+},
+{
+ "_id": {
+ "$oid": "620a3d5c9f0f86e3387c645b"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "معجون ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:30:36.499Z"
+ },
+ "updated_at": {
+ "$date": "2022-08-21T07:28:03.173Z"
+ },
+ "__v": 0,
+ "image": "food_1645192304289.png"
+},
+{
+ "_id": {
+ "$oid": "620a3d829f0f86e3387c6469"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:31:14.175Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:36:37.938Z"
+ },
+ "__v": 0,
+ "image": "food_1645192242107.png"
+},
+{
+ "_id": {
+ "$oid": "620a3db99f0f86e3387c6473"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5e32cf0cf6959b13cdc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-02-14T11:32:09.150Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-06T11:36:18.663Z"
+ },
+ "__v": 0,
+ "image": "food_1645192150150.png"
+},
+{
+ "_id": {
+ "$oid": "6215fa46ee45f61f3a6972a4"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "استیک فیله مینیون",
+ "description": "فیله گوساله،سبزیجات بخارپز طعم دار شده،پوره سیب زمینی،سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f9c1ee45f61f3a69728c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:11:34.701Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:30:47.410Z"
+ },
+ "__v": 0,
+ "image": "food_1674240746571.png"
+},
+{
+ "_id": {
+ "$oid": "6215fad1ee45f61f3a6972b9"
+ },
+ "price": 4600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "استیک باربی کیو",
+ "description": "فیله گوساله دودی،سبزیجات بخارپز طعم دار شده،پوره سیب زمینی،سس دودی دست ساز",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f9c1ee45f61f3a69728c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:13:53.810Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:30:26.474Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215fbdeee45f61f3a6972e2"
+ },
+ "price": 4900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کته استیک",
+ "description": "فیله گوساله،شنسل مرغ طعم دار شد۰،سبزیجات بخارپز،پوره سیب زمینی،سس قارچ،سس هاووس،برنج کته",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f9c1ee45f61f3a69728c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:18:22.351Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:30:13.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6215fc60ee45f61f3a6972f4"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "چیکن استیک",
+ "description": "شنسل مرغ گریل شده،سبزیجات بخارپز طعم دار شده،پوره سیب زمینی،سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f9c1ee45f61f3a69728c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T09:20:32.831Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:30:01.515Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62160f62ee45f61f3a6973a7"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "برگر کلاسیک",
+ "description": "گوشت خالص،گوجه،خیارشور،کاهو،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T10:41:38.308Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:29:51.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161010ee45f61f3a6973b1"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "برگر هاوایی",
+ "description": "گوشت خالص،گوجه،خیارشور،کاهو،پنیر گودا،ژامبون گوشت،آناناس تفت داده شده،پنیر کاراملی،سس دودی،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T10:44:32.871Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:29:37.229Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161173ee45f61f3a6973e4"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "جورجیا برگر",
+ "description": "گوشت خالص،شنسل مرغ سوخاری،پنیر گودا،پنیر کاراملی،کاهو،خیارشور،گوجه،سس مخصوص دودی",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T10:50:27.448Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:29:26.033Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6216125dee45f61f3a6973ee"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "چیز برگر",
+ "description": "گوشت خالص،پنیر گودا،پنیر کاراملی،کاهو،خیارشو،گوجه،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T10:54:21.601Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:29:09.789Z"
+ },
+ "__v": 0,
+ "image": "food_1674240800071.png"
+},
+{
+ "_id": {
+ "$oid": "62161316ee45f61f3a6973f8"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دبل برگر",
+ "description": "۲ تیکه گوشن خالص،پنیر گودا،پنیر کاراملی،گوجه،خیارشور،کاهو،سس دودی،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T10:57:26.696Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:28:37.161Z"
+ },
+ "__v": 0,
+ "image": "food_1674240855648.png"
+},
+{
+ "_id": {
+ "$oid": "62161407ee45f61f3a697405"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "شف برگر",
+ "description": "۲ تیکه گوشت خالص،شنسل مرغ سوخاری،مغزران رشته رشته شده،دو عدد پنیر گودا،گوجه،خیارشور،کاهو،پنیر کاراملی،سس دودی،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:01:27.919Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:28:28.052Z"
+ },
+ "__v": 0,
+ "image": "food_1674241006305.png"
+},
+{
+ "_id": {
+ "$oid": "62161582ee45f61f3a697429"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کوبیده",
+ "description": "۲ سیخ کوبیده و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:07:46.128Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:28:05.954Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "621615eaee45f61f3a697433"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "جوجه کلاسیک",
+ "description": "سینه فیله تازه مرینت شده با زعفران ناب ایرانی،سس مخصوص و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:09:30.202Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:27:32.070Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161655ee45f61f3a697440"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "جوجه ترش گیلانی",
+ "description": "سینه فیله تازه مرینت شده با سس مخصوص و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:11:17.151Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:27:09.425Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161989ee45f61f3a6974cb"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "میکس وزیری",
+ "description": "۱سیخ جوجه کلاسیک،۱سیخ کوبیده و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:24:57.670Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:27:00.046Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161b9fee45f61f3a69750d"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کباب برگ مجلسی",
+ "description": "فیله گوساله تازه و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:33:51.300Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:26:35.891Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161cdcee45f61f3a69751f"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کباب سلطانی مخصوص",
+ "description": "یک سیخ کباب برگ به همراه یک سیخ کوبیده و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:39:08.839Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:26:19.794Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62161d89ee45f61f3a697532"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "بختیاری",
+ "description": "۱/۲ چنجه،۱/۲جوجه کلاسیک و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-02-23T11:42:01.261Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:26:02.575Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62165ed3ee45f61f3a697984"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e5d4a8d41eae80b0d5a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-02-23T16:20:35.089Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-23T15:16:06.476Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6223896ea03b80e0a44eee18"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سالاد سزار گریل",
+ "description": "کاهو،مرغ گریل شده،کروئانز،گوجه چری،پنیر پارمسان،سس سزار مخصوص،سالاد سزار یک رول",
+ "short_description": "",
+ "category": {
+ "$oid": "621e6021a03b80e0a44edd72"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-05T16:01:50.734Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:25:52.859Z"
+ },
+ "__v": 0,
+ "image": "food_1674240050149.png"
+},
+{
+ "_id": {
+ "$oid": "6223ab43a03b80e0a44eefe3"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سالاد سزار یک رول",
+ "description": "کاهو،مرغ سوخاری با پنیر،نان کروتانز،گوجه چری،پنیر پارمسان،سس سزار مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "621e6021a03b80e0a44edd72"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-05T18:26:11.303Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:25:38.225Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250ad3a03b80e0a44ef783"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ماست چکیده موسیر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:26:11.699Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:25:19.297Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250b4aa03b80e0a44ef79a"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "زیتون پرورده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:28:10.443Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:24:53.275Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250caca03b80e0a44ef7c2"
+ },
+ "price": 195000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "نوشابه کوکا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:34:04.102Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:24:37.313Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250ce7a03b80e0a44ef7cf"
+ },
+ "price": 195000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "نوشابه فانتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:35:03.625Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:24:20.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250d1aa03b80e0a44ef7dc"
+ },
+ "price": 195000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "نوشابه اسپرایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:35:54.359Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:24:10.177Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250d36a03b80e0a44ef7e6"
+ },
+ "price": 195000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "نوشابه زیرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:36:22.468Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:23:38.169Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250d5da03b80e0a44ef7f4"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دلستر (لیمو)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:37:01.174Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:23:23.406Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250da9a03b80e0a44ef807"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دلستر استوایی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:38:17.291Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:23:13.377Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250dfda03b80e0a44ef81e"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دلستر هلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:39:41.436Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:22:57.026Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250e2ca03b80e0a44ef828"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دلستر کلاسیک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:40:28.453Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:22:37.862Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62250e6fa03b80e0a44ef835"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دوغ محلی",
+ "description": "پارچی",
+ "short_description": "",
+ "category": {
+ "$oid": "62250c18a03b80e0a44ef7b2"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-06T19:41:35.418Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:22:28.259Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623091901cc95a37f0d6ac98"
+ },
+ "price": 50000,
+ "stock": 98,
+ "static_discount": 0,
+ "active": true,
+ "name": "test",
+ "description": "test",
+ "short_description": "",
+ "category": {
+ "$oid": "6211ff10c647562f307ebada"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61f7db200f1d12950f8ba1c9"
+ },
+ "created_at": {
+ "$date": "2022-03-15T13:16:00.369Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-02T23:08:50.603Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238a6d893241795e82cdc84"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "موکاورده (medium)",
+ "description": "سس پستو،ترکیبی از بهترین پنیرها،،شنسل مرغ،قارچ،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:24:56.447Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:22:17.369Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238a74193241795e82cdc91"
+ },
+ "price": 3250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "موکاورده (large)",
+ "description": "سس پستو،ترکیبی از بهترین پنیرها،،شنسل مرغ،قارچ،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:26:41.988Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:22:08.452Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238a80993241795e82cdc9e"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "اسپیشیال(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،ژامبون مرغ و گوشت۹۰٪،کوکتل،یارچ،فلفل دلمه رنگی و ذرت",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:30:01.840Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:21:50.499Z"
+ },
+ "__v": 0,
+ "image": "food_1674240678726.png"
+},
+{
+ "_id": {
+ "$oid": "6238a89493241795e82cdcae"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "اسپیشیال(large)",
+ "description": "سس ناپولتین،ترکیبی از بهترین پنیرها،ژامبون مرغ و گوشت۹۰٪،،کوکتل،قارچ،فلفل دلمه رنگی و ذرت",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:32:20.893Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:21:39.355Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238aa2593241795e82cdcfc"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "هالو پیتزا (medium)(hot)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،پپرونی،قارچ،فلفل هالوپینو",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:39:01.993Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:21:29.099Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238aac193241795e82cdd09"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "هالو پیتزا(large)(hot)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،پپرونی،قارچ،فلفل هالوپینو",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:41:37.315Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:21:17.619Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ac0c93241795e82cdd33"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کانتونی (medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،مرغ فرآوری شده دودی،قارچ،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:47:08.888Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:21:04.325Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ac6993241795e82cdd3d"
+ },
+ "price": 3550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کانتونی (large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،مرغ فرآوری شده ،قارچ،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:48:41.350Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:20:48.795Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ad1c93241795e82cdd51"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پیتزا سبزیجات (large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،سبزیجان فصل،هویج کریسپی",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:51:40.955Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:20:22.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ad6e93241795e82cdd64"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سبزیجات(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،سبزیجات فصل،هویج کریسپی",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e2d2ee45f61f3a696e7b"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:53:02.832Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:19:44.960Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238addc93241795e82cdd78"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیرو استیک(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،راسته گوساله طعم دارشده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:54:52.120Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:19:27.734Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ae2693241795e82cdd8b"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیرواستبک (large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،راسته گوساله طعم دارشده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:56:06.090Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:19:08.487Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238ae9d93241795e82cdda5"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیسیلی(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،شنسل مرغ طعم دار شده،قارچ ،فلفل هالوپینو،فلفل دلمه رنگی ،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T16:58:05.331Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:18:49.930Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238af1793241795e82cddb8"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیسیلی (large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها، شنسل مرغ طعم دار شده،قارچ،فلفل هالوپینو،،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:00:07.604Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:18:34.154Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238afb993241795e82cddd0"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پپرونی(medium)",
+ "description": " سس ناپولیتن،ترکیبی از بهترین پنیرها،پپرونی مرغوب،هالوپینو",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:02:49.484Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:17:44.077Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238b00093241795e82cdde3"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پپرونی(large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،پپرونی مرغوب،هالوپینو",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:04:00.649Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:17:06.793Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238b1d693241795e82cde30"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "فورسیزن(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،۱/۴راسته گوساله،۱/۴شنسل مرغ،۱/۴ژامبون،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:11:50.974Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:09:53.641Z"
+ },
+ "__v": 0,
+ "image": "food_1674240292136.png"
+},
+{
+ "_id": {
+ "$oid": "6238b27993241795e82cde3d"
+ },
+ "price": 3750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "فورسیزن (large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،۱/۴راسته گوساله،۱/۴شنسل مرغ،۱/۴ژامبون،فلفل دلمه رنگی،زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:14:33.350Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:09:40.725Z"
+ },
+ "__v": 0,
+ "image": "food_1674240090739.png"
+},
+{
+ "_id": {
+ "$oid": "6238b32993241795e82cde65"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پنه چیکن آلفردو",
+ "description": "فیله مرغ،پنه،پیازچه،قارچ،سس آلفردو،پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:17:29.519Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:09:00.304Z"
+ },
+ "__v": 0,
+ "image": "food_1674240144984.png"
+},
+{
+ "_id": {
+ "$oid": "6238b40693241795e82cde82"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پنه پستو",
+ "description": "فیله مرغ،پنه،پیازچه،قارچ،سس پستو ،پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:21:10.493Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:08:47.305Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238b48993241795e82cde8f"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "خوراک اسپانیایی",
+ "description": "فیله کوساله تفت داده شده،فیله مرغ،فلفل دلمه،پیاز ژولین،قارچ،سس مخصوص،نان بروچن",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:23:21.869Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:07:25.085Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238b4f593241795e82cdea1"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "بیف استراگانف",
+ "description": "فیله گوساله،پیازچه،قارچ،سس آلفردو،سیب زمینی بیفی،پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:25:09.126Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-14T17:09:21.478Z"
+ },
+ "__v": 0,
+ "image": "food_1674240174016.png"
+},
+{
+ "_id": {
+ "$oid": "6238b5e393241795e82cdedf"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پنه بیف آلفردو",
+ "description": "فیله گوساله،پیازچه،قارچ،سس آلفردو،گوجه گیلاسی تفت داده شده،پوره لبو",
+ "short_description": "",
+ "category": {
+ "$oid": "6215f665ee45f61f3a69723d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T17:29:07.764Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:06:52.747Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238be9c93241795e82ce006"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "مارگریتا(medium)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،گوجه اسلایس ،برگ رییحان",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T18:06:20.408Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:06:35.840Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6238c04d93241795e82ce028"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "مارگریتا(large)",
+ "description": "سس ناپولیتن،ترکیبی از بهترین پنیرها،گوجه اسلایس ، برگ ریحان",
+ "short_description": "",
+ "category": {
+ "$oid": "6215e29cee45f61f3a696e71"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-03-21T18:13:33.334Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:06:09.330Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6239bfac93241795e82ce30f"
+ },
+ "price": 290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ریسترتو کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:23:08.597Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-16T12:54:21.219Z"
+ },
+ "__v": 0,
+ "image": "food_1650113391211.png"
+},
+{
+ "_id": {
+ "$oid": "6239bfea93241795e82ce31c"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " ریسترتو اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:24:10.873Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-16T12:54:33.242Z"
+ },
+ "__v": 0,
+ "image": "food_1650113429909.png"
+},
+{
+ "_id": {
+ "$oid": "6239c00993241795e82ce326"
+ },
+ "price": 290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:24:41.047Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-16T12:48:20.781Z"
+ },
+ "__v": 0,
+ "image": "food_1649615265281.png"
+},
+{
+ "_id": {
+ "$oid": "6239c04193241795e82ce333"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:25:37.210Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:26:50.647Z"
+ },
+ "__v": 0,
+ "image": "food_1649615208910.png"
+},
+{
+ "_id": {
+ "$oid": "6239c06793241795e82ce33f"
+ },
+ "price": 290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لونگو کامرشیال",
+ "description": "60 میلی لیتر عصارهی قهوه با ترکیب کامرشیال",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:26:15.958Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-16T12:53:55.213Z"
+ },
+ "__v": 0,
+ "image": "food_1650113477508.png"
+},
+{
+ "_id": {
+ "$oid": "6239c08393241795e82ce34a"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لونگو اسپشیال",
+ "description": "60 میلی لیتر عصارهی قهوه با ترکیب اسپشیال",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:26:43.903Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-16T12:53:17.718Z"
+ },
+ "__v": 0,
+ "image": "food_1650113526078.png"
+},
+{
+ "_id": {
+ "$oid": "6239c0bc93241795e82ce368"
+ },
+ "price": 310000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کومپانو",
+ "description": "310000",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:27:40.191Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:25:00.829Z"
+ },
+ "__v": 0,
+ "image": "food_1649615098733.png"
+},
+{
+ "_id": {
+ "$oid": "6239c10a93241795e82ce381"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو پیکولو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T12:28:58.408Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:24:21.760Z"
+ },
+ "__v": 0,
+ "image": "food_1649615060222.png"
+},
+{
+ "_id": {
+ "$oid": "623a113f93241795e82ceefe"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مگنوم پرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:11:11.670Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:15:11.201Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a117b93241795e82cef0f"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "أفاگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:12:11.144Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:12:11.144Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a119593241795e82cef1c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:12:37.405Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:18:27.259Z"
+ },
+ "__v": 0,
+ "image": "food_1649614627379.png"
+},
+{
+ "_id": {
+ "$oid": "623a11ab93241795e82cef27"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " آمریکانو اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:12:59.930Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:17:52.769Z"
+ },
+ "__v": 0,
+ "image": "food_1649614589917.png"
+},
+{
+ "_id": {
+ "$oid": "623a11d193241795e82cef36"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:13:37.146Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:16:10.619Z"
+ },
+ "__v": 0,
+ "image": "food_1649614568101.png"
+},
+{
+ "_id": {
+ "$oid": "623a11ea93241795e82cef40"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:14:02.835Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:15:47.192Z"
+ },
+ "__v": 0,
+ "image": "food_1649614545113.png"
+},
+{
+ "_id": {
+ "$oid": "623a125a93241795e82cef63"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:15:54.177Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:15:18.419Z"
+ },
+ "__v": 0,
+ "image": "food_1649614515360.png"
+},
+{
+ "_id": {
+ "$oid": "623a129493241795e82cef70"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته + سیروپ(کارامل ، فندوق ، وانیل)",
+ "description": "سیروپهای انتخابی: ۱.وانیل ۲.کارامل ۳.شکلات ۴.فندق ۵.کوکی ۶.شکلات سفید ۷.آیریش",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:16:52.060Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:14:40.150Z"
+ },
+ "__v": 0,
+ "image": "food_1649614477212.png"
+},
+{
+ "_id": {
+ "$oid": "623a12b693241795e82cef7f"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:17:26.922Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:17:26.922Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a12d093241795e82cef89"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینات باتر لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:17:52.938Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:11:58.663Z"
+ },
+ "__v": 0,
+ "image": "food_1649614316580.png"
+},
+{
+ "_id": {
+ "$oid": "623a12f193241795e82cef95"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چاکلت کوکی لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:18:25.275Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:18:25.275Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a130e93241795e82cefa5"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوتوس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:18:54.468Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:11:26.832Z"
+ },
+ "__v": 0,
+ "image": "food_1649614283859.png"
+},
+{
+ "_id": {
+ "$oid": "623a132c93241795e82cefaf"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته کارامل نمکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:19:24.757Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:10:46.239Z"
+ },
+ "__v": 0,
+ "image": "food_1649614243191.png"
+},
+{
+ "_id": {
+ "$oid": "623a136293241795e82cefc8"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا فندوقی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379461c1bb048b321cd974"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:20:18.941Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:07:08.799Z"
+ },
+ "__v": 0,
+ "image": "food_1649613980682.png"
+},
+{
+ "_id": {
+ "$oid": "623a138a93241795e82cefd7"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پن شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794dbc1bb048b321cd99d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:20:58.607Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:05:03.634Z"
+ },
+ "__v": 0,
+ "image": "food_1649613901192.png"
+},
+{
+ "_id": {
+ "$oid": "623a13ad93241795e82cefe1"
+ },
+ "price": 330000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794dbc1bb048b321cd99d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:21:33.741Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:04:18.516Z"
+ },
+ "__v": 0,
+ "image": "food_1649613856633.png"
+},
+{
+ "_id": {
+ "$oid": "623a13cb93241795e82cefeb"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان بادام",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794dbc1bb048b321cd99d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:22:03.597Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:03:19.322Z"
+ },
+ "__v": 0,
+ "image": "food_1649613797467.png"
+},
+{
+ "_id": {
+ "$oid": "623a140293241795e82ceffb"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:22:58.184Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:02:48.332Z"
+ },
+ "__v": 0,
+ "image": "food_1649613765932.png"
+},
+{
+ "_id": {
+ "$oid": "623a142093241795e82cf005"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:23:28.878Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:02:05.551Z"
+ },
+ "__v": 0,
+ "image": "food_1649613723673.png"
+},
+{
+ "_id": {
+ "$oid": "623a144093241795e82cf00f"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارشمالو چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:24:00.163Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:01:44.648Z"
+ },
+ "__v": 0,
+ "image": "food_1649613702548.png"
+},
+{
+ "_id": {
+ "$oid": "623a145893241795e82cf019"
+ },
+ "price": 390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:24:24.153Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T18:01:18.494Z"
+ },
+ "__v": 0,
+ "image": "food_1649613676302.png"
+},
+{
+ "_id": {
+ "$oid": "623a148193241795e82cf023"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیگنیچر شکر سیاه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62379490c1bb048b321cd980"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:25:05.023Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:25:05.023Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a14a293241795e82cf02f"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو",
+ "description": "قهوهی سرد عصارهگیری شده؛ در طعمهای لیمو، بلوبری، آیریش و مالت",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:25:38.597Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:59:51.062Z"
+ },
+ "__v": 0,
+ "image": "food_1649613589300.png"
+},
+{
+ "_id": {
+ "$oid": "623a14bf93241795e82cf04b"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیتروژن کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:26:07.175Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:27:11.266Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a14f193241795e82cf062"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:26:57.641Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:58:32.461Z"
+ },
+ "__v": 0,
+ "image": "food_1649613510872.png"
+},
+{
+ "_id": {
+ "$oid": "623a153a93241795e82cf088"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:28:10.244Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:58:00.208Z"
+ },
+ "__v": 0,
+ "image": "food_1649613478658.png"
+},
+{
+ "_id": {
+ "$oid": "623a156893241795e82cf093"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته+ سیروپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:28:56.279Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:57:35.589Z"
+ },
+ "__v": 0,
+ "image": "food_1649613453945.png"
+},
+{
+ "_id": {
+ "$oid": "623a159693241795e82cf0a0"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیگنیچر شکر سیاه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6237949ec1bb048b321cd989"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:29:42.158Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-22T18:29:42.158Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "623a15b393241795e82cf0ad"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794afc1bb048b321cd993"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:30:11.477Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:57:04.099Z"
+ },
+ "__v": 0,
+ "image": "food_1649613422061.png"
+},
+{
+ "_id": {
+ "$oid": "623a15cb93241795e82cf0ba"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794afc1bb048b321cd993"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:30:35.064Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:56:40.410Z"
+ },
+ "__v": 0,
+ "image": "food_1649613398668.png"
+},
+{
+ "_id": {
+ "$oid": "623a15f993241795e82cf0c4"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794afc1bb048b321cd993"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:31:21.899Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:56:14.703Z"
+ },
+ "__v": 0,
+ "image": "food_1649613372112.png"
+},
+{
+ "_id": {
+ "$oid": "623a161993241795e82cf0ce"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ پرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "623794afc1bb048b321cd993"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "created_at": {
+ "$date": "2022-03-22T18:31:53.149Z"
+ },
+ "updated_at": {
+ "$date": "2022-04-10T17:55:50.022Z"
+ },
+ "__v": 0,
+ "image": "food_1649613348050.png"
+},
+{
+ "_id": {
+ "$oid": "6241c0e193241795e82d185b"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت %100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e304a8d41eae80b0d4f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-03-28T14:06:25.442Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-28T14:06:25.442Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6241c81793241795e82d18f5"
+ },
+ "price": 280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3e794a8d41eae80b0d70"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-03-28T14:37:11.821Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T15:41:42.112Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "624b309d93241795e82d4733"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "چیکن برگر",
+ "description": "شنسل مرغ گریل شده،گوجه،خیارشور،کاهو،پنیرگودا،سس دودی،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6215fe09ee45f61f3a69731e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-04-04T17:53:33.291Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:05:50.682Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "624c755693241795e82d4a51"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اوشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-04-05T16:59:02.513Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T17:04:18.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6274067b3b0eb949b49c7708"
+ },
+ "price": 5000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "test2",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "621202be7d3b1d322849e684"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61f7db200f1d12950f8ba1c9"
+ },
+ "created_at": {
+ "$date": "2022-05-05T17:16:43.948Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-05T17:16:43.948Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627a6da52353df2fe650f3f2"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالومی چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3dcb4a8d41eae80b0d21"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-05-10T13:50:29.637Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-10T13:50:29.637Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627bf55f2353df2fe6510866"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کته برنج زعفرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62161535ee45f61f3a69741c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-11T17:41:51.355Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T14:05:26.418Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627d242e2353df2fe6511d15"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی سرخ شده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-12T15:13:50.430Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:08:58.419Z"
+ },
+ "__v": 0,
+ "image": "food_1674240260019.png"
+},
+{
+ "_id": {
+ "$oid": "627d24662353df2fe6511d2b"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "اسکوپ بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-12T15:14:46.560Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:12:33.734Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f581fec44ae525a15240d"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی سرخ کرده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:19:59.584Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:05:20.828Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f58acec44ae525a152427"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی مخصوص پیانو",
+ "description": "سیب زمینی ، ژامبون ، قارچ ، ذرت",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:22:20.979Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:06:07.844Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f613fec44ae525a152497"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ سوخاری",
+ "description": "دوازده عدد قارچ سوخاری شده",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:58:55.701Z"
+ },
+ "updated_at": {
+ "$date": "2023-04-30T13:27:54.520Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6160ec44ae525a1524a4"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیاز حلقه ای",
+ "description": "شش عدد پیاز حلقه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T07:59:28.371Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-15T13:28:50.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6185ec44ae525a1524ae"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سیر",
+ "description": "نان طعم دار شده با کره و سیر تازه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:00:05.771Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-09T16:25:18.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f61a9ec44ae525a1524b8"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول پنیری",
+ "description": "نام طعم دار شده، پنیر چدار، ژامبون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:00:41.862Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-15T13:28:06.650Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6256ec44ae525a152507"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز",
+ "description": "سیب زمینی ، سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f52d2ec44ae525a1522db"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:03:34.970Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:05:47.370Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6bf0ec44ae525a1525d0"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " برگر ایتالیایی",
+ "description": "برگر 200 گرمی ، سیب زمینی چدار، پنیر، قارچ، ژامبون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:44:32.979Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:53:03.726Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6c31ec44ae525a1525ea"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ مخصوص پیانو",
+ "description": "ژامبون ، هات داگ ، قارچ ، پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:45:37.231Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:52:51.678Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6caeec44ae525a152604"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله مرغ",
+ "description": "دوعدد فیله سوخاری ، گوجه ، کاهو ، پنیر ورقه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:47:42.999Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:52:41.278Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6cd2ec44ae525a15260e"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مایتی برگر",
+ "description": "یکی عدد زینگر، یک عدد برگر، دولایه پنیر ورقه ای ، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:48:18.911Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:52:28.885Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f6cf1ec44ae525a152622"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رستبیف",
+ "description": "فیله گوساله، پنیر پیتزا، پنیر ورقه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T08:48:49.481Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:52:16.379Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f80e4ec44ae525a1527b2"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک",
+ "description": "فیله گوساله،قارچ ، پنیر ورقه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T10:13:56.124Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:51:59.995Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f8108ec44ae525a1527c4"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ژامبون تنوری",
+ "description": "ژامبون سه لایه، پنیر پیتزا، قارچ ، کاهو، گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T10:14:32.350Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:51:47.275Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f8167ec44ae525a1527f8"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ تنوری",
+ "description": "هات داگ، پنیر، کاهو، گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T10:16:07.094Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:51:35.485Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f81a0ec44ae525a15280c"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر تک",
+ "description": "یک عدد برگر، کاهو ، گوجه ، پنیر ورقه ای، خیارشور",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T10:17:04.131Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:51:22.368Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f81c0ec44ae525a152819"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر دبل",
+ "description": "دو عدد برگر150 گرمی، قارچ ، پنیر، کاهو ، گوجه ، خیارشور",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5634ec44ae525a152397"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T10:17:36.520Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:51:09.495Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f959fec44ae525a15298e"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخصوص پیانو",
+ "description": "ژامبون گوشت ۸۰٪، فیله مرغ، فلفل، زیتون، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:42:23.591Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:45:13.583Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f95f9ec44ae525a1529a8"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخلوط",
+ "description": "ژامبون گوشت، هات داگ ، فلفل دلمه، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:43:53.516Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:45:01.806Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f97d9ec44ae525a1529f8"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا رست بیف",
+ "description": "گوشت گوساله، پنیر ورقه ای، فلفل دلمه، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:51:53.144Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:44:48.723Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f980eec44ae525a152a02"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گریل چیکن",
+ "description": "فیله مرغ، فلفل دلمه ، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:52:46.003Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:44:33.899Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f9888ec44ae525a152a1f"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونانی",
+ "description": "گوشت چرخ کرده طعم دار شده، گوجه ، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:54:48.782Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:44:20.899Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f994dec44ae525a152a30"
+ },
+ "price": 1730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوپریم",
+ "description": "ژامبون گوشت، ژامبون مرغ، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:58:05.950Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:44:08.976Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f9976ec44ae525a152a3a"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویکتوریا",
+ "description": "ژامبون مرغ، فلفل دلمه ای، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T11:58:46.203Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:43:55.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f99e6ec44ae525a152a61"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپرونی",
+ "description": "ژامبون پپرونی، قارچ ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:00:38.988Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:43:44.379Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f9a0eec44ae525a152a71"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سبزیجات",
+ "description": "زیتون، ذرت، قارچ، گوجه ، فلفل دلمه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:01:18.536Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:43:14.249Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627f9b26ec44ae525a152a96"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کالزیا",
+ "description": "دولایه خمیر ، ژامبون گوشت ، فیله مرغ، قارچ ، پنیر ورقه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5657ec44ae525a1523a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:05:58.072Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:43:01.876Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa0e0ec44ae525a152ac7"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده گوشت",
+ "description": "خمیر مخصوص پیده ، گوشت گوساله، پنیر، گوجه، فلفل چارلستون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56fdec44ae525a1523e8"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:30:24.918Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:42:13.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa2e8ec44ae525a152ae7"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده مرغ",
+ "description": "خمیر مخصوص پیده، سینه مرغ، پنیر ، گوجه ، فلفل چارلستون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56fdec44ae525a1523e8"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:39:04.713Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:42:23.979Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa30cec44ae525a152af1"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده قارچ و بادمجان",
+ "description": "خمیر مخصوص پیده، قارچ و بادمجان ، پنیر، گوجه ، فلفل چارلستون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56fdec44ae525a1523e8"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:39:40.264Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:42:49.453Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa35fec44ae525a152b0b"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب برگر",
+ "description": "خمیر مخصوص،۱ لایه ژامبون ، پ عدد برگر مزه دار شده ، پنیر ، سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56c3ec44ae525a1523d9"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:41:03.993Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:00:56.926Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa39dec44ae525a152b32"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب رست بیف",
+ "description": "خمیر مخصوص، گوشت گوساله، قارچ مزه دار شده ، پنیر، سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56c3ec44ae525a1523d9"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:42:05.062Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:00:44.139Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa56dec44ae525a152b58"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب ژامبون",
+ "description": "خمیر مخصوص، ژامبون گوشت، قارچ مزه دار شده ، پنیر، سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56c3ec44ae525a1523d9"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:49:49.902Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:00:32.025Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fa6f2ec44ae525a152b9f"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سبزیجات",
+ "description": "خمیر مخصوص، انواع سبزیجات، سس مخصوص ، پنیر، سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56c3ec44ae525a1523d9"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T12:56:18.931Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:00:21.329Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb734ec44ae525a152da3"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سه تیکه (نرمال / اسپایسی)",
+ "description": "سه عدد فیله مرغ سوخاری ، سیب زمینی ، سالاد مکزیکی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:05:40.521Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:48:32.705Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb751ec44ae525a152dad"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنج تیکه (نرمال / اسپایسی)",
+ "description": "پنج عدد فیله مرغ سوخاری ، سیب زمینی ، سالاد مکزیکی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:06:09.697Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:59:19.282Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb785ec44ae525a152dc8"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزا پیزا",
+ "description": "دو عدد شنیسل مرغ تند ، پپرونی ، فلفل دلمه ای ، پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:07:01.931Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:59:03.807Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb7beec44ae525a152de6"
+ },
+ "price": 1950000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل دان",
+ "description": "دو عدد شنیسل مرغ تند ، پنیر زرد ، قارچ ، ژامبون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:07:58.442Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:58:48.323Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb7ddec44ae525a152df0"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن بنیه",
+ "description": "چهار عدد فیله مرغ ، سیب زمینی ، سالاد مکزیکی ، سس بنیه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:08:29.072Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:58:33.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb800ec44ae525a152e07"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو بنیه",
+ "description": "120 گرم میگو ، سیب زمینی ، کاهو ، سالاد مکزیکی ، سس بنیه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:09:04.651Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:58:16.559Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb818ec44ae525a152e11"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو سوخاری",
+ "description": "۱۳۰ گرم میگو ، سیب زمینی ، کاهو ، سالاد مکزیکی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56a4ec44ae525a1523c7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:09:28.741Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:58:01.495Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb938ec44ae525a152e55"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیسکا",
+ "description": "کاهو ، فیله گوساله ، خیار ، زیتون ، ذرت ، گوجه گیلاسی ، بالزامیک",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:14:16.303Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:16:59.861Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb984ec44ae525a152e7a"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سزار ( سوخاری )",
+ "description": "کاهو، نان تست ، فیله مرغ ، گوجه گیلاسی، زیتون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:15:32.613Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:16:47.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb9c2ec44ae525a152eaa"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سزار ( گریل )",
+ "description": "کاهو، نان تست ، فیله مرغ ، گوجه گیلاسی، زیتون",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:16:34.109Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:16:36.631Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fb9ffec44ae525a152ecb"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخصوص",
+ "description": "کاهو ، گوجه ، زیتون ، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:17:35.153Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:16:25.652Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fba2dec44ae525a152eec"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایتالیایی",
+ "description": "پاستا، ژامبون ، نخود فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:18:21.280Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:15:57.959Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fba55ec44ae525a152f0a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فصل",
+ "description": "کاهو ، ژامبون ، خیار ، گوجه ، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "627f56b2ec44ae525a1523d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:19:01.481Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-30T17:15:48.327Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fbebfec44ae525a152f62"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف استراگانف",
+ "description": "گوشت تکه ای، قارچ ، سس بشامل، خامه ، چیپس",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5717ec44ae525a1523f1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:37:51.330Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:01:22.887Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fbf08ec44ae525a152f70"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استراگانف",
+ "description": "مرغ تکه ای ، قارچ ، سس بشامل ، خامه ، چیپس",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5717ec44ae525a1523f1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:39:04.884Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T11:01:09.374Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fc1deec44ae525a152fcc"
+ },
+ "price": 3600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله مینیون",
+ "description": "۳ عدد فیله گوساله ۸۰ گرمی ، سس قارچ و کره ، دورچین مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5693ec44ae525a1523be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:51:10.919Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:54:59.177Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fc201ec44ae525a152fd6"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک با سس قارچ",
+ "description": "۲۵۰ گرم فیله گوساله ، سس قارچ، دورچین مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5693ec44ae525a1523be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:51:45.893Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:53:40.311Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fc22aec44ae525a152fe6"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک بالزامیک",
+ "description": "۲۵۰ گرم فیله گوساله، سس بالزامیک ، دورچین مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5693ec44ae525a1523be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:52:26.872Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:53:27.792Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fc273ec44ae525a153004"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل استیک",
+ "description": "۱۵۰ گرم فیله گوساله، ۱۵۰ گرم فیله مرغ ، پنیر پیتزا",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5693ec44ae525a1523be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T14:53:39.783Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:53:15.189Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fea79ec44ae525a1537e2"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلاتی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fe90bec44ae525a153778"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:44:25.972Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:05:21.552Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fec5aec44ae525a153865"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک بستنی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fe90bec44ae525a153778"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:52:26.681Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:06:20.890Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fed5aec44ae525a153898"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک (سس کچاپ)",
+ "description": "فیله گوساله، سیر ، قارچ ، فلفل دلمه ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:56:42.530Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:50:24.889Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fed98ec44ae525a1538b6"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T17:57:44.224Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:02:47.252Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627fee87ec44ae525a1538e1"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو",
+ "description": "60ml اسپرسو(دبل)+90میلی متر آب جوش",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T18:01:43.280Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:07:04.874Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627ff047ec44ae525a153946"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "اسپرسودبل+سس شکلات+شیروفوم",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T18:09:11.879Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:08:02.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627ff4fbec44ae525a153a55"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته ",
+ "description": "اسپرسودبل+220mlشیروفوم+سیروپ دلخواه",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T18:29:15.358Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:02:17.234Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "627ff626ec44ae525a153aa1"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-14T18:34:14.323Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:01:31.611Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810905d65610bd301c5624"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "بستنی وانیل+اسپرسو دبل",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:07:01.333Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:01:02.964Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810a08d65610bd301c5663"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:11:20.322Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:00:00.857Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810b48d65610bd301c56a7"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:16:40.539Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:58:25.216Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810bc1d65610bd301c56be"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونانی",
+ "description": "ترک+شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:18:41.920Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:57:16.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810e3bd65610bd301c575f"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای مراکشی",
+ "description": "چای +هل+نعنا+نبات",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:29:15.699Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:56:21.240Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62810ebfd65610bd301c577f"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:31:27.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:55:09.418Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811145d65610bd301c57a3"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرامش",
+ "description": "گل گاوزبان+چای ترش+بهار نارنج+لیمو+نبات",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:42:13.273Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:54:44.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628111bdd65610bd301c57ad"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به لیمو-زنجبیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T14:44:13.953Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:54:20.310Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811705d65610bd301c5865"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:06:45.186Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:53:47.462Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281173cd65610bd301c586f"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:07:40.838Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:53:10.473Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811b9ed65610bd301c596e"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک وانیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:26:22.350Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:52:38.665Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811bcfd65610bd301c597e"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:27:11.843Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:52:20.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811e10d65610bd301c59f3"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک تیرامیسو",
+ "description": "بیسکوییت لیدی فینگر+نسکافه گُلد+بستنی وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:36:48.253Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:51:59.133Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62811e6ed65610bd301c59fd"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "کره بادام زمینی+بادام زمینی+بستنی وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T15:38:22.499Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:51:24.367Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628133aed65610bd301c5ebe"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کِمِکس",
+ "description": "متولد1491,مناسب علاقه مندان طعم لایت و مدیوم قهوه",
+ "short_description": "",
+ "category": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:09:02.710Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:50:53.386Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628133d9d65610bd301c5ed1"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرانسه",
+ "description": "قهوه دمی+شیر داغ",
+ "short_description": "",
+ "category": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:09:45.852Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:50:22.653Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281345ed65610bd301c5ef4"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "v60",
+ "description": "متولد1921،نسخه اصلی و دست نخورده کِمِکٰسٰ",
+ "short_description": "",
+ "category": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:11:58.482Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:48:38.444Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62813630d65610bd301c5fdc"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "لیمو تازه+ سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:19:44.652Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:48:12.102Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62813667d65610bd301c5fe9"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو کلاسیک",
+ "description": "لیمو تازه+نعنا تازه+سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:20:39.652Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:47:37.238Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628139b9d65610bd301c6150"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیناکولادا",
+ "description": "میکس آب آناناس و شیر نارگیل و آناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-15T17:34:49.236Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:45:14.378Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814e0dd65610bd301c6334"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک (سس پستو)",
+ "description": "فیله گوساله، سیر ، قارچ ، فلفل دلمه ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:01:33.720Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:50:11.851Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814e34d65610bd301c633e"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک (سس قارچ)",
+ "description": "فیله گوساله، سیر ، قارچ ، فلفل دلمه ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:02:12.619Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:49:58.893Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814e6fd65610bd301c634b"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بروشکتو فونگی (سس کچاپ)",
+ "description": "ژامبون ، فیله گوساله ، استیک 80٪ ، قارچ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:03:11.951Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:49:45.418Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814e8ed65610bd301c6355"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بروشکتو فونگی (سس پستو)",
+ "description": "ژامبون ، فیله گوساله ، استیک 80٪ ، قارچ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:03:42.501Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:49:31.899Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814eb8d65610bd301c636c"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بروشکتو فونگی (سس قارچ)",
+ "description": "ژامبون ، فیله گوساله ، استیک 80٪ ، قارچ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:04:24.983Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:49:21.152Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814ef3d65610bd301c6379"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن فونگی (سس کچاپ)",
+ "description": "فیله مرغ سرخ شده ، فلفل دلمه ای ، قارچ ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:05:23.430Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:49:04.776Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814f82d65610bd301c6383"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن فونگی (سس پستو)",
+ "description": "فیله مرغ سرخ شده ، فلفل دلمه ای ، قارچ ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:07:46.118Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:48:48.115Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62814fa4d65610bd301c638d"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن فونگی (سس قارچ)",
+ "description": "فیله مرغ سرخ شده ، فلفل دلمه ای ، قارچ ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:08:20.389Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:48:37.558Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281500ad65610bd301c63ae"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلی فونگی (سس کچاپ)",
+ "description": "ژامبون پپرونی ، قارچ ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:10:02.381Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:48:08.640Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815036d65610bd301c63bb"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلی فونگی (سس پستو)",
+ "description": "ژامبون پپرونی ، قارچ ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:10:46.783Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:47:55.587Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815057d65610bd301c63c5"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلی فونگی (سس قارچ)",
+ "description": "ژامبون پپرونی ، قارچ ، فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:11:19.131Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:47:42.220Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281511bd65610bd301c63df"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لابو سولا (سس کچاپ)",
+ "description": "میگو ، ژامبون سالامی ، قارچ ، فلفل دلمه ای، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:14:35.673Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:47:26.415Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815140d65610bd301c63f6"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لابو سولا (سس پستو)",
+ "description": "میگو ، ژامبون سالامی ، قارچ ، فلفل دلمه ای، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:15:12.862Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:47:14.667Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815155d65610bd301c6400"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لابو سولا (سس قارچ)",
+ "description": "میگو ، ژامبون سالامی ، قارچ ، فلفل دلمه ای، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:15:33.511Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:47:03.705Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281517ed65610bd301c640a"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چهار فصل (سس کچاپ)",
+ "description": "ژامبون استیک ، پپرونی ، فیله مرغ ، سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:16:14.401Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:46:50.829Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815194d65610bd301c6414"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چهار فصل (سس پستو)",
+ "description": "ژامبون استیک ، پپرونی ، فیله مرغ ، سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:16:36.313Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:46:34.600Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628151a6d65610bd301c641e"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چهار فصل (سس قارچ)",
+ "description": "ژامبون استیک ، پپرونی ، فیله مرغ ، سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:16:54.442Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:46:23.958Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628151e3d65610bd301c642b"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وجترین (سس کچاپ)",
+ "description": "فلفل دلمه ای ، ذرت ، قارچ ، زیتون ، گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:17:55.011Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:46:09.984Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628151f9d65610bd301c6435"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وجترین (سس پستو)",
+ "description": "فلفل دلمه ای ، ذرت ، قارچ ، زیتون ، گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:18:17.512Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:45:47.961Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815209d65610bd301c643f"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وجترین (سس قارچ)",
+ "description": "فلفل دلمه ای ، ذرت ، قارچ ، زیتون ، گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:18:33.082Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:45:36.980Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815222d65610bd301c6449"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارگاریتا (سس کچاپ)",
+ "description": "گوجه ، پنیر ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5664ec44ae525a1523ac"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:18:58.653Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:45:26.211Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281552fd65610bd301c648a"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه الفردو (مرغ)",
+ "description": "پنه ، سس قارچ ، فیله مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:31:59.947Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:57:24.982Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281554fd65610bd301c6494"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه الفردو (گوشت)",
+ "description": "پنه ، سس قارچ ، فیله مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:32:31.621Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:57:13.915Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628156d7d65610bd301c64a1"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه پومودور (مرغ)",
+ "description": "پنه ، سس گوجه فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:39:03.500Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:56:58.475Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281572dd65610bd301c64be"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه پومودور (گوشت)",
+ "description": "پنه ، سس گوجه فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:40:29.639Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:56:46.405Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815754d65610bd301c64d5"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفلاف (مرغ)",
+ "description": "پنه ، سس قارچ ، سس گوجه ، زیتون ، فلفل دلمه ، پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:41:08.963Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:56:32.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815779d65610bd301c64df"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفلاف (گوشت)",
+ "description": "پنه ، سس قارچ ، سس گوجه ، زیتون ، فلفل دلمه ، پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:41:45.501Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:56:17.003Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815a41d65610bd301c64f2"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلورانین",
+ "description": "پنه میگو ، قارچ ، سس بشامل",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:53:37.207Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:56:04.002Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815a5ad65610bd301c64fc"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پستو",
+ "description": "پنه ، سس پستو ، فیله مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:54:02.301Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:55:51.495Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815a71d65610bd301c650d"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاسگنابونس (لازانیا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:54:25.353Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:55:36.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62815aa0d65610bd301c6524"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا سبزیجات",
+ "description": "پنه ، قارچ ، ذرت ، فلفل دلمه ، سس گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "627f5672ec44ae525a1523b5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-15T19:55:12.679Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-17T10:55:22.431Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281dd94d65610bd301c661d"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی انبه و موز",
+ "description": "انبه+موز",
+ "short_description": "",
+ "category": {
+ "$oid": "62815caad65610bd301c656d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:13:56.551Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-29T15:58:22.193Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281dda7d65610bd301c6627"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی کوکونات",
+ "description": "نارگیل+شیر+کاکاِِِِِیو",
+ "short_description": "",
+ "category": {
+ "$oid": "62815caad65610bd301c656d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:14:15.213Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-29T15:57:07.939Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281ddbad65610bd301c6631"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی استوایی",
+ "description": "پشن فروت+موز+اناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "62815caad65610bd301c656d"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:14:34.811Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-29T15:56:03.424Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281ddf6d65610bd301c664f"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:15:34.167Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:23:46.921Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281de0dd65610bd301c6659"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:15:57.182Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:23:13.471Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281de1ed65610bd301c6663"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز و شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:16:14.723Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:22:49.582Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281de30d65610bd301c666d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:16:32.702Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:30:24.142Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281de4fd65610bd301c6684"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک Oreo",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:17:03.872Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:51:56.142Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281de91d65610bd301c669e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "تریپل سک+لیمو+اسپرایت",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:18:09.947Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:40:49.643Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281dea2d65610bd301c66a8"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "لیمو + نعنا + اسپرایت + رام",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:18:26.682Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:41:27.055Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281deb6d65610bd301c66b2"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مجیک مومنت",
+ "description": "پرتغال قرمز+لیمو+کرن بری+سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:18:46.862Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:44:03.816Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281def3d65610bd301c66c3"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کامپاری کلر",
+ "description": "هلو+کرن بری+لیمو+پرتغال+اسپرایت",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:19:47.990Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:45:18.538Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281df0bd65610bd301c66cd"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو اسکای",
+ "description": "بلوکارسائو + آلوئورا",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:20:11.832Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:25:22.606Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281df20d65610bd301c66d7"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مانتینی",
+ "description": "تریپل سک+لیمو+کرن بری+سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:20:32.309Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:43:24.993Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281df39d65610bd301c66e1"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رز ماری کلر",
+ "description": "انبه + لیمو+پرتغال قرمز+گرانادین+رز ماری",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:20:57.672Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T13:42:47.489Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e039d65610bd301c671d"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خیارسکنجبین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815d39d65610bd301c659a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:25:13.152Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:28:01.775Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e06dd65610bd301c6734"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بید مشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815d39d65610bd301c659a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:26:05.270Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:27:50.307Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e082d65610bd301c673e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815d39d65610bd301c659a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:26:26.631Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:27:39.904Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e0a7d65610bd301c6755"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گلاب زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815d39d65610bd301c659a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:27:03.651Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:27:28.297Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e3a1d65610bd301c676b"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:39:45.531Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:11:51.880Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e3c0d65610bd301c6775"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:40:16.573Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:11:40.655Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e3dad65610bd301c677f"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرانسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:40:42.346Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:11:26.383Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e3ead65610bd301c6789"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:40:58.949Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:11:03.214Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e405d65610bd301c6793"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:41:25.423Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:10:45.000Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e41cd65610bd301c679d"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:41:48.700Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-14T11:48:52.196Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e438d65610bd301c67a7"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:42:16.072Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:10:09.410Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e44dd65610bd301c67b1"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:42:37.519Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:09:56.749Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e461d65610bd301c67bb"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:42:57.303Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:08:58.444Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e477d65610bd301c67c6"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:43:19.619Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:08:46.249Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e4ddd65610bd301c67e7"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاو زبان (لیمو)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:45:01.701Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:17:47.327Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e51ad65610bd301c67ff"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:46:02.566Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-28T11:47:04.872Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e532d65610bd301c6809"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:46:26.188Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:17:20.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e549d65610bd301c6813"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:46:49.190Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:17:08.803Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e593d65610bd301c6834"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آویشن (عسل)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:48:03.055Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:16:54.892Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e5bad65610bd301c683e"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میکس",
+ "description": "گل گاو زبان + آویشن + چای ترش + لیمو + عسل",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:48:42.449Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:16:33.915Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e5e0d65610bd301c684b"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفاگاتو",
+ "description": "بستنی وانیلی + اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:49:20.612Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:13:20.269Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e5f0d65610bd301c6855"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافی سودا",
+ "description": "سودا + اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:49:36.059Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-14T11:51:49.735Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e5fdd65610bd301c685f"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "شیر + اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:49:49.581Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:12:51.410Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e61cd65610bd301c6869"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c51d65610bd301c6552"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:50:20.358Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-04T12:41:56.059Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e62ad65610bd301c6873"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c51d65610bd301c6552"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:50:34.092Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-04T12:41:31.581Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e6a8d65610bd301c689c"
+ },
+ "price": 470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی میکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:52:40.197Z"
+ },
+ "updated_at": {
+ "$date": "2022-11-11T10:54:02.995Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e6cfd65610bd301c68a6"
+ },
+ "price": 410000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:53:19.447Z"
+ },
+ "updated_at": {
+ "$date": "2022-11-25T14:38:42.112Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281e6f8d65610bd301c68ba"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی موز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T05:54:00.890Z"
+ },
+ "updated_at": {
+ "$date": "2022-11-11T10:53:33.366Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281ea31d65610bd301c68d5"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی وانیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T06:07:45.158Z"
+ },
+ "updated_at": {
+ "$date": "2022-11-25T14:38:31.048Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6281ea99d65610bd301c6902"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c66d65610bd301c655b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-05-16T06:09:29.729Z"
+ },
+ "updated_at": {
+ "$date": "2022-11-11T10:52:41.006Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62826081d65610bd301c711d"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "اسپرسو سینگل+150mlشیرو فوم",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-16T14:32:33.038Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:44:53.411Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6282614ed65610bd301c717e"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "اسپرسو دبل+شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-16T14:35:58.633Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:42:49.120Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6285213b45a8f989e785246c"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سرویس چای چهارنفره",
+ "description": "نبات",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-18T16:39:23.136Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:44:24.050Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62853def45a8f989e7852ce3"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پشن دراگون",
+ "description": "آب پرتقال+توت فرنگی+سیروپ پشن فورت+آب لیمو تازه",
+ "short_description": "",
+ "category": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-05-18T18:41:51.114Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:39:54.127Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628b66ecea3462120c4df42b"
+ },
+ "price": 100000,
+ "stock": 50000,
+ "static_discount": 0,
+ "active": true,
+ "name": "test",
+ "description": "das das das das das das dasdasd asdasd",
+ "short_description": "",
+ "category": {
+ "$oid": "628b66ceea3462120c4df415"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6204b1626175e2247c298b04"
+ },
+ "created_at": {
+ "$date": "2022-05-23T10:50:20.114Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-09T08:39:35.531Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628b66fdea3462120c4df435"
+ },
+ "price": 50000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "test2",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628b66d8ea3462120c4df41e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6204b1626175e2247c298b04"
+ },
+ "created_at": {
+ "$date": "2022-05-23T10:50:37.500Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-23T10:50:37.500Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "628ce39e73876d4327561809"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک ردولوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-05-24T13:54:38.135Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-24T13:54:38.135Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62922dc173876d4327567077"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-05-28T14:12:17.316Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-28T14:12:17.316Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629381c873876d432756814b"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تریپل چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-05-29T14:23:04.349Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-29T14:23:04.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6297379073876d432756c120"
+ },
+ "price": 5630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفاماتا",
+ "description": "میکس ژامبون، پپرونی، کوکتل، اوریگانو، قارچ، فلفل دلمه ای، موتزارلا",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-01T09:55:28.588Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:29:50.048Z"
+ },
+ "__v": 0,
+ "image": "food_1729758618404.png"
+},
+{
+ "_id": {
+ "$oid": "629a4c41128ed6fd01320ae0"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دبل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-06-03T18:00:33.218Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:08:18.383Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629a73a9128ed6fd013210e2"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس چاکلت",
+ "description": "بستنی وانیلی + هات چاکلت",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-06-03T20:48:41.590Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:12:38.613Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629ae96d128ed6fd013212e0"
+ },
+ "price": 620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-06-04T05:11:09.526Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:19:07.567Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629ae9d0128ed6fd01321307"
+ },
+ "price": 620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815cd3d65610bd301c657c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-06-04T05:12:48.981Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:18:57.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629aef26128ed6fd0132144d"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وان پیس",
+ "description": "بلوکارسائو + آلبالو + لیمو + پرتقال",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2022-06-04T05:35:34.109Z"
+ },
+ "updated_at": {
+ "$date": "2023-02-27T17:24:04.858Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629cd981128ed6fd01324397"
+ },
+ "price": 2790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینات باتر وینگز(new)",
+ "description": "بال سرخ شده به همراه سس پینات باتر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-05T16:27:45.114Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:30:05.938Z"
+ },
+ "__v": 0,
+ "image": "food_1728330951188.png"
+},
+{
+ "_id": {
+ "$oid": "629cd9ba128ed6fd013243bf"
+ },
+ "price": 2790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باربیکیو وینگز(new)",
+ "description": "بال سرخ شده به همراه سس باربیکیو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-05T16:28:42.441Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:30:19.957Z"
+ },
+ "__v": 0,
+ "image": "food_1728330940826.png"
+},
+{
+ "_id": {
+ "$oid": "629cda1e128ed6fd01324418"
+ },
+ "price": 2590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ سوخاری(new)",
+ "description": "قارچ پولکی، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-05T16:30:22.264Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:37:57.687Z"
+ },
+ "__v": 0,
+ "image": "food_1729757626041.png"
+},
+{
+ "_id": {
+ "$oid": "629df06e128ed6fd013257e3"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوسیب ، البالو ، ادامس دارچین ، موهیتو ، انبه ، سیب یخ ، هندوانه نعنا ، بلوبری ، پرتغال خامه ، آلو یخ ، نعنا ، طالبی ، پاستیل ، کیس می ، شاتوت بستنی ، کاپتان بلک ، ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6288e0d945a8f989e78560f3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-06T12:17:50.380Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-14T10:57:37.100Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629ef999128ed6fd01326812"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تاپ شاین",
+ "description": "بستنی وانیل ، سس توت فرنگی ، اسلایس میوه ، خامه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:09:13.481Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:55:15.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629ef9fb128ed6fd01326833"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک مون",
+ "description": "کرم کارامل ، بستنی نسکافه ، میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:10:51.425Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:55:06.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efa48128ed6fd0132684f"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بن هلن",
+ "description": "بستنی وانیل ، خامه ، گلابی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:12:08.459Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:54:55.256Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efa97128ed6fd01326876"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بنانا اسپیلت",
+ "description": "موز ، بستنی وانیل ، گیلاس ، بیسکوئیت کاکائو",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5ca2cf0cf6959b13cd3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:13:27.809Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:54:27.967Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efaf8128ed6fd01326898"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جویس اسپانیائی",
+ "description": "آب البالو ، آب پرتغال ، موز",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:15:04.605Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:54:15.642Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efb49128ed6fd013268ba"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ملون",
+ "description": "طالبی ، آب گاز دار ، نعنا ، شکر",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:16:25.665Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:54:00.619Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efb9f128ed6fd013268d1"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سانگریا",
+ "description": "انگور سفید ، آب انار ، آب پرتغال ، آب گاز دار ، دارچین ، لیمو حلقه شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:17:51.149Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:52:45.842Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efc52128ed6fd01326904"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پانچ هلو",
+ "description": "هلو ، آب گاز دار ، آب لیمو ترش ، شکر",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:20:50.932Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:52:29.051Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efc93128ed6fd0132691c"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیناکولادا",
+ "description": "شیر نارگیل ، آب اناناس ، یخ ، شکر ، خامه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:21:55.639Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:52:12.186Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efcd4128ed6fd01326934"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیکو آدو",
+ "description": "موز ، توت فرنگی ، آب اناناس ، پرتغال",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:23:00.565Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:51:43.778Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efd3c128ed6fd0132694e"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پانچ آب آلبالو و انار",
+ "description": "آب انار ، آب آلبالو ، آب گاز دار ، لیمو ترش",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:24:44.240Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:51:12.788Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629efd99128ed6fd0132696e"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گرنادین",
+ "description": "آب انار ، یخ ، عرق بهار نارنج ، آبلیموی تازه ، شکر",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:26:17.039Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:50:59.763Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f0088128ed6fd013269a5"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل نوتلا",
+ "description": "وافل ، بستنی نوتلا ، سس توت فرنگی ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:38:48.043Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:50:44.386Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f00c3128ed6fd013269bc"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل کاکائو",
+ "description": "وافل ، بستنی شکلات ، سس شکلات ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:39:47.778Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:50:26.662Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f0107128ed6fd013269d3"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل کاکائو و موز",
+ "description": "وافل ، بستنی شکلات ، سس شکلات ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:40:55.540Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:50:14.441Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f0155128ed6fd013269f1"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل وانیل خامه",
+ "description": "وافل ، بستنی وانیل ، سس کارامل ، خامه ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:42:13.891Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:49:57.398Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f01b8128ed6fd01326a1b"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل شاتوت",
+ "description": "وافل ، بستنی شاتوت ، سس توت فرنگی ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:43:52.666Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:49:34.482Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f0202128ed6fd01326a32"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل بلژیکی",
+ "description": "وافل ، بستنی وانیل ، بستنی شکلات ، بستنی نوتلا ، سس شکلات موز ، خامه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:45:06.180Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:48:25.437Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f0275128ed6fd01326a50"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل کارامل خامه",
+ "description": "وافل ، بستنی کارامل ، خامه ، سس کارامل ، اسلایس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5b92cf0cf6959b13cca"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:47:01.550Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T12:48:14.242Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "629f03a1128ed6fd01326ab6"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c4cb2cf0cf6959b13c85"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-06-07T07:52:01.252Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-17T14:04:07.985Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a087ef128ed6fd013287a4"
+ },
+ "price": 4430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "برگر150گرمی، پنیر گودا، کاهو لوتوس، گوجه فرنگی، خیار، سس مخصوص، ساید سالاد و سیب زمینی(سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-08T11:28:47.521Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:30:37.895Z"
+ },
+ "__v": 0,
+ "image": "food_1729758313692.png"
+},
+{
+ "_id": {
+ "$oid": "62a1f956128ed6fd0132a3c5"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-09T13:44:54.493Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-09T13:44:54.493Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62a31d4f128ed6fd0132c12a"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ فرایز",
+ "description": "سیب زمینی خلالی،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-06-10T10:30:39.843Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:38:11.279Z"
+ },
+ "__v": 0,
+ "image": "food_1729758014480.png"
+},
+{
+ "_id": {
+ "$oid": "62aa1553128ed6fd01333d45"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب مخصوص سعادت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T17:22:27.045Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T17:22:27.045Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa23a2128ed6fd01334109"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیشلیک (شاندیز)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:23:30.090Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T20:39:30.631Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa23c4128ed6fd01334113"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:24:04.411Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:24:04.411Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa23d8128ed6fd01334120"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سلطانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:24:24.057Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:24:24.057Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa23f1128ed6fd0133412a"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چنجه اعیانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:24:49.876Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:24:49.876Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2407128ed6fd01334134"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:25:11.278Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:25:11.278Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa243c128ed6fd0133415d"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:26:04.276Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:26:18.300Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa248d128ed6fd01334184"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:27:25.980Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:27:48.028Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa24c9128ed6fd013341a1"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بختیاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:28:25.380Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:28:25.380Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa24ea128ed6fd013341b1"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوبیده (لقمه)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:28:58.968Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:28:58.968Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2646128ed6fd013341e2"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب ممتاز بلغاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:34:46.796Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:34:46.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa266d128ed6fd013341f2"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب مصری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:35:25.772Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:35:25.772Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2692128ed6fd013341ff"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاسه کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:36:02.620Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:36:02.620Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa26b8128ed6fd0133420c"
+ },
+ "price": 5700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی مخصوص (دورچین)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:36:40.896Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T18:19:56.853Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa26d2128ed6fd01334219"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماهی قزل آلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:37:06.391Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:37:17.430Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2729128ed6fd01334236"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:38:33.968Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:38:33.968Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa27eb128ed6fd0133424a"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه چینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d21f128ed6fd01333336"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:41:47.897Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:42:31.240Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa280b128ed6fd0133425e"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d21f128ed6fd01333336"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:42:19.777Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:42:19.777Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2919128ed6fd0133429f"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو پفکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d21f128ed6fd01333336"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:46:49.377Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:46:49.377Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa293a128ed6fd013342a9"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d21f128ed6fd01333336"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:47:22.292Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:47:22.292Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2979128ed6fd013342b6"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d23f128ed6fd0133333f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:48:25.682Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:48:25.682Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2995128ed6fd013342c0"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d23f128ed6fd0133333f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:48:53.611Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:48:53.611Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa29b1128ed6fd013342ce"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد یونانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d23f128ed6fd0133333f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T18:49:21.537Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T18:49:21.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa2d96128ed6fd01334341"
+ },
+ "price": 280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد فصل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d23f128ed6fd0133333f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:05:58.770Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:05:58.770Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3089128ed6fd0133438c"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:18:33.846Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T09:22:42.687Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa30cf128ed6fd013343aa"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماهیچه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:19:43.659Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T09:26:31.277Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa324d128ed6fd013343d3"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d259128ed6fd0133334b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:26:05.860Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:26:05.860Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3279128ed6fd013343dd"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d259128ed6fd0133334b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:26:49.878Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:31:24.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa329f128ed6fd013343ea"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d259128ed6fd0133334b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:27:27.711Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:27:27.711Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa32d9128ed6fd013343ff"
+ },
+ "price": 80000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت welcome",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d259128ed6fd0133334b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:28:25.475Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:39:33.521Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa35ab128ed6fd0133444d"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قلیان (انواع طمع ها)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d264128ed6fd01333354"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:40:27.602Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:40:50.237Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa37d8128ed6fd01334484"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:49:44.289Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:49:56.582Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa37ff128ed6fd0133449b"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:50:23.219Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:50:23.219Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3818128ed6fd013344a8"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:50:48.329Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:50:48.329Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa382c128ed6fd013344b2"
+ },
+ "price": 370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:51:08.461Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:51:08.461Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa384a128ed6fd013344bc"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:51:38.438Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:51:38.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3861128ed6fd013344c6"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:52:01.859Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:52:01.859Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3879128ed6fd013344d0"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:52:25.401Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:52:25.401Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa389a128ed6fd013344da"
+ },
+ "price": 370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d606128ed6fd0133338a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T19:52:58.561Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T19:57:25.496Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3a66128ed6fd013344f4"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:00:38.201Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:00:38.201Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3a85128ed6fd013344fe"
+ },
+ "price": 470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:01:09.021Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:01:09.021Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3aaf128ed6fd01334508"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هایپ اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:01:51.687Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:01:51.687Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3ac7128ed6fd01334512"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:02:15.160Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:02:30.448Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3afb128ed6fd01334529"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سودا امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d621128ed6fd01333393"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:03:07.160Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:03:07.160Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3b1c128ed6fd01334533"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d630128ed6fd0133339c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:03:40.931Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:03:40.931Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3b45128ed6fd0133453d"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سفید",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d630128ed6fd0133339c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:04:21.617Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:04:21.617Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3b5e128ed6fd01334547"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d630128ed6fd0133339c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:04:46.559Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:04:46.559Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3b8a128ed6fd01334551"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6bc128ed6fd013333bb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:05:30.106Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:14:00.732Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3da1128ed6fd0133457a"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6bc128ed6fd013333bb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:14:25.421Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:14:40.647Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa3dfa128ed6fd0133459e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "v60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6bc128ed6fd013333bb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:15:54.350Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:15:54.350Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa41ec128ed6fd013345ce"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رینبو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:32:44.091Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T10:13:51.700Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa4204128ed6fd013345d8"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بولفراگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:33:08.878Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:33:08.878Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa4633128ed6fd01334614"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلور بنفش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:50:59.457Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:50:59.457Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa464a128ed6fd01334625"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:51:22.629Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:51:22.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa465f128ed6fd0133462f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو پرتقال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:51:43.536Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:51:54.581Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa4688128ed6fd01334646"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شوکو شیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6e4128ed6fd013333d4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:52:24.929Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-28T12:42:44.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa46a8128ed6fd01334650"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیناکولادا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6e4128ed6fd013333d4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:52:56.191Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:52:56.191Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62aa46d2128ed6fd0133465a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شامروک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6e4128ed6fd013333d4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-15T20:53:38.247Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-15T20:53:38.247Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b03b25128ed6fd01339f9f"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوپ شیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T09:17:25.796Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T09:17:25.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b03bad128ed6fd01339fb1"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک و بادمجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T09:19:41.829Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T18:19:14.982Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b03bd7128ed6fd01339fbe"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میرزا قاسمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T09:20:23.110Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T18:18:35.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b04295128ed6fd0133a115"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسکندر کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T09:49:09.990Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T20:33:24.085Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b04c85128ed6fd0133a25b"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه با استخوان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d201128ed6fd01333327"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-20T10:31:33.901Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-20T20:31:35.937Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1d4a4128ed6fd0133bae8"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک موز گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T14:24:36.708Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-21T14:24:36.708Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1dd2e128ed6fd0133bca1"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب پنیری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T15:01:02.650Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-21T15:01:02.650Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1e307128ed6fd0133bd25"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با سس قارچ فیله گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T15:25:59.166Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-17T16:08:39.904Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1e6ac128ed6fd0133bdee"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با سس قارچ وبیکن گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T15:41:32.147Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-21T15:41:32.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1e731128ed6fd0133be0b"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی پنیری با سوجوک و ژامبون میکس ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T15:43:45.376Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-21T15:43:45.376Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b1ea58128ed6fd0133be95"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3d534a8d41eae80b0cfb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-21T15:57:12.815Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-21T15:57:12.815Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62b3683f128ed6fd0133e6df"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-06-22T19:06:39.194Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-22T19:06:39.194Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62baf8effbc4ea222a48f03d"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو آنجل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62a9d6cc128ed6fd013333c4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-06-28T12:49:51.217Z"
+ },
+ "updated_at": {
+ "$date": "2022-06-28T12:49:51.217Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62c07257fbc4ea222a498210"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تست فیله گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3db44a8d41eae80b0d16"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-07-02T16:29:11.558Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-02T16:29:11.558Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62c0727cfbc4ea222a49821a"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تست فیله مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3db44a8d41eae80b0d16"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-07-02T16:29:48.558Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-02T16:29:48.558Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62c99cdf7400250986c6930c"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-07-09T15:21:03.076Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-09T15:21:03.076Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62c99d627400250986c6933f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62b03ac4128ed6fd01339f8f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "created_at": {
+ "$date": "2022-07-09T15:23:14.688Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-09T15:23:14.688Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb1f87400250986c70b06"
+ },
+ "price": 1350000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب برگ قاجاری",
+ "description": "گوشت فیله مرینت شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:52:24.843Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T16:25:09.633Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb2a17400250986c70b2f"
+ },
+ "price": 1250000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب صدر اعظم",
+ "description": "فیله مغز دار رُل شده (گوشت قرمز)",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:55:13.979Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:59:30.093Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb2e97400250986c70b45"
+ },
+ "price": 1750000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاسه کباب گلپایگانی",
+ "description": "گوشت قرمز فیله + گوشت سفید فیله مرغ + قارچ کبابی + روغن محلی + کنجد سفید ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:56:25.460Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:56:25.460Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb3427400250986c70b61"
+ },
+ "price": 1450000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب برگ تبريزی ",
+ "description": "گوشت قرمز فیله + گوشت کوبیده + فلفل دلمه + کنجد سفید",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:57:54.434Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:02:54.599Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb3927400250986c70b6e"
+ },
+ "price": 1150000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه درباری ",
+ "description": "فیله مغزدار رُل شده (گوشت سفید)",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T11:59:14.742Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T11:59:14.742Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb3c87400250986c70b85"
+ },
+ "price": 950000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:00:08.113Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:00:08.113Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb3ea7400250986c70b8f"
+ },
+ "price": 900000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب اسکندری",
+ "description": "گوشت سفید فیله + گوشت کوبیده + فلفل دلمه + کنجد سفید",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaa9c7400250986c70a30"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:00:42.828Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:03:18.421Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb4fa7400250986c70be9"
+ },
+ "price": 1100000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب چنجه",
+ "description": "فیله",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:05:14.343Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:05:14.343Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb5237400250986c70bf8"
+ },
+ "price": 990000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب بختیاری ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:05:55.834Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:05:55.834Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb55f7400250986c70c0d"
+ },
+ "price": 800000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس",
+ "description": "جوجه ۱۵۰ گرم + کوبیده ۸۵ گرم",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:06:55.474Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:06:55.474Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb5de7400250986c70c45"
+ },
+ "price": 650000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب نگینی ",
+ "description": "۲ سیخ ۱۸۰ گرمی",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:09:02.438Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:09:02.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb6137400250986c70c5c"
+ },
+ "price": 630000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب گلپایگانی",
+ "description": "۲ سیخ ۱۸۰ گرمی با دورچین ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:09:55.337Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:09:55.337Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb6397400250986c70c6d"
+ },
+ "price": 600000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه کباب",
+ "description": "۲۵۰ گرمی",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:10:33.953Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:10:33.953Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb6567400250986c70c84"
+ },
+ "price": 600000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه چینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:11:02.224Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:11:02.224Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb6727400250986c70c9a"
+ },
+ "price": 590000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "شنسل مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:11:30.443Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:11:30.443Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb6997400250986c70cad"
+ },
+ "price": 320000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو ایرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceaac57400250986c70a39"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:12:09.353Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:12:09.353Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb7e87400250986c70ce8"
+ },
+ "price": 75000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست موسیر پاستوریزه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:17:44.588Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:17:44.588Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb8237400250986c70cf2"
+ },
+ "price": 130000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیتون پروده پاستوریزه مهراد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:18:43.231Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:18:43.231Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb8e37400250986c70cfc"
+ },
+ "price": 130000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "زيتون شور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:21:55.993Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:21:55.993Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb90f7400250986c70d06"
+ },
+ "price": 150000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کاهو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:22:39.251Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:22:39.251Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb9377400250986c70d19"
+ },
+ "price": 130000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر ترشی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab227400250986c70a42"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:23:19.541Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:23:19.541Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceb9a07400250986c70d23"
+ },
+ "price": 120000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه قوطی",
+ "description": "کوکا - فانتا - سون آپ ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:25:04.844Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:25:04.844Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceba2b7400250986c70d2f"
+ },
+ "price": 65000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه ۳۰۰ سی سی",
+ "description": "کوکا - پپسی - فانتا - اسپرایت ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:27:23.603Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:27:23.603Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ceba627400250986c70d3b"
+ },
+ "price": 150000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه خانواده ",
+ "description": "کوکا - فانتا - اسپرایت ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:28:18.841Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:28:18.841Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebaad7400250986c70d51"
+ },
+ "price": 120000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر قوطی تک نفره",
+ "description": "هلو - لیمو - استوایی - آناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:29:33.748Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:29:33.748Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebb017400250986c70d5b"
+ },
+ "price": 150000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر خانواده ",
+ "description": "هلو - لیمو - استوایی - آناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:30:57.892Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:30:57.892Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebb227400250986c70d65"
+ },
+ "price": 150000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:31:30.271Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:31:30.271Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebb547400250986c70d72"
+ },
+ "price": 80000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "تاک انگور ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:32:20.282Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:32:20.282Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebb767400250986c70d7c"
+ },
+ "price": 40000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:32:54.352Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:32:54.352Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebbaf7400250986c70d95"
+ },
+ "price": 80000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی خانواده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceab507400250986c70a4b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:33:51.519Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:33:51.519Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebc2a7400250986c70db7"
+ },
+ "price": 300000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای فلاسک ساده با نبات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:35:54.853Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:35:54.853Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebc687400250986c70dc4"
+ },
+ "price": 350000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای فلاسک طعم با نبات",
+ "description": "هل - دارچین - زنجبیل - گلمحمدی- به لیمو ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:36:56.288Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:36:56.288Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebc857400250986c70dce"
+ },
+ "price": 400000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای فلاسک زعفرانی با نبات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:37:25.781Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:37:25.781Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebcd97400250986c70de7"
+ },
+ "price": 120000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:38:49.821Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:38:49.821Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebcf57400250986c70dfa"
+ },
+ "price": 100000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:39:17.999Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:39:17.999Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebd187400250986c70e04"
+ },
+ "price": 80000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافی میکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabc87400250986c70a68"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:39:52.690Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:39:52.690Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebdde7400250986c70e2c"
+ },
+ "price": 500000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساده",
+ "description": "بلوبری - آدامس دارچین - نعنا پرتقال - دوسیب - دوسیب شلیل - هندونه نعنا - موهیتو - سیب یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabe27400250986c70a71"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:43:10.581Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:43:10.581Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebe037400250986c70e51"
+ },
+ "price": 900000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "عربی",
+ "description": "آدامس دارچین - تمشک بستنی ",
+ "short_description": "",
+ "category": {
+ "$oid": "62ceabe27400250986c70a71"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:43:47.413Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:43:47.413Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebe857400250986c70e83"
+ },
+ "price": 80000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62cebe677400250986c70e76"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:45:57.747Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:45:57.747Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebebe7400250986c70ea9"
+ },
+ "price": 60000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی پاستوریزه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62cebe677400250986c70e76"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:46:54.398Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:46:54.398Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62cebed47400250986c70ebf"
+ },
+ "price": 300000,
+ "stock": 1000,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62cebe677400250986c70e76"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "created_at": {
+ "$date": "2022-07-13T12:47:16.859Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:47:16.859Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62ced9a17400250986c712a5"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3ddf4a8d41eae80b0d2c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-07-13T14:41:37.322Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T14:45:28.045Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62d78ba07400250986c7ee65"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تونیک",
+ "description": "آب لیموی تازه ، یخ ، یک شات اسپرسو ، ( سیروپ کارامل به دلخواه)",
+ "short_description": "",
+ "category": {
+ "$oid": "6208c5582cf0cf6959b13ca7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "created_at": {
+ "$date": "2022-07-20T04:59:12.332Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-20T04:59:12.332Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62deacecfaacb066e1208800"
+ },
+ "price": 3090000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اگ بندیکت",
+ "description": "نان انگلیش مافین،بیکن،قارچ،اسفناج،پچد اگ،سس هالندز",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-25T14:47:08.197Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:38:34.347Z"
+ },
+ "__v": 0,
+ "image": "food_1729757064050.png"
+},
+{
+ "_id": {
+ "$oid": "62deaf7afaacb066e12088d7"
+ },
+ "price": 3250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بوته اسپشیال",
+ "description": "نیمرو،سوسیس،بیکن،هش براون، گوجه کبابی،قارچ کبابی،خوراک لوبیا و سالاد ",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-25T14:58:02.674Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:04:01.625Z"
+ },
+ "__v": 0,
+ "image": "food_1765281838221.png"
+},
+{
+ "_id": {
+ "$oid": "62deb05dfaacb066e1208900"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اراک برک",
+ "description": "سر شیر، پنیر، کره، گردو، مربا، عسل، نوتلا، گوجه، خیار، دورچین به همراه نان",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-25T15:01:49.893Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:38:58.776Z"
+ },
+ "__v": 0,
+ "image": "food_1761678002013.png"
+},
+{
+ "_id": {
+ "$oid": "62e00b91faacb066e120adb5"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیمون کوکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-07-26T15:43:13.749Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-26T15:43:13.749Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62e00d2bfaacb066e120adf2"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج سک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3df34a8d41eae80b0d37"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-07-26T15:50:03.086Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-26T15:50:03.086Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62e3d62696be484852cba02d"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپرونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd47a5faacb066e12064d0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-07-29T12:44:22.888Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:32:05.500Z"
+ },
+ "__v": 0,
+ "image": "food_1659522888259.png"
+},
+{
+ "_id": {
+ "$oid": "62e4010e96be484852cba474"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پپرونی",
+ "description": "پپرونی - سس مخصوص موتزارلا",
+ "short_description": "",
+ "category": {
+ "$oid": "62e400a696be484852cba44b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62e3ff5e96be484852cba3c3"
+ },
+ "created_at": {
+ "$date": "2022-07-29T15:47:26.777Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-29T15:47:37.891Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "62e57ea796be484852cbd15a"
+ },
+ "price": 1990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تاور رینگز",
+ "description": "7 حلقه پیاز سوخاری",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-30T18:55:35.094Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:31:10.976Z"
+ },
+ "__v": 0,
+ "image": "food_1728330592819.png"
+},
+{
+ "_id": {
+ "$oid": "62e6265396be484852cbd498"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd47a5faacb066e12064d0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2022-07-31T06:50:59.196Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:32:36.909Z"
+ },
+ "__v": 0,
+ "image": "food_1663567920922.png"
+},
+{
+ "_id": {
+ "$oid": "62e65b7296be484852cbd95b"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وا فل",
+ "description": "دو عدد وافل، یک اسکوپ بستنی، کرم شکلات و دورچین میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-31T10:37:38.632Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:39:32.979Z"
+ },
+ "__v": 0,
+ "image": "food_1729758734918.png"
+},
+{
+ "_id": {
+ "$oid": "62e65c1396be484852cbd97a"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنکیک",
+ "description": "پنکیک، مربا ویوافل، کرم شکلات و دورچین میوه جات فصل",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-07-31T10:40:19.603Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-21T11:53:47.273Z"
+ },
+ "__v": 0,
+ "image": "food_1729756930760.png"
+},
+{
+ "_id": {
+ "$oid": "62ef9d6296be484852ccbf9d"
+ },
+ "price": 5890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاتانیا",
+ "description": "فیله گوشت مزه دار شده، سالامی، سس گوجه، پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-08-07T11:09:22.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:31:36.623Z"
+ },
+ "__v": 0,
+ "image": "food_1729756502136.png"
+},
+{
+ "_id": {
+ "$oid": "62fcced796be484852cdf7fe"
+ },
+ "price": 4790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مرغ و گردو",
+ "description": "کاهو، مرغ گریل شده ، گردو ، گوجه چری ، پنیر پارمسان ، سس آنتروکوت، جعفری",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-08-17T11:19:51.164Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:31:46.793Z"
+ },
+ "__v": 0,
+ "image": "food_1729757913755.png"
+},
+{
+ "_id": {
+ "$oid": "630a43dd96be484852cf9d2c"
+ },
+ "price": 5480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شف برگر (امضای ژیوان).. burger chef",
+ "description": "گوشت خالص برگر/ رست بیف/ سس قارچ/پنیر گودا/ نان با خمیر مخصوص..burger meat/roast beef/mushroom sauce/gouda cheese/bread with special dough ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2022-08-27T16:18:37.589Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:32:24.286Z"
+ },
+ "__v": 0,
+ "image": "food_1713706844133.png"
+},
+{
+ "_id": {
+ "$oid": "6314a58fe410c5322751b152"
+ },
+ "price": 1410000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنینی مرغ",
+ "description": "فیله مرغ - قارچ - پنیر گودا - پنیر پیتزا - سیب زمینی - سالاد",
+ "short_description": "",
+ "category": {
+ "$oid": "6314a2d5e410c5322751b0ba"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "63131c3d96be484852d0a9ed"
+ },
+ "image": "food_1662297483531.png",
+ "created_at": {
+ "$date": "2022-09-04T13:18:07.576Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:21:39.848Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314a640e410c5322751b19a"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنینی هات داگ اسپشیال",
+ "description": "هات داگ پنیری - قارچ - پنیر گودا - پنیر پیتزا - سیب زمینی - سالاد",
+ "short_description": "",
+ "category": {
+ "$oid": "6314a2d5e410c5322751b0ba"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "63131c3d96be484852d0a9ed"
+ },
+ "image": "food_1662297660322.png",
+ "created_at": {
+ "$date": "2022-09-04T13:21:04.159Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:21:26.765Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314acb6e410c5322751b3e4"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا استابیوتی",
+ "description": "پیتزا پپرونی",
+ "short_description": "",
+ "category": {
+ "$oid": "6314ab2be410c5322751b32c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6314a7c9e410c5322751b227"
+ },
+ "image": "food_1662299315139.png",
+ "created_at": {
+ "$date": "2022-09-04T13:48:38.961Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:48:38.961Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6314d485e410c5322751bf80"
+ },
+ "price": 370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آویشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ee3f954a8d41eae80b0e1c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "created_at": {
+ "$date": "2022-09-04T16:38:29.346Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T16:38:29.346Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63401da0e410c5322755338e"
+ },
+ "price": 4070000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن اسفناچ(new)",
+ "description": "سینه مرغ گریل، نان چیاباتا، سس زرشک، سس اسفناج، کاهو فرانسه، گوجه فرنگی، سیب زمینی",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2022-10-07T12:37:52.746Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:32:28.243Z"
+ },
+ "__v": 0,
+ "image": "food_1728331212413.png"
+},
+{
+ "_id": {
+ "$oid": "63501e05f031b836b300660d"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرنسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-10-19T15:55:49.254Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:38:41.487Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63501e24f031b836b3006617"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627ff48fec44ae525a153a39"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2022-10-19T15:56:20.640Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:37:54.844Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6366256cf031b836b301b7f5"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوتوس شیک latus millshake",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2022-11-05T08:57:16.844Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:54:51.428Z"
+ },
+ "__v": 0,
+ "image": "food_1715855188287.png"
+},
+{
+ "_id": {
+ "$oid": "636625f7f031b836b301b840"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورئو شیک oreo milkshake",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2022-11-05T08:59:35.577Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:54:20.773Z"
+ },
+ "__v": 0,
+ "image": "food_1715854766909.png"
+},
+{
+ "_id": {
+ "$oid": "636627e7f031b836b301b89a"
+ },
+ "price": 1430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو Cortado",
+ "description": "قهوه 70/30و شیر به نسبت یک دیگر ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2022-11-05T09:07:51.526Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:51:36.681Z"
+ },
+ "__v": 0,
+ "image": "food_1715710960967.png"
+},
+{
+ "_id": {
+ "$oid": "63662ad9f031b836b301b9e3"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو میکس mixed mojito",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2022-11-05T09:20:25.125Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:31:33.252Z"
+ },
+ "__v": 0,
+ "image": "food_1714293251086.png"
+},
+{
+ "_id": {
+ "$oid": "6398895c82d7fc8d726a7b9c"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "میکس قهوه مورد نظر 70-30 در صورت نیاز قابل تغییر میباشد",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1670941019217.png",
+ "created_at": {
+ "$date": "2022-12-13T14:17:00.069Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:47:46.688Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "639889e882d7fc8d726a7bae"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1670941158643.png",
+ "created_at": {
+ "$date": "2022-12-13T14:19:20.229Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:47:12.586Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63988a6082d7fc8d726a7bbc"
+ },
+ "price": 510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1670941278888.png",
+ "created_at": {
+ "$date": "2022-12-13T14:21:20.097Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:50:51.305Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63988ac882d7fc8d726a7bcb"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1670941383289.png",
+ "created_at": {
+ "$date": "2022-12-13T14:23:04.667Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:49:31.800Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6398922982d7fc8d726a7c99"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683374090799.png",
+ "created_at": {
+ "$date": "2022-12-13T14:54:33.143Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:41:40.700Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6398936282d7fc8d726a7cc9"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1670943585434.png",
+ "created_at": {
+ "$date": "2022-12-13T14:59:46.537Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:44:04.285Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "639c92ad82d7fc8d726ac523"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639c921d82d7fc8d726ac4ef"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1671205548041.png",
+ "created_at": {
+ "$date": "2022-12-16T15:45:49.732Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:45:59.840Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "639c949082d7fc8d726ac5bd"
+ },
+ "price": 770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وافل",
+ "description": "شکلات و موز",
+ "short_description": "",
+ "category": {
+ "$oid": "639c921d82d7fc8d726ac4ef"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1671206028714.png",
+ "created_at": {
+ "$date": "2022-12-16T15:53:52.511Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T17:17:21.606Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63c90136701ec3ea9971eed5"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیب زمینی چدار",
+ "description": "سیب زمینی سرخ شده. دیپ چدار . جعفری و ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "image": "food_1674117429783.png",
+ "created_at": {
+ "$date": "2023-01-19T08:37:10.915Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:35:55.366Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc06ae701ec3ea99722d86"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "اسپرسو و شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683373474894.png",
+ "created_at": {
+ "$date": "2023-01-21T15:37:18.866Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:48:55.989Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc100b701ec3ea99722fcf"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1674317833311.png",
+ "created_at": {
+ "$date": "2023-01-21T16:17:15.975Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:50:39.005Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc10d0701ec3ea99723021"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1674318031385.png",
+ "created_at": {
+ "$date": "2023-01-21T16:20:32.659Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:50:19.665Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc1143701ec3ea99723036"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V 60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1674318145146.png",
+ "created_at": {
+ "$date": "2023-01-21T16:22:27.164Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:50:00.668Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc11b1701ec3ea99723046"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایروپرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683374626803.png",
+ "created_at": {
+ "$date": "2023-01-21T16:24:17.981Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:49:38.925Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "63cc1217701ec3ea9972305f"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "در صورت نیاز شیر اضافه میشود",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1674318357015.png",
+ "created_at": {
+ "$date": "2023-01-21T16:25:59.757Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:59:14.804Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "640f3702dceeef8194956a72"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پشن لاین",
+ "description": "پشن فروت.لیمو.آلبالو.سودا.بلو کاراسایو",
+ "short_description": "",
+ "category": {
+ "$oid": "62815ce6d65610bd301c6585"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-13T14:45:22.801Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-13T15:28:50.040Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64105f93dceeef81949578bd"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایریش کافی",
+ "description": "شکر قهوه ای +قهوه+سیروپ ایریش+فوم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bddd65610bd301c653a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-14T11:50:43.130Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-14T11:50:43.130Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64105ffcdceeef81949578de"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-14T11:52:28.636Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-14T11:52:28.636Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6410605fdceeef81949578ea"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای مینت",
+ "description": "نعناع+چای سیاه+دارچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-14T11:54:07.156Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-14T11:54:07.156Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "641215b1dceeef819495930d"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815c77d65610bd301c6564"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-15T19:00:01.066Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-15T19:00:01.066Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64246049e9ad5f14dee99ca7"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62815bf1d65610bd301c6543"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "created_at": {
+ "$date": "2023-03-29T15:59:05.680Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-29T15:59:05.680Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6426c73ce9ad5f14dee9ce40"
+ },
+ "price": 4730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف اسفناج(new)",
+ "description": "پنه ، فیله گوساله ، سس اسفناج، پنیر پارمسان، چیپس هویج، میکرو گرین، گوجه خشک",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2023-03-31T11:42:52.062Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:32:40.395Z"
+ },
+ "__v": 0,
+ "image": "food_1728330530614.png"
+},
+{
+ "_id": {
+ "$oid": "64285eace9ad5f14dee9f141"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "چیز فرایز لارج",
+ "description": "سیب زمینی سرخ شده همراه با سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2023-04-01T16:41:16.807Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:11:38.715Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6433097be9ad5f14deea9615"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کیک دبل چاکلت(new)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fe90bec44ae525a153778"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2023-04-09T18:52:43.222Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:31:35.553Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "643d684e98ff3c74143fd532"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا ژامبون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd47a5faacb066e12064d0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1681745992648.png",
+ "created_at": {
+ "$date": "2023-04-17T15:39:58.298Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:33:40.788Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "643d68d698ff3c74143fd545"
+ },
+ "price": 1730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا مارگاریتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd47a5faacb066e12064d0"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1681746130413.png",
+ "created_at": {
+ "$date": "2023-04-17T15:42:14.869Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:34:45.753Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "643d76d998ff3c74143fd89f"
+ },
+ "price": 810000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683377587080.png",
+ "created_at": {
+ "$date": "2023-04-17T16:42:01.333Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:58:02.854Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "644935de98ff3c741440b042"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی سرخ شده",
+ "description": "سیب زمینی .. French fries",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-04-26T14:31:58.773Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:57:54.588Z"
+ },
+ "__v": 0,
+ "image": "food_1715934532096.png"
+},
+{
+ "_id": {
+ "$oid": "6450ad0b98ff3c7414414285"
+ },
+ "price": 2080000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر آجیلی سپنج",
+ "description": "۱۵۰ گرم گوشت خالص ،مغز پسته ،پنیر پیتزا،کاهو،گوجه،پیاز کاراملی،سس پسته و گردو،سس مک دونالد،دیپ چدار،گودا)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:26:19.767Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:18:24.727Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ad2998ff3c741441428f"
+ },
+ "price": 1880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماشروم برگر",
+ "description": "(۱۳۰ گرم گوشت خالص،سس قارچ،کاهو،گوجه،جعفری،) ",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:26:49.989Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:18:58.109Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ad6498ff3c74144142b1"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالوپینو",
+ "description": "(۱۳۰ گرم گوشت،هالوپینو،کاهو،گوجه،گودا)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:27:48.882Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:19:18.097Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ad7f98ff3c74144142bb"
+ },
+ "price": 1920000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "(۱۳۰ گرم گوشت خالص،گوجه،خیارشور،کاهو ،گودا،دیپ چدار)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:28:15.949Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:18:40.038Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450addb98ff3c74144142d3"
+ },
+ "price": 1460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر فیله سوخاری",
+ "description": "(فیله سوخاری ،سس قارچ،کاهو،گوجه)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:29:47.602Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:19:37.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ae2298ff3c74144142f1"
+ },
+ "price": 1670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آلفردو",
+ "description": "(پنه ۱۶۰ گرم،فیله مرغ گریل ،سس قارچ،پنیر پارمسان)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450adf498ff3c74144142e4"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:30:58.284Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:21:27.555Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450ae7598ff3c74144142fe"
+ },
+ "price": 1720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پستو",
+ "description": "(پنه ۱۶۰ گرم،فیله مرغ گریل شده،سس پستو،پنیر پارمسان)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450adf498ff3c74144142e4"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:32:21.044Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:21:17.634Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b01198ff3c7414414332"
+ },
+ "price": 1820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گوشت پستو",
+ "description": "(۸۰ گرم گوشت راسته خالص،سس پستو ،گوجه،ریحون،پارمسان)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450aec598ff3c741441431c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:39:13.166Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:21:52.489Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b06b98ff3c741441433f"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گوشت باربیکیو",
+ "description": "(۸۰ گرم گوشت راسته خالص ،پیاز کاراملی،هالوپینو،گوجه ،کاهو،سس باربیکیو)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450aec598ff3c741441431c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:40:43.340Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:22:06.597Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b0df98ff3c741441436a"
+ },
+ "price": 1470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مرغ پستو",
+ "description": "(فیله مرغ گریل ۲ عدد ،سس پستو،گوجه،ریحون،پارمسان)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450aec598ff3c741441431c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:42:39.323Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:22:22.031Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b0fd98ff3c7414414374"
+ },
+ "price": 1420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مرغ باربیکیو",
+ "description": "(فیله مرغ ۲ عدد ،پیاز کاراملی،هالوپینو،گوجه،کاهو،سس باربیکیو)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450aec598ff3c741441431c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:43:09.870Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:22:30.560Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b13298ff3c741441439a"
+ },
+ "price": 1220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ کاراملی",
+ "description": "(سوسیس،پیاز کاراملی،گوجه،خیارشور،خلال سیب زمینی،گودا)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:44:02.674Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:23:29.114Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b15398ff3c74144143a4"
+ },
+ "price": 1380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ ماشروم",
+ "description": "(سوسیس ،سس قارچ،جعفری،پارمسان)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:44:35.936Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:23:01.597Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b18698ff3c74144143ae"
+ },
+ "price": 1270000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ قارچ و پنیر",
+ "description": "(سوسیس،کاهو،گوجه،پنیر پیتزا،قارچ)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:45:26.528Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:23:16.468Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b1a098ff3c74144143b8"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه",
+ "description": "(سوسیس،خلال سیب زمینی،جعفری)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:45:52.607Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:24:16.835Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b1b998ff3c74144143c2"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه ویژه",
+ "description": "(سوسیس،خلال سیب زمینی،جعفری،سس،پنیر گودا)",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b11298ff3c7414414381"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:46:17.396Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:24:02.295Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b1f098ff3c74144143df"
+ },
+ "price": 1420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b1d498ff3c74144143d2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:47:12.754Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:25:15.727Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b20d98ff3c74144143e9"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b1d498ff3c74144143d2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:47:41.027Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:24:47.782Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b22898ff3c74144143f3"
+ },
+ "price": 1980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b1d498ff3c74144143d2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:48:08.940Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:25:04.780Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b27898ff3c7414414422"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b24a98ff3c7414414400"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:49:28.794Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:25:57.452Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b29698ff3c7414414432"
+ },
+ "price": 970000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی چدار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b24a98ff3c7414414400"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:49:58.019Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:26:12.691Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b2bd98ff3c7414414445"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی سس مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b24a98ff3c7414414400"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:50:37.355Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:25:38.799Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b2d498ff3c741441444f"
+ },
+ "price": 1370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سیب قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b24a98ff3c7414414400"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:51:00.784Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:26:27.150Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b2fd98ff3c7414414469"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b2ed98ff3c741441445c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:51:41.974Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T07:52:56.660Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b31298ff3c7414414473"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b2ed98ff3c741441445c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:52:02.181Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:52:02.181Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b34d98ff3c741441448d"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b33898ff3c7414414480"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:53:01.087Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:53:01.087Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b35c98ff3c7414414497"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b33898ff3c7414414480"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:53:16.195Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:53:16.195Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b3b298ff3c74144144a4"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b33898ff3c7414414480"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T06:54:42.974Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T06:54:42.974Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b5bb98ff3c741441459f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:03:23.205Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:47:08.725Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b5d198ff3c74144145a9"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:03:45.092Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:46:58.473Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b61198ff3c74144145b3"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایروپرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:04:49.279Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:46:39.986Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b62998ff3c74144145bd"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:05:13.298Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:45:58.052Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b65f98ff3c74144145e0"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:06:07.221Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:49:00.368Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b67f98ff3c74144145ec"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:06:39.040Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:50:05.042Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b6a098ff3c74144145f8"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " ایس امریکانو",
+ "description": "350000 - 450000",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:07:12.514Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:50:27.832Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b6b798ff3c7414414602"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:07:35.300Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:50:45.686Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b6d798ff3c741441460c"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس هانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:08:07.060Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:51:19.901Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450b6f098ff3c7414414616"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T07:08:32.952Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:51:31.871Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d15b98ff3c74144147e7"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:01:15.197Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:01:15.197Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d53b98ff3c7414414838"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای طعم دار",
+ "description": "هل،دارچین،زنجیل",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:17:47.031Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:07:38.195Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d55398ff3c7414414842"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:18:11.720Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:18:11.720Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d56c98ff3c741441484f"
+ },
+ "price": 330000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:18:36.309Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:53:29.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d58198ff3c7414414859"
+ },
+ "price": 330000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:18:57.251Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:53:17.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d59698ff3c7414414863"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به لیمو بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:19:18.475Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:53:03.657Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d5a698ff3c741441486d"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " دمنوش گارد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:19:34.440Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:52:47.445Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d5b998ff3c7414414877"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:19:53.989Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:19:53.989Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d5cb98ff3c7414414881"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش ارامش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:20:11.980Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:52:27.340Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d5e398ff3c741441488b"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سپنچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d14398ff3c74144147d7"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:20:35.350Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:51:59.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d61e98ff3c74144148a6"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d60f98ff3c7414414899"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:21:34.602Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:21:34.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d62c98ff3c74144148b0"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d60f98ff3c7414414899"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:21:48.367Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:21:48.367Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d63c98ff3c74144148bd"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d60f98ff3c7414414899"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:22:04.072Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-02T09:22:04.072Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d6a898ff3c74144148d9"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کلاسیک",
+ "description": "وانیل - شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:23:52.589Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:55:07.301Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d6ca98ff3c7414414903"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:24:26.133Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:11:40.719Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d71298ff3c7414414915"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اورئو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:25:38.161Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:54:46.239Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d71f98ff3c7414414922"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:25:51.603Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:54:35.025Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d72f98ff3c741441492f"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:26:07.676Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:54:22.570Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d75398ff3c7414414939"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کیت کت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:26:43.404Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:54:11.432Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d78c98ff3c7414414952"
+ },
+ "price": 980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک سپنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d68d98ff3c74144148ca"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:27:40.502Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:54:00.995Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d7d398ff3c7414414972"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:28:51.865Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:05:09.817Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d9ce98ff3c74144149a7"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:37:18.222Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:05:20.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d9db98ff3c74144149b1"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک اسکای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:37:31.611Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:05:32.350Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450d9f298ff3c74144149c5"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیندرلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:37:54.209Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:05:49.254Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450da0198ff3c74144149cf"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گرین پاور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:38:09.244Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:06:07.560Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450da1398ff3c74144149d9"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایلد بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:38:27.569Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:06:25.300Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6450da2398ff3c74144149e3"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد سامر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-02T09:38:43.206Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:06:37.429Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "645161cd98ff3c7414415ce9"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ربوستا",
+ "description": "30٪ عربیکا، 70٪ ربوستا",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-02T19:17:33.814Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:09:24.669Z"
+ },
+ "__v": 0,
+ "image": "food_1695805575659.png"
+},
+{
+ "_id": {
+ "$oid": "6452117d98ff3c74144160d8"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو عربیکا ",
+ "description": "100٪ عربیکا",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:47:09.746Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:09:48.397Z"
+ },
+ "__v": 0,
+ "image": "food_1695805517940.png"
+},
+{
+ "_id": {
+ "$oid": "645211f698ff3c74144160e5"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو گرم",
+ "description": "اسپرسو، آبجوش",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:49:10.135Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:10:05.100Z"
+ },
+ "__v": 0,
+ "image": "food_1695288603043.png"
+},
+{
+ "_id": {
+ "$oid": "6452124b98ff3c74144160ef"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو گرم",
+ "description": "اسپرسو، شیر، کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:50:35.705Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:40:32.107Z"
+ },
+ "__v": 0,
+ "image": "food_1695287233293.png"
+},
+{
+ "_id": {
+ "$oid": "6452127298ff3c74144160f9"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا گرم",
+ "description": "اسپرسو، شکلات، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:51:14.185Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:10:49.194Z"
+ },
+ "__v": 0,
+ "image": "food_1695287143843.png"
+},
+{
+ "_id": {
+ "$oid": "6452129f98ff3c7414416103"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت ",
+ "description": "شیر، شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:51:59.811Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:11:21.655Z"
+ },
+ "__v": 0,
+ "image": "food_1695287057123.png"
+},
+{
+ "_id": {
+ "$oid": "645212e398ff3c741441610d"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر گرم",
+ "description": "شیر گرم آرامش بخش و هضم آسان برای سلامت گوارش نیز مفید است. و همچنین حاوی تریپتوفان است که منجر به خوابی راحت میشود.",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:53:07.512Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:12:07.162Z"
+ },
+ "__v": 0,
+ "image": "food_1695286705042.png"
+},
+{
+ "_id": {
+ "$oid": "6452130d98ff3c7414416117"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر زردچوبه ",
+ "description": "شیر، زردچوبه، عسل",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:53:49.203Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:14:16.498Z"
+ },
+ "__v": 0,
+ "image": "food_1695286602239.png"
+},
+{
+ "_id": {
+ "$oid": "6452134798ff3c7414416121"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا گرم",
+ "description": "زنجبیل، دارچین، جوز هندی، چای سیاه، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:54:47.274Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:13:24.209Z"
+ },
+ "__v": 0,
+ "image": "food_1695286309005.png"
+},
+{
+ "_id": {
+ "$oid": "6452138c98ff3c7414416131"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "آرامش معده ،بهبود عملکرد قلب و عروق، ضد سرطان، بهبود عملکرد کبد",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:55:56.935Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:14:40.708Z"
+ },
+ "__v": 0,
+ "image": "food_1733426880348.png"
+},
+{
+ "_id": {
+ "$oid": "645213b498ff3c741441613b"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "چای سبز سرشار از پلی فنول بوده که دارای خواص ضد التهابی است. که میتواند پوست تحریک شده شما را آرام کند. قرمزی ناشی از تحریک را کاهش دهد و همچنین تورم پوست شما را کم کند. ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:56:36.409Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:13:56.988Z"
+ },
+ "__v": 0,
+ "image": "food_1695285898103.png"
+},
+{
+ "_id": {
+ "$oid": "645213d598ff3c7414416145"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای آویشن",
+ "description": "استفاده دمنوش آویشن شیرازی باعث رقیق شدن خون میشود و بخشی از عفونتهای ریه را از بین میبرد. دمکرده آویشن همچنین ضد درد مفاصل، ضد سکسکه و ضد نفخ شکم است.",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:57:09.088Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:14:58.714Z"
+ },
+ "__v": 0,
+ "image": "food_1695285962920.png"
+},
+{
+ "_id": {
+ "$oid": "645213f698ff3c741441614f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای گل گاوزبان",
+ "description": "این گیاه، ضدالتهاب، ضدمیکروب، ضد درد و حاوی ترکیبات آنتیاکسیدان است و بهطور ویژه برای درمان و بهبود سرماخوردگی و بهعنوان یک داروی ضداضطراب و آرامبخش مصرف میگردد.",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:57:42.754Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:13:43.670Z"
+ },
+ "__v": 0,
+ "image": "food_1695286023471.png"
+},
+{
+ "_id": {
+ "$oid": "6452141698ff3c7414416162"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش ",
+ "description": "این گیاه دارای آنتی اکسیدانهای ضد چربی خون و ضد سرطان و کاهش فشارخون و همچنین برای درمان سرفه، گلودرد و آنتی باکتریال مصرف میشود.",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffd1a4463c0057e4a346"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:58:14.806Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:11:47.299Z"
+ },
+ "__v": 0,
+ "image": "food_1695286204867.png"
+},
+{
+ "_id": {
+ "$oid": "6452144998ff3c741441616c"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو سرد",
+ "description": "اسپرسو، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:59:05.725Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:40:51.806Z"
+ },
+ "__v": 0,
+ "image": "food_1695285667290.png"
+},
+{
+ "_id": {
+ "$oid": "6452147898ff3c7414416176"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو سرد ",
+ "description": "اسپرسو، شیر فوم دار",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T07:59:52.218Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:41:33.061Z"
+ },
+ "__v": 0,
+ "image": "food_1695285589063.png"
+},
+{
+ "_id": {
+ "$oid": "645214a298ff3c7414416180"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو ",
+ "description": "کارامل، اسپرسو، شیر، یخ ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:00:34.190Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:08:20.886Z"
+ },
+ "__v": 0,
+ "image": "food_1695285486443.png"
+},
+{
+ "_id": {
+ "$oid": "645214c398ff3c741441618a"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا سرد ",
+ "description": "اسپرسو، شیر، شکلات، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:01:07.494Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:07:27.761Z"
+ },
+ "__v": 0,
+ "image": "food_1695285373905.png"
+},
+{
+ "_id": {
+ "$oid": "645214f398ff3c7414416194"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس چاکلت ",
+ "description": "شکلات، شیر، یخ ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:01:55.131Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:07:43.107Z"
+ },
+ "__v": 0,
+ "image": "food_1695285086684.png"
+},
+{
+ "_id": {
+ "$oid": "6452157598ff3c74144161ae"
+ },
+ "price": 120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ اضافه ",
+ "description": "انتخاب دلخواه",
+ "short_description": "",
+ "category": {
+ "$oid": "6452153398ff3c74144161a1"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:04:05.268Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-05T14:15:20.954Z"
+ },
+ "__v": 0,
+ "image": "food_1733343050554.png"
+},
+{
+ "_id": {
+ "$oid": "645215f098ff3c74144161cc"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج و گردو روز ",
+ "description": "یک اسلایس کیک هویج و گردو روز ",
+ "short_description": "",
+ "category": {
+ "$oid": "645215c898ff3c74144161bc"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-05-03T08:06:08.625Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-06T15:00:26.032Z"
+ },
+ "__v": 0,
+ "image": "food_1733345313635.png"
+},
+{
+ "_id": {
+ "$oid": "64563c9898ff3c741441b5db"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو",
+ "description": "اسپرسو و فوم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683373207313.png",
+ "created_at": {
+ "$date": "2023-05-06T11:40:08.644Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:43:09.326Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64563eea98ff3c741441b6b0"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "اسپرسو و شیر و شکلات گرم",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683373800924.png",
+ "created_at": {
+ "$date": "2023-05-06T11:50:02.734Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:47:55.291Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64563fb798ff3c741441b704"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو + گرانولا",
+ "description": "شات اسپرسو و اسکوپ بستنی و گرانول",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696438010688.png",
+ "created_at": {
+ "$date": "2023-05-06T11:53:27.803Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:47:07.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456428e98ff3c741441b79b"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ پرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "63cc0eea701ec3ea99722f38"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683374733936.png",
+ "created_at": {
+ "$date": "2023-05-06T12:05:34.911Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:47:02.974Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456494298ff3c741441b904"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپه لاوندر",
+ "description": "قهوه تادی و عصاره اسطوخودوس و شیر و بستنی",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683376449033.png",
+ "created_at": {
+ "$date": "2023-05-06T12:34:10.696Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:35:57.662Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64564b0598ff3c741441b917"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپه افرا ",
+ "description": "قهوه تادی و شیره درخت افرا و شیر و بستنی",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683376900135.png",
+ "created_at": {
+ "$date": "2023-05-06T12:41:41.737Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:34:48.361Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456532b98ff3c741441ba7d"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683378984433.png",
+ "created_at": {
+ "$date": "2023-05-06T13:16:27.331Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T17:02:42.710Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456539698ff3c741441ba87"
+ },
+ "price": 710000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد اسپرسو ",
+ "description": "قهوه تادی و لیمو و سودا ",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683379091941.png",
+ "created_at": {
+ "$date": "2023-05-06T13:18:14.469Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:10:54.847Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456a2dd98ff3c741441c70e"
+ },
+ "price": 340000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای و نبات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683399387668.png",
+ "created_at": {
+ "$date": "2023-05-06T18:56:29.290Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:31:03.374Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456a36598ff3c741441c721"
+ },
+ "price": 470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683399523608.png",
+ "created_at": {
+ "$date": "2023-05-06T18:58:45.521Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:30:23.397Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456a3b098ff3c741441c736"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "به لیمو و آویشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683399598375.png",
+ "created_at": {
+ "$date": "2023-05-06T19:00:00.626Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:29:25.561Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6456a41f98ff3c741441c740"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش ترش و عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1683399710195.png",
+ "created_at": {
+ "$date": "2023-05-06T19:01:51.779Z"
+ },
+ "updated_at": {
+ "$date": "2023-06-10T18:29:04.028Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646603dc98ff3c741442d701"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 50٪",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:54:20.828Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:19:53.295Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466040b98ff3c741442d730"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 100٪",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:55:07.304Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:20:25.776Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6466045b98ff3c741442d75f"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو 50٪",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-18T10:56:27.135Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:20:51.832Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64679a5198ff3c741442f63b"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T15:48:33.068Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:21:10.186Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64679a8b98ff3c741442f645"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن هیلو 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T15:49:31.014Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:33:00.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64679b2498ff3c741442f64f"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن هیلو %100",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T15:52:04.848Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:21:47.303Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64679cd498ff3c741442f6b1"
+ },
+ "price": 510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 29,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T15:59:16.255Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:24:48.145Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467a28f98ff3c741442f8cb"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 30,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T16:23:43.709Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:30:07.153Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467a5ef98ff3c741442fa0e"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رومانو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T16:38:07.064Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:02:14.830Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467a62798ff3c741442fa39"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رومانو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T16:39:03.734Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T16:39:03.734Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ac4198ff3c741442fbb8"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:05:05.632Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:05:05.632Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ac6798ff3c741442fbc2"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:05:43.800Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:05:43.800Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ac9098ff3c741442fbcf"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته ماکیاتو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:06:24.576Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:06:24.576Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467acb198ff3c741442fbde"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته ماکیاتو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:06:57.522Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:06:57.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467acf398ff3c741442fbfd"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاتلا 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:08:03.076Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:08:03.076Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ad3798ff3c741442fc24"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاتلا100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:09:11.604Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:09:11.604Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ad6a98ff3c741442fc43"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیچیرین50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:10:02.039Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:10:02.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ada098ff3c741442fc50"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیچیرین100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:10:56.107Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:10:56.107Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ae5298ff3c741442fc87"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته سفرون50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:13:54.150Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:33:48.024Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ae7598ff3c741442fca0"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته سفرون100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:14:29.229Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:14:29.229Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467aeb298ff3c741442fcc8"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینامون لاته50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 21,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:15:30.159Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:15:30.159Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467aed798ff3c741442fcd8"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینامون لاته100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:16:07.386Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:16:07.386Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467af4c98ff3c741442fd00"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:18:04.903Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:18:04.903Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467af6798ff3c741442fd13"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 24,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:18:31.718Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:18:31.718Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467af9098ff3c741442fd20"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 25,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:19:12.357Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:19:12.357Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467afe698ff3c741442fd33"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 26,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:20:38.267Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:20:38.267Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b00198ff3c741442fd43"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 27,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:21:05.499Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:21:05.499Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b04198ff3c741442fd59"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6465fff598ff3c741442d594"
+ },
+ "index": 28,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:22:09.384Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:22:09.384Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b48c98ff3c741442ff1c"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورجینال آفوگاتو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:40:28.138Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:43:35.374Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b53998ff3c741442ffaf"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورجینال آفوگاتو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:43:21.950Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:43:21.950Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b5a298ff3c741442ffe8"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سفرون آفوگاتو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:45:06.538Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:45:06.538Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b5c498ff3c741442fffb"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سفرون آفوگاتو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:45:40.206Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:45:40.206Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b5fc98ff3c741443000b"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسد امریکانو50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:46:36.654Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:46:36.654Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b61798ff3c7414430024"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسد امریکانو100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:47:03.032Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:47:03.032Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b65398ff3c7414430058"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسد لاته 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:48:03.734Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:48:03.734Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b66c98ff3c7414430074"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسد لاته 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:48:28.817Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:48:28.817Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b68e98ff3c7414430084"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسد موکا 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:49:02.930Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:49:02.930Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467b6b098ff3c74144300b2"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیسدموکا100 %",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T17:49:36.742Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:49:36.742Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bc6798ff3c7414430359"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو 50%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:13:59.166Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:13:59.166Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bc8298ff3c7414430375"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو 100%",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:14:26.785Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:14:26.785Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bcb398ff3c7414430391"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:15:15.053Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:15:15.053Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bcd498ff3c74144303ab"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:15:48.850Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:15:48.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bd0f98ff3c74144303be"
+ },
+ "price": 620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارشمالو چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:16:47.830Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-26T15:52:25.389Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bd2d98ff3c74144303e0"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:17:17.095Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:17:17.095Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bd4e98ff3c74144303f9"
+ },
+ "price": 510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:17:50.084Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:17:50.084Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bdcc98ff3c7414430427"
+ },
+ "price": 540000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات فندقی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:19:56.439Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-21T15:36:59.835Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bdee98ff3c741443043f"
+ },
+ "price": 540000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افترایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:20:30.679Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:20:30.679Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467be1398ff3c7414430461"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:21:07.100Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:53:17.033Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467be2d98ff3c741443046e"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:21:33.485Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:21:33.485Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467be4c98ff3c7414430478"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا رژیمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:22:04.272Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:22:04.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467be6598ff3c7414430482"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466025c98ff3c741442d607"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:22:29.268Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:22:29.268Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467be9198ff3c7414430495"
+ },
+ "price": 540000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466026898ff3c741442d613"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:23:13.718Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:23:13.718Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bebb98ff3c74144304a5"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترکیش وایت کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466026898ff3c741442d613"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:23:55.014Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:26:01.245Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bf1d98ff3c74144304af"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترکیش وایت هل و دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466026898ff3c741442d613"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:25:33.319Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:26:43.568Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bfa398ff3c74144304f2"
+ },
+ "price": 690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترکیش وایت زعفرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466026898ff3c741442d613"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:27:47.512Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:27:47.512Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467bfdb98ff3c74144304ff"
+ },
+ "price": 820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:28:43.723Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:28:43.723Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c02898ff3c741443050f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:30:00.876Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:30:00.876Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c04698ff3c7414430519"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کره بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:30:30.362Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:38:33.768Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c06698ff3c7414430523"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "شکلات فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:31:02.548Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:54:04.294Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c0bd98ff3c7414430536"
+ },
+ "price": 860000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پسته زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:32:29.332Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:32:43.961Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c0ee98ff3c7414430550"
+ },
+ "price": 840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیت کت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:33:18.347Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:33:18.347Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c21a98ff3c741443058a"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورئو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:38:18.151Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:38:18.151Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c25b98ff3c74144305b4"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:39:23.411Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:53:46.211Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c27598ff3c74144305c7"
+ },
+ "price": 820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:39:49.242Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:39:49.242Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c2b298ff3c74144305dd"
+ },
+ "price": 860000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویژه (کره بادام زمینی_نوتلا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466027798ff3c741442d61f"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:40:50.226Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:40:50.226Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c2fc98ff3c74144305e7"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک ردولوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:42:04.146Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:42:04.146Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c31898ff3c74144305f4"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک موز گردو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:42:32.615Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:42:32.615Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c34998ff3c7414430601"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلات خامه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:43:21.912Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:43:21.912Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c37e98ff3c741443060f"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:44:14.382Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:44:14.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c39998ff3c7414430619"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:44:41.730Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:44:41.730Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c3ed98ff3c7414430623"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاریس برست",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:46:05.213Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:46:05.213Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c41598ff3c7414430630"
+ },
+ "price": 60000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466028998ff3c741442d628"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:46:45.003Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:46:45.003Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c48698ff3c7414430652"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:48:38.118Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:48:38.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c4ec98ff3c7414430677"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "های کافئین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:50:20.549Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:50:20.549Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c54198ff3c7414430692"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو+انرژی زا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:51:45.922Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:51:45.922Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c56e98ff3c741443069f"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا کلدبرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:52:30.001Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:52:30.001Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c59798ff3c74144306b2"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602b598ff3c741442d63d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:53:11.818Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:53:11.818Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c60598ff3c74144306c6"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "v 60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:55:01.075Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:55:01.075Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c65b98ff3c74144306d3"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایروپرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:56:27.605Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:56:27.605Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c6c398ff3c74144306e9"
+ },
+ "price": 620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس تک کاپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:58:11.108Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:58:11.108Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c6e898ff3c74144306f3"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس 3 کاپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:58:48.507Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:58:48.507Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c70498ff3c74144306fd"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602c298ff3c741442d64f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T18:59:16.236Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T18:59:16.236Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c73b98ff3c741443070a"
+ },
+ "price": 320000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمر باریک (شارژ رایگان)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:00:11.035Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:00:11.035Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c76098ff3c7414430714"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هل و دارچین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:00:48.349Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:00:48.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c78798ff3c7414430724"
+ },
+ "price": 330000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سبز و دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:01:27.704Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:01:27.704Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c7af98ff3c741443073a"
+ },
+ "price": 360000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیمو عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:02:07.306Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:02:25.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c7fc98ff3c7414430770"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:03:24.580Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:03:24.580Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c82598ff3c7414430780"
+ },
+ "price": 340000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوهی و لوندر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:04:05.977Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:04:05.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c84898ff3c741443078a"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602d898ff3c741442d65b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:04:40.884Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:04:40.884Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c87298ff3c7414430797"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آرامبخش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:05:22.223Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:05:22.223Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c89d98ff3c74144307aa"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاو زبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:06:05.826Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:06:05.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c8be98ff3c74144307b7"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "به لیمو بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:06:38.502Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:06:38.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c8e398ff3c74144307c1"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرتقال گل محمدی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:07:15.951Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:07:15.951Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c8fc98ff3c74144307ce"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب وبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:07:40.909Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:07:40.909Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c91e98ff3c74144307d8"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب و وانیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:08:14.571Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:08:14.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c94398ff3c74144307e2"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوئین بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:08:51.618Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:08:51.618Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c95f98ff3c74144307ec"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آویشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:09:19.994Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:09:19.994Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467c9e498ff3c7414430803"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ویژه اٌ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602eb98ff3c741442d667"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:11:32.215Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:56:24.500Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ca0f98ff3c7414430819"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر لایم",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:12:15.212Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:12:15.212Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ca3698ff3c7414430826"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:12:54.818Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:12:54.818Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ca5e98ff3c7414430833"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:13:34.354Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:13:34.354Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ca7798ff3c741443083d"
+ },
+ "price": 540000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:13:59.584Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:13:59.584Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ca9798ff3c7414430847"
+ },
+ "price": 620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خاکشیر بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:14:32.000Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:14:32.000Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cac798ff3c7414430854"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زعفران آلوئه ورا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:15:19.513Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:15:19.513Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cae298ff3c741443085e"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیمو زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:15:46.482Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:15:46.482Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cafe98ff3c741443086e"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بید مشک نسترن ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:16:14.911Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:16:14.911Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cb1b98ff3c7414430878"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رز چینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:16:43.637Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:16:43.637Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cb3498ff3c741443088e"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اوشن ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646602fc98ff3c741442d670"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:17:08.493Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:17:08.493Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cb6a98ff3c741443089e"
+ },
+ "price": 1280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا چیکن آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:18:02.376Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:18:02.376Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cb8d98ff3c74144308b1"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا گوجه و سبزیجات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:18:37.912Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:18:37.912Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cbac98ff3c74144308cd"
+ },
+ "price": 1320000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:19:08.190Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:19:08.190Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cbc898ff3c74144308e3"
+ },
+ "price": 1460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:19:36.913Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:19:36.913Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cbe598ff3c74144308f0"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دابل چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:20:05.544Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:20:05.544Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cc0798ff3c74144308fa"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چوریتسو برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:20:39.125Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:20:39.125Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cc4298ff3c741443090a"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر با سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:21:38.014Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:21:38.014Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cc7598ff3c741443091a"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شنیسل چیکن ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:22:29.718Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:22:29.718Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cd5998ff3c7414430951"
+ },
+ "price": 980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تست فیله مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:26:17.919Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:26:17.919Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cd7498ff3c741443095b"
+ },
+ "price": 940000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تست مرغ سرد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:26:44.593Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:26:44.593Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cd9998ff3c741443096b"
+ },
+ "price": 1380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار (گریل)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:27:21.291Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-27T17:50:53.409Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cdd898ff3c7414430981"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد اٌ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:28:24.459Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-27T17:53:32.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ce0098ff3c741443098b"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان ژامبون ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:29:04.656Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T16:25:19.705Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ce1e98ff3c7414430998"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب کلاسیک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:29:34.502Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:29:34.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ce3b98ff3c74144309a2"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:30:03.910Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:30:03.910Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467ce6698ff3c74144309ac"
+ },
+ "price": 1060000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب با فیله مرغ ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:30:46.847Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:32:32.586Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cf3898ff3c74144309e7"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سیب پنیری با سوجوک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:34:16.677Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:51:24.845Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cf8498ff3c7414430a07"
+ },
+ "price": 1080000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک بادمجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:35:32.674Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T16:30:12.570Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cf9a98ff3c7414430a11"
+ },
+ "price": 1180000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آبدوغ خیار (ناهار و عصرانه)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466031798ff3c741442d68b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:35:54.431Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T16:34:03.153Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467cfc998ff3c7414430a25"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت قارچ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:36:41.874Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:36:41.874Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d04898ff3c7414430a2f"
+ },
+ "price": 730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت فرانسه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:38:48.941Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:38:48.941Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d07398ff3c7414430a4a"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت ایرانی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:39:31.279Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:39:31.279Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d0bc98ff3c7414430a57"
+ },
+ "price": 1860000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب انگلیسی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:40:44.470Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:40:44.470Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d0e798ff3c7414430a61"
+ },
+ "price": 690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو با نان کروسان ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466038f98ff3c741442d6e5"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:41:27.518Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:41:27.518Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d10d98ff3c7414430a6b"
+ },
+ "price": 80000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646603a098ff3c741442d6ee"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:42:05.251Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:42:05.251Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d12598ff3c7414430a75"
+ },
+ "price": 280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646603a098ff3c741442d6ee"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:42:29.623Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:42:29.623Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d14698ff3c7414430a7f"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنیر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646603a098ff3c741442d6ee"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:43:02.142Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:43:02.142Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6467d22e98ff3c7414430aaa"
+ },
+ "price": 30000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس اضافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "646603a098ff3c741442d6ee"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-19T19:46:54.808Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T19:46:54.808Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646c711298ff3c74144359ee"
+ },
+ "price": 50000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس اضافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b33898ff3c7414414480"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-23T07:53:54.884Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-23T07:53:54.884Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0b9498ff3c74144391d9"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:17:40.113Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:29:14.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0b9798ff3c74144391e0"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:17:43.415Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:29:24.134Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0bcc98ff3c7414439249"
+ },
+ "price": 310000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:18:36.858Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:30:10.956Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0bf798ff3c7414439252"
+ },
+ "price": 410000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو - اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:19:19.600Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:30:22.236Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0c1798ff3c741443925c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:19:51.299Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:36:28.035Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0c3d98ff3c7414439263"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو - اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:20:29.149Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:36:46.546Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0c6898ff3c741443926a"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لته ماکیاتو - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:21:12.387Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:40:50.578Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f0c8198ff3c7414439271"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لته ماکیاتو - اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T07:21:37.074Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:40:39.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f73af98ff3c7414439cf1"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:41:51.909Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:39:47.879Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f73c898ff3c7414439cfe"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:42:16.744Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:39:57.338Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f73fa98ff3c7414439d04"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:43:06.986Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:39:20.656Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f742898ff3c7414439d09"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو - اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:43:52.728Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:39:33.610Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f745a98ff3c7414439d1d"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:44:42.064Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:38:37.357Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f748098ff3c7414439d23"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا - اسپشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:45:20.528Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:38:54.203Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f74ab98ff3c7414439d2b"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو - کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:46:03.140Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:37:54.810Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f74c398ff3c7414439d33"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو - اسپشیال ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b3cc98ff3c74144144b1"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:46:27.861Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:38:06.245Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f75b398ff3c7414439df5"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر گرم",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:50:27.717Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:45:16.439Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f75cb98ff3c7414439dfc"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:50:51.816Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:45:05.587Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f75e298ff3c7414439e03"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:51:14.259Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:44:55.653Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f768298ff3c7414439e1c"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:53:54.977Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:44:42.146Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f769f98ff3c7414439e26"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:54:23.549Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:44:24.776Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f76bc98ff3c7414439e33"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:54:52.113Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:43:56.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f76d698ff3c7414439e43"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر کاکائو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:55:18.951Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:43:39.201Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f771798ff3c7414439e56"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:56:23.165Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:43:21.031Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f773f98ff3c7414439e66"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:57:03.733Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:43:09.407Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f775498ff3c7414439e6d"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:57:24.134Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:42:52.777Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f776b98ff3c7414439e71"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:57:47.824Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:42:26.299Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f779598ff3c7414439e81"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:58:29.576Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:42:10.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f77ad98ff3c7414439e88"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چاکلت ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:58:53.210Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T14:58:53.210Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f77c698ff3c7414439e8f"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:59:18.767Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:41:54.558Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f77db98ff3c7414439e9f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای انگلیسی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b4aa98ff3c741441451b"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T14:59:39.737Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:41:34.761Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f784498ff3c7414439ef7"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "760",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b5a098ff3c7414414592"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T15:01:24.826Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:45:45.703Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f78cb98ff3c7414439f39"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ماچا لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T15:03:39.940Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:51:06.260Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f78ea98ff3c7414439f40"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T15:04:10.430Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:49:12.979Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f790598ff3c7414439f56"
+ },
+ "price": 410000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن هیلو",
+ "description": "310000 - 410000",
+ "short_description": "",
+ "category": {
+ "$oid": "6450b64598ff3c74144145ca"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T15:04:37.215Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:48:41.120Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "646f799a98ff3c741443a005"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ اضافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6450d7be98ff3c7414414965"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-05-25T15:07:06.270Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T15:07:06.270Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6472434d98ff3c741443e419"
+ },
+ "price": 1480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار (سوخاری)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466032598ff3c741442d6a0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-27T17:52:13.906Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-27T17:53:47.855Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64736a3298ff3c741443f447"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب با بیکن گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466034998ff3c741442d6b8"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-28T14:50:27.005Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-28T14:51:06.496Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64771fd698ff3c74144436b7"
+ },
+ "price": 4100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار (رول سوخاری با پنیر گودا و جعفری) Caesar salad with fried chicken roll ",
+ "description": "کاهو رسمی و پیچ/گوجه گیلاسی/زیتون/نان کروتان/پنیر پارمزان/همراه با سس سزار..lettuce/tomato/olive/parmesan cheese/crotan bread/ caesar sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-05-31T10:22:14.817Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:54:03.037Z"
+ },
+ "__v": 0,
+ "image": "food_1713707131956.png"
+},
+{
+ "_id": {
+ "$oid": "64779c2b98ff3c7414444b3c"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6466024198ff3c741442d5fb"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "created_at": {
+ "$date": "2023-05-31T19:12:43.121Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-31T19:14:04.855Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6484c3a198ff3c7414454db8"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1686422430315.png",
+ "created_at": {
+ "$date": "2023-06-10T18:40:33.171Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:58:12.982Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6484c43398ff3c7414454de9"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1686422578987.png",
+ "created_at": {
+ "$date": "2023-06-10T18:43:00.005Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:59:02.373Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64a5d5f398ff3c741447c36b"
+ },
+ "price": 5450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مت سلامی.. Salami",
+ "description": "پنیر/سالامی/پپرونی/هالوپینو/قارچ..cheese/salami/ pepperoni/",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-05T20:43:31.058Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:22:44.505Z"
+ },
+ "__v": 0,
+ "image": "food_1713772598492.png"
+},
+{
+ "_id": {
+ "$oid": "64a5d68f98ff3c741447c3e5"
+ },
+ "price": 4160000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دنر میکس .. doner kebab sandwich ",
+ "description": "دنر گوشت و مرغ/جعفری/پیاز/خیارشور/سس مخصوص/سیب زمینی..chicken & meat doner/parsley/pickled cucumber/onion/potato/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5ff726d2e0e4fbd9b424"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-05T20:46:07.515Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T12:30:07.845Z"
+ },
+ "__v": 0,
+ "image": "food_1713772562102.png"
+},
+{
+ "_id": {
+ "$oid": "64a5d7d198ff3c741447c4d2"
+ },
+ "price": 3600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مک اند چیز .. Mac & cheese",
+ "description": " پنیر/پاستا ماکارون/دیپ چدار..cheese/macaroni pasta/cheddar dip sause",
+ "short_description": "",
+ "category": {
+ "$oid": "61a7605dd5c3921920048303"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-05T20:51:29.954Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:16:32.800Z"
+ },
+ "__v": 0,
+ "image": "food_1715787937416.png"
+},
+{
+ "_id": {
+ "$oid": "64a5d8f498ff3c741447c54e"
+ },
+ "price": 5140000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دنر میکس(تک نفره).. Mixed doner ",
+ "description": "پنیر/دنر مرغ و گوشت/پیاز/قارچ..cheese/chicken & meat doner/onion/olive/mushroom",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-05T20:56:20.136Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:24:55.142Z"
+ },
+ "__v": 0,
+ "image": "food_1713772515977.png"
+},
+{
+ "_id": {
+ "$oid": "64a5d93998ff3c741447c558"
+ },
+ "price": 8100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دنر میکس(دونفره).. Mixed doner",
+ "description": " پنیر/دنر مرغ و گوشت/پیاز/قارچ..cheese/chicken & meat diner/onion/olive/mushroom",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-05T20:57:29.920Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-18T08:24:42.632Z"
+ },
+ "__v": 0,
+ "image": "food_1713771713173.png"
+},
+{
+ "_id": {
+ "$oid": "64a68a9b98ff3c741447cb9a"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه(تک نفره) black tea",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T09:34:19.999Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-17T13:17:11.394Z"
+ },
+ "__v": 0,
+ "image": "food_1715853902968.png"
+},
+{
+ "_id": {
+ "$oid": "64a68ac698ff3c741447cba4"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه(دونفره) black tea",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T09:35:02.672Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:01:53.798Z"
+ },
+ "__v": 0,
+ "image": "food_1715853712320.png"
+},
+{
+ "_id": {
+ "$oid": "64a68eaa98ff3c741447cd04"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه زعفرانی (تک نفره) saffron tea",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T09:51:38.579Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T10:04:29.943Z"
+ },
+ "__v": 0,
+ "image": "food_1715853866749.png"
+},
+{
+ "_id": {
+ "$oid": "64a68ee198ff3c741447cd1a"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه زعفرانی(دونفره) saffron tea",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T09:52:33.188Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T09:59:51.647Z"
+ },
+ "__v": 0,
+ "image": "food_1715853587100.png"
+},
+{
+ "_id": {
+ "$oid": "64a692a698ff3c741447ce5c"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته.. Latte ",
+ "description": "قهوه 70/30 ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T10:08:38.432Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T09:49:31.026Z"
+ },
+ "__v": 0,
+ "image": "food_1715710811427.png"
+},
+{
+ "_id": {
+ "$oid": "64a6938f98ff3c741447cea2"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو .. ice Americano ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T10:12:31.187Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-02T17:06:17.190Z"
+ },
+ "__v": 0,
+ "image": "food_1715714615956.png"
+},
+{
+ "_id": {
+ "$oid": "64a693b398ff3c741447ceaf"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا ..ice mocha",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T10:13:07.733Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-02T17:05:47.584Z"
+ },
+ "__v": 0,
+ "image": "food_1715714518406.png"
+},
+{
+ "_id": {
+ "$oid": "64a693c798ff3c741447ceb9"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته .. ice latte ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-07-06T10:13:27.519Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-02T17:04:35.975Z"
+ },
+ "__v": 0,
+ "image": "food_1715714441403.png"
+},
+{
+ "_id": {
+ "$oid": "64affbb198ff3c74144881e6"
+ },
+ "price": 1670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا چیکن آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64aff92198ff3c7414488119"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1689254831099.png",
+ "created_at": {
+ "$date": "2023-07-13T13:27:13.653Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:39:20.457Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64affcdf98ff3c7414488202"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا بیف آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64aff92198ff3c7414488119"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1689255132686.png",
+ "created_at": {
+ "$date": "2023-07-13T13:32:15.161Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-21T16:40:12.348Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64affd3198ff3c741448820f"
+ },
+ "price": 1630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا بلونز",
+ "description": "پاستا-سس گوجه -ریحان -پنیر پارمزان",
+ "short_description": "",
+ "category": {
+ "$oid": "64aff92198ff3c7414488119"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696432291066.png",
+ "created_at": {
+ "$date": "2023-07-13T13:33:37.163Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T15:11:36.002Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64b00d2b98ff3c7414488402"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1689259303799.png",
+ "created_at": {
+ "$date": "2023-07-13T14:41:47.773Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T15:01:09.657Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64b00ecc98ff3c741448843b"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار و مرغ گریل",
+ "description": "کاهو و مرغ گریل و سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1689259719810.png",
+ "created_at": {
+ "$date": "2023-07-13T14:48:44.480Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:13:11.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bada0d98ff3c7414495384"
+ },
+ "price": 1900000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار با مرغ گریل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:18:37.489Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:18:37.489Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bada2e98ff3c741449538e"
+ },
+ "price": 2350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار سه رول",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:19:10.080Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:19:10.080Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bada5598ff3c74144953a7"
+ },
+ "price": 2000000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار دو رول",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:19:49.857Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:19:49.857Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bada7698ff3c74144953b4"
+ },
+ "price": 750000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد فصل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:20:22.796Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:20:22.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bada9898ff3c74144953be"
+ },
+ "price": 900000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک و بادمجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:20:56.455Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:20:56.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badad598ff3c74144953c8"
+ },
+ "price": 1200000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب دوغ خیار نوستالژی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad54b98ff3c7414495269"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:21:57.846Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:21:57.846Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badaf498ff3c74144953d2"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش رشته کشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:22:28.860Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:22:28.860Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badb1398ff3c74144953dc"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش رشته ترشی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:22:59.110Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:22:59.110Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badb4598ff3c74144953f8"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش جو با سیرابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:23:49.333Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:23:49.333Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badb6298ff3c7414495402"
+ },
+ "price": 570000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش جو بدون سیرابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:24:18.179Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:24:18.179Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badb7f98ff3c741449540f"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش شله قلمکار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:24:47.209Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:24:47.209Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badb9b98ff3c7414495425"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش آبادانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad66d98ff3c7414495299"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:25:15.202Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:25:15.202Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badbc898ff3c741449542f"
+ },
+ "price": 3100000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب ویژه مهتاب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:26:00.431Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:26:00.431Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badbf798ff3c741449544b"
+ },
+ "price": 2700000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوخاری پنج تیکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:26:47.016Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:26:47.016Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badc8e98ff3c7414495458"
+ },
+ "price": 1950000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوخاری سه تیکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:29:18.713Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:29:18.713Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badcb698ff3c741449546e"
+ },
+ "price": 2950000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوخاری پنیری پنج تیکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:29:58.916Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:29:58.916Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badcf898ff3c7414495478"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوخاری پنیری سه تیکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:31:04.669Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:31:04.669Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badd1698ff3c7414495485"
+ },
+ "price": 2000000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "لازانیا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:31:34.864Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:31:34.864Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badd3a98ff3c7414495495"
+ },
+ "price": 1900000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا پنه آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:32:10.454Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:32:10.454Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badd5d98ff3c741449549f"
+ },
+ "price": 1300000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سبزیجات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:32:45.868Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:32:45.868Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badd8898ff3c74144954ac"
+ },
+ "price": 1200000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوفته تبریزی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:33:28.456Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:33:28.456Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64baddab98ff3c74144954bf"
+ },
+ "price": 1500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب تابه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:34:03.401Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:34:03.401Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64baddd198ff3c74144954c9"
+ },
+ "price": 1500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "بورک گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:34:41.228Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:34:41.228Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64baddee98ff3c74144954df"
+ },
+ "price": 1500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "بورک مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:35:10.090Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:35:10.090Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bade0b98ff3c74144954ec"
+ },
+ "price": 1600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "حسرت الملوک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad7d298ff3c74144952de"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:35:39.455Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:35:39.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bade5298ff3c74144954f6"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:36:50.602Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:36:50.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bade7798ff3c7414495500"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت بیدمشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:37:27.838Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:37:27.838Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badf5c98ff3c741449551c"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت خیار سکنجبین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:41:16.386Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:41:16.386Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badf7d98ff3c7414495526"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت آلبالو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:41:49.431Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:41:49.431Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64badf9798ff3c7414495530"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت پرتقال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:42:15.725Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:42:15.725Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae01298ff3c741449553d"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت نوستالژی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:44:18.374Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:44:18.374Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae02e98ff3c741449554a"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت آرامش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:44:46.194Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:44:46.194Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae05f98ff3c741449555d"
+ },
+ "price": 2000000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "تنگ شربت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad81798ff3c74144952fb"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:45:35.768Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:45:35.768Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae08198ff3c741449556a"
+ },
+ "price": 2200000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر ویژه مهتاب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad83e98ff3c741449530a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:46:09.307Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:46:09.307Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae0aa98ff3c7414495577"
+ },
+ "price": 2000000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "رویال برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad83e98ff3c741449530a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:46:50.928Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:46:50.928Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae0d798ff3c7414495581"
+ },
+ "price": 1700000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماشروم برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad83e98ff3c741449530a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:47:35.279Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:47:35.279Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae11898ff3c741449558b"
+ },
+ "price": 350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:48:40.187Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:48:40.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae15398ff3c7414495595"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:49:39.108Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:49:39.108Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae2a398ff3c74144955c1"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:55:15.034Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:55:15.034Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae2ba98ff3c74144955cb"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:55:38.511Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:55:38.511Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae2de98ff3c74144955d5"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:56:14.761Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:56:14.761Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae30598ff3c74144955df"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:56:53.561Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:56:53.561Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae33598ff3c74144955e9"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T19:57:41.126Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T19:57:41.126Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae3d898ff3c74144955ff"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:00:24.951Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:00:24.951Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae3f998ff3c7414495609"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:00:57.919Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:00:57.919Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae41998ff3c741449561f"
+ },
+ "price": 650000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:01:29.610Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:01:29.610Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae44498ff3c7414495629"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:02:12.282Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:02:12.282Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae46698ff3c7414495633"
+ },
+ "price": 700000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دالگونا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:02:46.849Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:02:46.849Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae49298ff3c741449563d"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:03:30.310Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:03:30.310Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae4bb98ff3c7414495647"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "رومانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:04:11.540Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:04:11.540Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae4da98ff3c7414495651"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:04:42.048Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:04:42.048Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae50598ff3c741449565e"
+ },
+ "price": 550000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:05:25.654Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:05:25.654Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae52298ff3c7414495668"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:05:54.786Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:05:54.786Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae54b98ff3c7414495672"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:06:35.197Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:06:35.197Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae56898ff3c741449567c"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرانسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:07:04.422Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:07:04.422Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae63b98ff3c7414495687"
+ },
+ "price": 100000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "طعم و سیروپ اضافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8bf98ff3c7414495319"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:10:35.295Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:10:35.295Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae65a98ff3c7414495691"
+ },
+ "price": 450000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:11:06.042Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:11:06.042Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae6c498ff3c741449569e"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:12:52.020Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:12:52.020Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae6f798ff3c74144956a8"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "وانیل چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:13:43.083Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:13:43.083Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae71798ff3c74144956b2"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "فندق چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:14:15.368Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:14:15.368Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae73b98ff3c74144956bc"
+ },
+ "price": 450000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:14:51.752Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:14:51.752Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae76f98ff3c74144956c6"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:15:43.067Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:15:43.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae79298ff3c74144956d3"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad8fd98ff3c7414495328"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:16:18.588Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:16:18.588Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bae7dd98ff3c74144956e3"
+ },
+ "price": 300000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "حلوا مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-21T20:17:33.816Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-21T20:17:33.816Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbeef198ff3c7414495e63"
+ },
+ "price": 350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقلوا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:00:01.975Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:00:01.975Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbef1998ff3c7414495e6d"
+ },
+ "price": 350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "مسقطی ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:00:41.106Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:00:41.106Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbef3b98ff3c7414495e77"
+ },
+ "price": 700000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:01:15.566Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:01:15.566Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbef5c98ff3c7414495e84"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad91c98ff3c7414495331"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:01:48.757Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:01:48.757Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbef7f98ff3c7414495e8e"
+ },
+ "price": 950000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:02:23.906Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:02:23.906Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbefa798ff3c7414495e9b"
+ },
+ "price": 800000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:03:03.111Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:03:03.111Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbefda98ff3c7414495ea8"
+ },
+ "price": 750000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:03:54.710Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:03:54.710Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf11498ff3c7414495ed3"
+ },
+ "price": 800000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:09:08.307Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:09:08.307Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf13998ff3c7414495edd"
+ },
+ "price": 750000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:09:45.117Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:09:45.117Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf15f98ff3c7414495eea"
+ },
+ "price": 750000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک دارک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:10:23.919Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:10:23.919Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf17d98ff3c7414495efd"
+ },
+ "price": 750000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad92e98ff3c741449533a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:10:53.224Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:10:53.224Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf1a098ff3c7414495f0a"
+ },
+ "price": 500000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:11:28.793Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:11:28.793Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf1c198ff3c7414495f17"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سلامتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:12:01.499Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:12:01.499Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf1f998ff3c7414495f21"
+ },
+ "price": 350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:12:57.319Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:12:57.319Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf4f898ff3c7414495f3d"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:25:44.455Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:25:44.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbf53f98ff3c7414495f47"
+ },
+ "price": 350000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:26:55.629Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:26:55.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfb1098ff3c7414495f87"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش لیمو نعناع",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:51:44.614Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:51:44.614Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfb4098ff3c7414495f91"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T15:52:32.495Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T15:52:32.495Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfe0998ff3c7414496016"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:04:25.055Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:04:25.055Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfe3698ff3c7414496023"
+ },
+ "price": 450000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب و به لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:05:10.232Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:05:10.232Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfe5f98ff3c7414496033"
+ },
+ "price": 450000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب و دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:05:51.915Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:05:51.915Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfe9598ff3c7414496055"
+ },
+ "price": 400000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:06:45.038Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:06:45.038Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbfec298ff3c7414496068"
+ },
+ "price": 1000000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "قوری چای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:07:30.472Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:07:30.472Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbff6c98ff3c7414496094"
+ },
+ "price": 10000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "طعم اضافه",
+ "description": "هل - دارچین - زنجبیل ",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad94398ff3c7414495343"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:10:20.826Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:10:20.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbff9798ff3c74144960aa"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:11:03.530Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:11:03.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbffb898ff3c74144960b7"
+ },
+ "price": 650000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:11:36.968Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:11:36.968Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bbffd698ff3c74144960ca"
+ },
+ "price": 600000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:12:06.314Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:12:06.314Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc000e98ff3c74144960e9"
+ },
+ "price": 650000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیگنیچر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:13:02.686Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:13:02.686Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc003398ff3c74144960f3"
+ },
+ "price": 650000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلواسکای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:13:39.686Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:13:39.686Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc005298ff3c7414496103"
+ },
+ "price": 650000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "تروپیکال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad96798ff3c741449534f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:14:10.191Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:14:10.191Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc008e98ff3c7414496116"
+ },
+ "price": 950000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:15:10.910Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:15:26.199Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc00c398ff3c7414496133"
+ },
+ "price": 800000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی شاه توت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:16:03.640Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:16:03.640Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc00e798ff3c741449613d"
+ },
+ "price": 700000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی هندوانه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:16:39.297Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:16:39.297Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc010b98ff3c741449614a"
+ },
+ "price": 800000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:17:15.890Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:17:15.890Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc014798ff3c7414496166"
+ },
+ "price": 800000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی طالبی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad99198ff3c7414495358"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:18:15.662Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:18:15.662Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc017498ff3c7414496170"
+ },
+ "price": 60000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:19:00.941Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:19:00.941Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc019698ff3c741449617a"
+ },
+ "price": 190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:19:34.477Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:19:34.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc01b698ff3c7414496184"
+ },
+ "price": 190000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:20:06.532Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:20:06.532Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc040298ff3c74144961e2"
+ },
+ "price": 190000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T16:29:54.960Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T16:29:54.960Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc1f9e98ff3c74144968f5"
+ },
+ "price": 150000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا شیشه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:27:42.976Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:27:42.976Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc1fc498ff3c7414496902"
+ },
+ "price": 150000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا شیشه ای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:28:20.497Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:28:20.497Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc1fe398ff3c741449690c"
+ },
+ "price": 150000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت شیشه ای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:28:51.210Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:28:51.210Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc202698ff3c7414496922"
+ },
+ "price": 220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر شیشه انواع طعم ها",
+ "description": "طعم هلو - مالت - استوایی - لیمو - سیب",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:29:58.272Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:29:58.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc204698ff3c7414496932"
+ },
+ "price": 300000,
+ "stock": 30,
+ "static_discount": 0,
+ "active": true,
+ "name": "انرژی زا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:30:30.567Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:30:30.567Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc206b98ff3c741449693f"
+ },
+ "price": 300000,
+ "stock": 100,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ محلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:31:07.391Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:31:07.391Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bc20b698ff3c7414496964"
+ },
+ "price": 190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرش دی ( آبمویوه گازدار) با طعم های مختلف",
+ "description": "پرتقال پشن فروت - انگور قرمز - انبه پشن فروت - آلبالو",
+ "short_description": "",
+ "category": {
+ "$oid": "64bad9b498ff3c7414495367"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "created_at": {
+ "$date": "2023-07-22T18:32:22.129Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T18:32:22.129Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64bfa89b98ff3c7414499294"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1692637912175.png",
+ "created_at": {
+ "$date": "2023-07-25T10:48:59.468Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:58:43.998Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64cbb30a1e0aeeaf011a00ce"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز White fries",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "created_at": {
+ "$date": "2023-08-03T14:00:42.651Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:11:06.342Z"
+ },
+ "__v": 0,
+ "image": "food_1692635556395.png"
+},
+{
+ "_id": {
+ "$oid": "64e4f49c59383e8d754e507c"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یامی برگر",
+ "description": "یک عدد برگر گوشت گوساله،یک عدد پنیر چیز برگر، یک عدد ژامبون، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T17:47:08.378Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:00:23.991Z"
+ },
+ "__v": 0,
+ "image": "food_1733222298625.png"
+},
+{
+ "_id": {
+ "$oid": "64e4f55659383e8d754e50b4"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یامی اسپشیال",
+ "description": "یک عدد برگر گوشت گوساله،دو عدد پنیر چیز برگر، دو عدد ژامبون، کاهو، خیارشور، گوجه، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T17:50:14.628Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:01:14.597Z"
+ },
+ "__v": 0,
+ "image": "food_1733221989785.png"
+},
+{
+ "_id": {
+ "$oid": "64e4f5b359383e8d754e50d4"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "یک عدد برگر گوشت گوساله، یک عدد پنیر چیز برگر، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T17:51:47.894Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:01:42.395Z"
+ },
+ "__v": 0,
+ "image": "food_1733222342056.png"
+},
+{
+ "_id": {
+ "$oid": "64e4f5db59383e8d754e50e4"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماشروم برگر",
+ "description": "یک عدد برگر گوشت گوساله، قارچ، پنیر چیز برگر، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T17:52:27.028Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:02:49.519Z"
+ },
+ "__v": 0,
+ "image": "food_1733222376578.png"
+},
+{
+ "_id": {
+ "$oid": "64e4f60059383e8d754e50ee"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چوریتسو برگر",
+ "description": "یک عدد برگر گوشت گوساله، سوسیس چوریتسو، دو عدد پنیر چیز برگر، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T17:53:04.957Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:03:40.530Z"
+ },
+ "__v": 0,
+ "image": "food_1699784885688.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fdd959383e8d754e5427"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکن برگر",
+ "description": "یک عدد برگر گوشت گوساله، پیاز سوخاری،دو عدد پنیر چیز برگر، خیارشور، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:26:33.187Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:04:10.538Z"
+ },
+ "__v": 0,
+ "image": "food_1733222439998.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fe0459383e8d754e5434"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالوپینو برگر(تند)",
+ "description": "یک عدد برگر گوشت گوساله، یک عدد پنیر چیز برگر،فلفل هالوپینو ، گوجه، کاهو، خیارشور،سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:27:16.921Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:04:41.533Z"
+ },
+ "__v": 0,
+ "image": "food_1733222055490.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fe6759383e8d754e545f"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک برگر",
+ "description": "یک عدد برگر گوشت گوساله، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:28:55.785Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:05:13.121Z"
+ },
+ "__v": 0,
+ "image": "food_1733222495307.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fe8659383e8d754e5475"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر",
+ "description": "یک عدد برگر مرغ، یک عدد پنیر چیز برگر، کاهو، خیارشور،گوجه،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e69698ff3c741448df0d"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:29:26.900Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:05:41.660Z"
+ },
+ "__v": 0,
+ "image": "food_1733222208247.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fec259383e8d754e549c"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل برگر",
+ "description": "دو عدد برگر گوشت گوساله، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64ba6e2698ff3c7414494144"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:30:26.869Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:06:14.020Z"
+ },
+ "__v": 0,
+ "image": "food_1733222558661.png"
+},
+{
+ "_id": {
+ "$oid": "64e4fee359383e8d754e54b2"
+ },
+ "price": 3600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل چیز برگر",
+ "description": "دو عدد برگر گوشت گوساله، دو عدد پنیر چیز برگر، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64ba6e2698ff3c7414494144"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:30:59.522Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:06:43.953Z"
+ },
+ "__v": 0,
+ "image": "food_1733222616471.png"
+},
+{
+ "_id": {
+ "$oid": "64e4ff2259383e8d754e54c5"
+ },
+ "price": 3800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل چیز اسپشیال",
+ "description": "دو عدد برگر گوشت گوساله، دو عدد پنیر چیز برگر، دو عدد ژامبون،کاهو، خیارشور، گوجه، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64ba6e2698ff3c7414494144"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:32:02.394Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:07:19.089Z"
+ },
+ "__v": 0,
+ "image": "food_1699785752276.png"
+},
+{
+ "_id": {
+ "$oid": "64e4ff4359383e8d754e54e8"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یامی چیکن",
+ "description": "یک عدد برگر گوشت گوساله، یک عدد برگر مرغ، یک عدد ژامبون، یک عدد پنیر چیز برگر، کاهو، گوجه، خیارشور، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64ba6e2698ff3c7414494144"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:32:35.251Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:07:49.805Z"
+ },
+ "__v": 0,
+ "image": "food_1733222265811.png"
+},
+{
+ "_id": {
+ "$oid": "64e5000159383e8d754e5532"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تریپل برگر",
+ "description": "سه عدد برگر گوشت گوساله، سه عدد پنیر چیز برگر، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64babeff98ff3c7414494b79"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:35:45.063Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:09:18.361Z"
+ },
+ "__v": 0,
+ "image": "food_1733222694715.png"
+},
+{
+ "_id": {
+ "$oid": "64e5002259383e8d754e553f"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس تریپل",
+ "description": "دو عدد برگر گوشت گوساله، یک عدد برگر مرغ ، دو عدد پنیر چیز برگر، کاهو، خیارشور، گوجه، سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "64babeff98ff3c7414494b79"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:36:18.981Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:09:53.288Z"
+ },
+ "__v": 0,
+ "image": "food_1733222144761.png"
+},
+{
+ "_id": {
+ "$oid": "64e5009b59383e8d754e556a"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار",
+ "description": "دو عدد رول سوخاری،کاهو، نان سیر،زیتون سبز،سس سزار",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:38:19.488Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:25:53.916Z"
+ },
+ "__v": 0,
+ "image": "food_1733222826703.png"
+},
+{
+ "_id": {
+ "$oid": "64e500d759383e8d754e557e"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد یامی",
+ "description": "فیله مرغ گریل شده،میکس کلم و کاهو،نان تست،ذرت،خیار،هویج،گرین سس",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:39:19.958Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:24:56.873Z"
+ },
+ "__v": 0,
+ "image": "food_1733222864377.png"
+},
+{
+ "_id": {
+ "$oid": "64e5037b59383e8d754e56b7"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ فرایز",
+ "description": "سیب زمینی سرخ شده، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-22T18:50:35.719Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-05T16:25:46.834Z"
+ },
+ "__v": 0,
+ "image": "food_1699784947500.png"
+},
+{
+ "_id": {
+ "$oid": "64e8490d59383e8d754e922b"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ed59383e8d754e918e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:24:13.613Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:42:33.429Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e849ae59383e8d754e9244"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ پرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ed59383e8d754e918e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:26:54.436Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:42:49.967Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e849d159383e8d754e9250"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ed59383e8d754e918e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:27:29.315Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:41:50.646Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e849f659383e8d754e925a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کمکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ed59383e8d754e918e"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:28:06.878Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:41:34.328Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e84ac459383e8d754e9277"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو / ریسترتو (۳۰-۷۰)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:31:32.385Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:23:53.155Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e84b4559383e8d754e9297"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو/ ریسترتو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:33:41.369Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:24:40.229Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e84f8a59383e8d754e92b7"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو (۳۰-۷۰)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:51:54.437Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:40:06.528Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e84fc159383e8d754e92c1"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:52:49.890Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:39:01.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8505959383e8d754e9310"
+ },
+ "price": 580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو (۳۰-۷۰) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:55:21.772Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:37:44.811Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e850bb59383e8d754e931a"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:56:59.561Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:37:20.235Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8516359383e8d754e9331"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو (۳۰-۷۰)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T06:59:47.116Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:35:41.762Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8521559383e8d754e936a"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو (عربیکا) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:02:45.830Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:35:12.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8527159383e8d754e937e"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافه لته (۳۰-۷۰)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:04:17.222Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:33:05.942Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e852ae59383e8d754e9388"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافه لته (عربیکا) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:05:18.304Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:32:36.314Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e852e859383e8d754e939f"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو (۳۰-۷۰) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:06:16.384Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:31:16.836Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8531159383e8d754e93a9"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:06:57.301Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:30:43.651Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8554759383e8d754e9452"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا (۳۰-۷۰) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:16:23.799Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:29:43.565Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8556d59383e8d754e945c"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:17:01.587Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:29:20.205Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e855c359383e8d754e9470"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کن پانا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:18:27.912Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:28:16.008Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e855fc59383e8d754e947a"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8464759383e8d754e919d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:19:24.019Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:44:29.547Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8562459383e8d754e9484"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8464759383e8d754e919d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:20:04.873Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:44:06.206Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e856b459383e8d754e94a2"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خیار سکنجبین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:22:28.702Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:06:37.287Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e856de59383e8d754e94ac"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت لیمونعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:23:10.061Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:07:36.866Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e856fa59383e8d754e94b6"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت بهار نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:23:38.617Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:07:58.499Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8571c59383e8d754e94c0"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت نسترن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:24:12.307Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:07:18.698Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8575559383e8d754e94ca"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت بیدمشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:25:09.154Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:06:58.544Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8577d59383e8d754e94d4"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8483159383e8d754e91e7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:25:49.707Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T07:25:49.707Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85af459383e8d754e94ed"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دمی تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:40:36.309Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:45:40.071Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85b6359383e8d754e94f7"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "همراه با باقلوا",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:42:27.846Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:47:28.674Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85b8259383e8d754e9501"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای آرامش ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:42:58.635Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:47:04.162Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85bb659383e8d754e950e"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آویشن نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:43:50.257Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:46:45.877Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85c1559383e8d754e951e"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش بهارنارنج به لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:45:25.815Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:46:22.881Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85c3359383e8d754e9528"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های قرمز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:45:55.136Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:46:05.215Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85cf359383e8d754e9542"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته (70-30)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:49:07.524Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:52:22.756Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85d3759383e8d754e954d"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:50:15.871Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:52:43.584Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85d9959383e8d754e9561"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو (70-30)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:51:53.164Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:51:19.713Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85dc059383e8d754e956b"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:52:32.572Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:52:06.012Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85e5a59383e8d754e957f"
+ },
+ "price": 820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا (70-30)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:55:06.775Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:49:53.188Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85e7859383e8d754e9589"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:55:36.956Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:50:25.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85ef259383e8d754e95a0"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو (70-30)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T07:57:38.760Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:49:10.082Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e85fa159383e8d754e95c4"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو (عربیکا)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8477d59383e8d754e91c6"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:00:33.256Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:48:52.326Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8605a59383e8d754e95ed"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک وانیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:03:38.760Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:04:28.642Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8607f59383e8d754e95f7"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک قهوه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:04:15.884Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:01:38.830Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8609b59383e8d754e9607"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:04:43.873Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T08:05:04.831Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e860d559383e8d754e9627"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کارامل سالت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:05:41.396Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T08:05:41.396Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e860fe59383e8d754e9634"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:06:22.067Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T08:06:22.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8612e59383e8d754e9653"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:07:10.281Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T08:07:10.281Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8615659383e8d754e9663"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:07:50.165Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:05:19.514Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8617959383e8d754e9676"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات بادام",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:08:25.120Z"
+ },
+ "updated_at": {
+ "$date": "2023-08-25T08:08:25.120Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8619659383e8d754e9680"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:08:54.139Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:54:04.842Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e861bb59383e8d754e968f"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر رزماری ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:09:31.496Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T19:00:24.072Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8620659383e8d754e96a4"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:10:46.912Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:57:53.169Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8622759383e8d754e96ae"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:11:19.611Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:57:16.872Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8624959383e8d754e96b8"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:11:53.832Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:56:53.811Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8626d59383e8d754e96c2"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوربری ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:12:29.153Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:56:34.950Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e862b359383e8d754e96cd"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تروپیکال فروت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:13:39.202Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:55:48.296Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e862e459383e8d754e96ea"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلواسکای ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:14:28.374Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:54:48.215Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8630a59383e8d754e96f4"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انبه شاتوت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847fe59383e8d754e91d8"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T08:15:06.366Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:58:36.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8752c59383e8d754e98e3"
+ },
+ "price": 5500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول دارچین ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T09:32:28.308Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:36:16.697Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8761359383e8d754e997e"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان مغزدار ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T09:36:19.667Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:39:55.936Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64e8763559383e8d754e9994"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شات سیروپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-08-25T09:36:53.332Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:40:20.221Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64edb3c859383e8d754ef5d7"
+ },
+ "price": 4800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چانو(سیر و استیک)",
+ "description": "گوشت گوساله مزه دار شده،پپرونی،زیتون،قارچ،سس سیر",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:00:56.333Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:23:50.171Z"
+ },
+ "__v": 0,
+ "image": "food_1733223584119.png"
+},
+{
+ "_id": {
+ "$oid": "64edb3f159383e8d754ef5e1"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپرونی",
+ "description": "ژامبون پپرونی،قارچ،فلفل دلمه",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:01:37.598Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:22:09.442Z"
+ },
+ "__v": 0,
+ "image": "food_1733221872848.png"
+},
+{
+ "_id": {
+ "$oid": "64edb41559383e8d754ef5ee"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میت ژامبون",
+ "description": "ژامبون گوشت،پنیر گودا،زیتون،قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:02:13.966Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:22:54.993Z"
+ },
+ "__v": 0,
+ "image": "food_1733221914467.png"
+},
+{
+ "_id": {
+ "$oid": "64edb44259383e8d754ef5f8"
+ },
+ "price": 4400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده(مخصوص یامی)",
+ "description": ":گوشت چرخ شده با ژامبون گوشت و مرغ،فلفل دلمه،فلفل هالوپینو،قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:02:58.924Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:21:08.415Z"
+ },
+ "__v": 0,
+ "image": "food_1699784972822.png"
+},
+{
+ "_id": {
+ "$oid": "64edb46a59383e8d754ef603"
+ },
+ "price": 4400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن پستو",
+ "description": "مرغ مزه دار شده،قارچ،پنیر گودا،سس پستو",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:03:38.895Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:20:10.803Z"
+ },
+ "__v": 0,
+ "image": "food_1699785036611.png"
+},
+{
+ "_id": {
+ "$oid": "64edb4aa59383e8d754ef617"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد طبیعی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:04:42.366Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-05T16:22:48.669Z"
+ },
+ "__v": 0,
+ "image": "food_1733222964994.png"
+},
+{
+ "_id": {
+ "$oid": "64edb54859383e8d754ef621"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو طبیعی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:07:20.038Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-05T16:22:36.779Z"
+ },
+ "__v": 0,
+ "image": "food_1733222984965.png"
+},
+{
+ "_id": {
+ "$oid": "64edb5e059383e8d754ef651"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:09:52.347Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:19:29.163Z"
+ },
+ "__v": 0,
+ "image": "food_1733223033671.png"
+},
+{
+ "_id": {
+ "$oid": "64edb61e59383e8d754ef669"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:10:54.038Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:17:08.419Z"
+ },
+ "__v": 0,
+ "image": "food_1733223011213.png"
+},
+{
+ "_id": {
+ "$oid": "64edb64259383e8d754ef673"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر خانواده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:11:30.950Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:18:23.102Z"
+ },
+ "__v": 0,
+ "image": "food_1733223060511.png"
+},
+{
+ "_id": {
+ "$oid": "64edb66e59383e8d754ef67e"
+ },
+ "price": 120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-08-29T09:12:14.704Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:15:51.003Z"
+ },
+ "__v": 0,
+ "image": "food_1733223199180.png"
+},
+{
+ "_id": {
+ "$oid": "64f4400059383e8d754f7164"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:12:48.440Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T19:04:16.212Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f4402d59383e8d754f716e"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اورئو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e847df59383e8d754e91cf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:13:33.194Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T19:03:58.410Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f445cc59383e8d754f71ff"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e845ce59383e8d754e9185"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:37:32.728Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:27:30.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f446b559383e8d754f723c"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دمی با قوری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e846b359383e8d754e91b1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:41:25.574Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T18:45:21.843Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f449cf59383e8d754f7332"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه سوییسی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:54:39.019Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T13:21:00.398Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f449ff59383e8d754f7341"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان توییست",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:55:27.918Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T19:01:20.287Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44a4859383e8d754f7363"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرافین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:56:40.333Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:42:31.332Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44afa59383e8d754f7390"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تارت کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T08:59:38.385Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:43:10.368Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44b1b59383e8d754f73aa"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e8488859383e8d754e9202"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:00:11.825Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:57:43.501Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44bf059383e8d754f7414"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دسر انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:03:44.056Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:01:18.393Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44c0859383e8d754f741e"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:04:08.503Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T11:59:31.926Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44c6459383e8d754f7454"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تارت تتن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:05:40.531Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:02:23.862Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44c9659383e8d754f746e"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میلفوی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:06:30.423Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:11:59.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f44f7f59383e8d754f7507"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک چوکوبری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T09:18:55.498Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:03:12.487Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f4872959383e8d754f7b10"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:16:25.105Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:16:25.105Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f4874559383e8d754f7b1a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت فرانسوی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:16:53.172Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:16:53.172Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f4878959383e8d754f7b24"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیوب تست و موز کاراملی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:18:01.376Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:18:01.376Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f487b059383e8d754f7b31"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استافد کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:18:40.546Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:18:40.546Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "64f487da59383e8d754f7b3b"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنکیک المانی با کارامل نمکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f486f059383e8d754f7b03"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-09-03T13:19:22.599Z"
+ },
+ "updated_at": {
+ "$date": "2023-09-03T13:19:22.599Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "650035dc59383e8d7550446c"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیاز سوخاری .. onion rings ",
+ "description": "10 عدد پیاز سوخاری / سس مخصوص..fried onion/special sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-09-12T09:56:44.749Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:56:44.903Z"
+ },
+ "__v": 0,
+ "image": "food_1715934447089.png"
+},
+{
+ "_id": {
+ "$oid": "6501931b59383e8d75505d8d"
+ },
+ "price": 2770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با دیپ چدار و بیکن(new)",
+ "description": "سیب زمینی وجز ، سس چدار، بیکن، پولبیبر، رد اویل، میکرو گرین",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2023-09-13T10:46:51.129Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:33:04.599Z"
+ },
+ "__v": 0,
+ "image": "food_1728330958600.png"
+},
+{
+ "_id": {
+ "$oid": "650c0e0159383e8d75510585"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "اسپرسو، شیر داغ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695288832011.png",
+ "created_at": {
+ "$date": "2023-09-21T09:33:53.631Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:06:45.988Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "650c0f0d59383e8d755105ec"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو ",
+ "description": "اسپرسو، شیر فوم دار",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695289099887.png",
+ "created_at": {
+ "$date": "2023-09-21T09:38:21.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:06:17.144Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513f1c959383e8d7551861d"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته سرد",
+ "description": "اسپرسو، شیر، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695805895784.png",
+ "created_at": {
+ "$date": "2023-09-27T09:11:37.183Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:05:42.104Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513f2c159383e8d75518639"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا سرد",
+ "description": "چای ماسالا، شیر، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695806144076.png",
+ "created_at": {
+ "$date": "2023-09-27T09:15:45.297Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:05:15.679Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513f99159383e8d7551872d"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافی ژلاتو",
+ "description": "اسپرسو، سه اسکوپ بستنی، سس شکلات یا کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695807888134.png",
+ "created_at": {
+ "$date": "2023-09-27T09:44:49.901Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:01:35.757Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513fa6d59383e8d75518737"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپاچیلو",
+ "description": "شیر شیک شده،اسپرسو، بستنی، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695808108259.png",
+ "created_at": {
+ "$date": "2023-09-27T09:48:29.532Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:31:21.166Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513fcbd59383e8d755187b3"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل کاپاچیلو سرد",
+ "description": "شیر شیک شده،اسپرسو، بستنی، یخ، کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1695808700457.png",
+ "created_at": {
+ "$date": "2023-09-27T09:58:21.786Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:32:30.403Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6513fdaf59383e8d755187ea"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاچیلو ",
+ "description": "شیر شیک شده،اسپرسو، شکلات، بستنی، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2023-09-27T10:02:23.261Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T18:59:18.965Z"
+ },
+ "__v": 0,
+ "image": "food_1695915741217.png"
+},
+{
+ "_id": {
+ "$oid": "6519740159383e8d7551dfd0"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن آلفردو",
+ "description": "پنه ، فیله مرغ ، قارچ ، سس آلفردو ، پیازچه ، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:28:33.011Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:45:23.025Z"
+ },
+ "__v": 0,
+ "image": "food_1700505401539.png"
+},
+{
+ "_id": {
+ "$oid": "6519744459383e8d7551dfe0"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک فرایز",
+ "description": "سیب زمینی سرخ شده ، ادویه سیب زمینی،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:29:40.961Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:46:38.758Z"
+ },
+ "__v": 0,
+ "image": "food_1697470183400.png"
+},
+{
+ "_id": {
+ "$oid": "6519748a59383e8d7551dff0"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وگاس فرایز",
+ "description": "سیب زمینی سرخ شده ، دیپ گودا ، بیکن گوساله ، ادویه مخصوص ، جعفری،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:30:50.077Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:47:07.736Z"
+ },
+ "__v": 0,
+ "image": "food_1697470153246.png"
+},
+{
+ "_id": {
+ "$oid": "651974b959383e8d7551dffa"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز",
+ "description": "سیب زمینی سرخ شده ، سس قارچ ،ادویه مخصوص ، جعفری",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:31:37.135Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:47:39.480Z"
+ },
+ "__v": 0,
+ "image": "food_1697470087842.png"
+},
+{
+ "_id": {
+ "$oid": "651977a059383e8d7551e007"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز فرایز",
+ "description": "سیب زمینی سرخ شده ، بیکن گوساله ، قارچ، پنیرپیتزا ،ادوی مخصوص جعفری ،سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:44:00.650Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:48:06.082Z"
+ },
+ "__v": 0,
+ "image": "food_1697470068926.png"
+},
+{
+ "_id": {
+ "$oid": "651977fd59383e8d7551e011"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "داینامیت شریمپ",
+ "description": "میگوهای سوخاری شده جا افتاده در سس داینامیت شرقی به همراه سالاد کلم ،رایس نودل",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:45:33.576Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:48:28.621Z"
+ },
+ "__v": 0,
+ "image": "food_1700064997776.png"
+},
+{
+ "_id": {
+ "$oid": "6519788459383e8d7551e01b"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورینتال چیکن",
+ "description": "تکه های فیله مرغ سوخاری شده به همراه سیب زمینی ساته شده با سیر و ادویه،رایس نودل،سالاد کلم سس سیر و کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:47:48.832Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:48:55.354Z"
+ },
+ "__v": 0,
+ "image": "food_1697470045975.png"
+},
+{
+ "_id": {
+ "$oid": "6519791659383e8d7551e03f"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوپ روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:50:14.758Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:49:15.360Z"
+ },
+ "__v": 0,
+ "image": "food_1700503529696.png"
+},
+{
+ "_id": {
+ "$oid": "65197a2e59383e8d7551e062"
+ },
+ "price": 4950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته استیک",
+ "description": "220 گرم فیله گوساله گریل شده ، برنج اعلاء ایرانی ، گوجه ساته شده ، دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:54:54.883Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-10T17:19:01.339Z"
+ },
+ "__v": 0,
+ "image": "food_1705685449063.png"
+},
+{
+ "_id": {
+ "$oid": "65197acf59383e8d7551e097"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه کباب زعفرانی ",
+ "description": "برنج اعلاء ایرانی ،۲ عدد سیخ چوبی فیله مرغ طعم دار شده با زعفران ، دورچین ،",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:57:35.942Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:51:58.520Z"
+ },
+ "__v": 0,
+ "image": "food_1700418953476.png"
+},
+{
+ "_id": {
+ "$oid": "65197af759383e8d7551e0a7"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ته چین مرغ شیرازی",
+ "description": "ته چین مرغ ، بادمجان دودی ، دورچین ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:58:15.575Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:51:07.220Z"
+ },
+ "__v": 0,
+ "image": "food_1700418905745.png"
+},
+{
+ "_id": {
+ "$oid": "65197b3159383e8d7551e0b1"
+ },
+ "price": 4100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ته چین گوشت ",
+ "description": "ته چین به همراه گوشت فرآوری شده ، بادمجان دودی ، دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T13:59:13.075Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:50:41.164Z"
+ },
+ "__v": 0,
+ "image": "food_1700418859025.png"
+},
+{
+ "_id": {
+ "$oid": "65197c5659383e8d7551e0e0"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فسنجان عیانی",
+ "description": "ران مرغ جا افتاده در خورشت فسنجان ، مغز گردو ، کته زعفرانی ، دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:04:06.811Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:38:35.127Z"
+ },
+ "__v": 0,
+ "image": "food_1700418787599.png"
+},
+{
+ "_id": {
+ "$oid": "65197cff59383e8d7551e0f0"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک قزل آلا",
+ "description": "ماهی قزل آلا سرخ شده ، بروکلی و هویج ساته شده ، سس صدف ، سس سیر، سالسا لبو و آناناس زنجبیلی ، خرما مغز دار",
+ "short_description": "",
+ "category": {
+ "$oid": "6519733c59383e8d7551df9e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:06:55.819Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:55:12.669Z"
+ },
+ "__v": 0,
+ "image": "food_1700506766244.png"
+},
+{
+ "_id": {
+ "$oid": "65197d5e59383e8d7551e0fa"
+ },
+ "price": 6750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراید شریمپ",
+ "description": "شاه میگو سوخاری شده ، مش پوتیتو ، سبزیجات ساته شده با سس صدف ، سس سیر ، سالسا آناناس زنجبیلی ، خرما مغزدار",
+ "short_description": "",
+ "category": {
+ "$oid": "6519733c59383e8d7551df9e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:08:30.093Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:54:50.901Z"
+ },
+ "__v": 0,
+ "image": "food_1711381169606.png"
+},
+{
+ "_id": {
+ "$oid": "65197db859383e8d7551e122"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف آلفردو ",
+ "description": "پنه ، فیله گوساله ، قارچ ، سس آلفردو ، پیازچه ، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:10:00.250Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:46:24.592Z"
+ },
+ "__v": 0,
+ "image": "food_1709920205103.png"
+},
+{
+ "_id": {
+ "$oid": "65197e9359383e8d7551e139"
+ },
+ "price": 3150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فتوچینی پستو",
+ "description": "فتوچینی ، فیله مرغ گریل شده، قارچ ، سس پستو جنوا ،گردو ، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:13:39.840Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:46:02.383Z"
+ },
+ "__v": 0,
+ "image": "food_1700505314228.png"
+},
+{
+ "_id": {
+ "$oid": "65197f3459383e8d7551e14c"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اوشن اسپایسی",
+ "description": "فتوچینی ، میگو سوخاری ، سس پیری پیری، بروکلی ، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:16:20.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:44:51.139Z"
+ },
+ "__v": 0,
+ "image": "food_1711381126223.png"
+},
+{
+ "_id": {
+ "$oid": "65197f9759383e8d7551e156"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پوتانسکا",
+ "description": "پنه ، بیکن گوساله تفت داده شده با کره ، سس آلفردو ، قارچ ، پیازچه ، پنیر هالومی ، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:17:59.023Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:44:19.727Z"
+ },
+ "__v": 0,
+ "image": "food_1711381107855.png"
+},
+{
+ "_id": {
+ "$oid": "65197fc659383e8d7551e160"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لازانیا ",
+ "description": "لازانیا ،به انتخاب شما(بیکن. گوشت چرخ کرده.مرغ) سس خامه،سس مارینارا،قارچ ، پنیر پیتزا",
+ "short_description": "",
+ "category": {
+ "$oid": "6519726759383e8d7551df83"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:18:46.532Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:43:56.435Z"
+ },
+ "__v": 0,
+ "image": "food_1700065921952.png"
+},
+{
+ "_id": {
+ "$oid": "6519804c59383e8d7551e170"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک برگر",
+ "description": "130 گرم گوشت مزه دار شده، کاهو فرانسه، گوجه، خیارشور، سس دست ساز BBQ،سس فرانسوی،سیب زمینی تنوری،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:21:00.246Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:52:23.824Z"
+ },
+ "__v": 0,
+ "image": "food_1700064676261.png"
+},
+{
+ "_id": {
+ "$oid": "6519806359383e8d7551e17a"
+ },
+ "price": 4050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هاوایی برگر",
+ "description": "130 گرم گوشت مزه دار شده،ورق طلا، بیکن کریسپی، آناناس گریل شده، کاهو فرانسه، دیپ آووکادو، گوجه،خیارشور،سیب زمینی تنوری",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:21:23.607Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T17:20:01.190Z"
+ },
+ "__v": 0,
+ "image": "food_1700064706052.png"
+},
+{
+ "_id": {
+ "$oid": "6519807e59383e8d7551e184"
+ },
+ "price": 3950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هانی بیف",
+ "description": "130 گرم گوشت مزه دار شده، دیپ گودا، بیکن کریسپی، پیاز کاراملایز، کاهو فرانسه، گوجه،خیار شور، پنیر هالومی،سیب زمینی تنوری،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:21:50.007Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:51:29.885Z"
+ },
+ "__v": 0,
+ "image": "food_1700579878511.png"
+},
+{
+ "_id": {
+ "$oid": "6519809359383e8d7551e18e"
+ },
+ "price": 4050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماریا برگر",
+ "description": "130 گرم گوشت مزه دار شده ،شنسل مرغ سوخاری ،دیپ گودا،سس فرانسوی، کاهو فرانسه، گوجه،خیارشور، سس دست ساز BBQ،سیب زمینی تنوری",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:22:11.246Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T17:18:54.996Z"
+ },
+ "__v": 0,
+ "image": "food_1700579834554.png"
+},
+{
+ "_id": {
+ "$oid": "651980aa59383e8d7551e19e"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک اند بلو",
+ "description": "130 گرم گوشت مزه دار شده، دریایی از پنیر بلوچیز، کاهو فرانسه، گوجه،خیارشور، قارچ بلانچ شده،سیب زمینی تنوری،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:22:34.965Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T17:18:28.502Z"
+ },
+ "__v": 0,
+ "image": "food_1711380975664.png"
+},
+{
+ "_id": {
+ "$oid": "6519817c59383e8d7551e1ae"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراید چیکن",
+ "description": "3 عدد فیله سوخاری، دیپ گودا، سالاد کلم،سس فرانسوی،سیب زمینی تنوری،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519723359383e8d7551df6b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:26:04.987Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T17:18:08.682Z"
+ },
+ "__v": 0,
+ "image": "food_1700579747065.png"
+},
+{
+ "_id": {
+ "$oid": "651981b059383e8d7551e1cb"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس دست ساز BBQ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:26:56.839Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:44:29.099Z"
+ },
+ "__v": 0,
+ "image": "food_1711381413862.png"
+},
+{
+ "_id": {
+ "$oid": "651981c159383e8d7551e1d5"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیپ گودا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:27:13.330Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:44:08.477Z"
+ },
+ "__v": 0,
+ "image": "food_1711381392297.png"
+},
+{
+ "_id": {
+ "$oid": "651981eb59383e8d7551e1df"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس بلوچیز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:27:55.536Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-25T15:42:55.841Z"
+ },
+ "__v": 0,
+ "image": "food_1711381375392.png"
+},
+{
+ "_id": {
+ "$oid": "6519820c59383e8d7551e1f3"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس آووکادو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:28:28.356Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-25T18:53:19.786Z"
+ },
+ "__v": 0,
+ "image": "food_1711392780130.png"
+},
+{
+ "_id": {
+ "$oid": "6519821c59383e8d7551e1fd"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:28:44.245Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-26T19:23:15.464Z"
+ },
+ "__v": 0,
+ "image": "food_1711392409168.png"
+},
+{
+ "_id": {
+ "$oid": "6519827a59383e8d7551e21d"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار با مرغ گریل",
+ "description": "کاهو رسمی، گوجه گیلاسی، نان کراتان، فیله مرغ گریل شده، سس سزار لانکا، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:30:18.405Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:46:58.680Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6519829159383e8d7551e22a"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار سوخاری",
+ "description": "کاهو رسمی، گوجه گیلاسی، نان کراتان، 2 عدد رول مرغ سوخاری پنیری، سس سزار لانکا، پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:30:41.518Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:44:45.242Z"
+ },
+ "__v": 0,
+ "image": "food_1700064850761.png"
+},
+{
+ "_id": {
+ "$oid": "651982a659383e8d7551e234"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد لانکا",
+ "description": "کاهو رسمی، گردو کاراملی، بادام هندی،مویز، نان مغزدار، کرنبری،، پرک بادام، نعنا تازه،سس آنتراکت",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:31:02.929Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:44:00.099Z"
+ },
+ "__v": 0,
+ "image": "food_1709920706028.png"
+},
+{
+ "_id": {
+ "$oid": "651982c259383e8d7551e23e"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد هالومی بیکن",
+ "description": "کاهو رسمی، بیکن کریسپی، پنیر هالومی، نان ترتیلا، گوجه چری، کاپاریس،سس گرین",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:31:30.231Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:44:19.675Z"
+ },
+ "__v": 0,
+ "image": "food_1700064817754.png"
+},
+{
+ "_id": {
+ "$oid": "651982db59383e8d7551e248"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد آسیایی",
+ "description": "کاهو رسمی، کینوا، بروکلی، خیار، گوجه چری، نخود پخته شده، پیاز شارلوط، سس بالزامیک ،روغن زیتون فرابکر",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:31:55.808Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:12:26.478Z"
+ },
+ "__v": 0,
+ "image": "food_1700506184020.png"
+},
+{
+ "_id": {
+ "$oid": "651983ba59383e8d7551e27a"
+ },
+ "price": 8650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک فیله مینیون",
+ "description": "250 گرم فیله گوساله گریل شده ، مش پوتیتو ، سبزیجات ساته شده با سس صدف,سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:35:38.429Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T17:17:36.372Z"
+ },
+ "__v": 0,
+ "image": "food_1711381090415.png"
+},
+{
+ "_id": {
+ "$oid": "6519840d59383e8d7551e293"
+ },
+ "price": 9500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک لانکا",
+ "description": "700 الی 850گرم ریبای استیک،ورق طلا،مش پوتیتو،سبزیجات ساته شده با سس صدف،سس قارچ(پخت مدیوم)",
+ "short_description": "",
+ "category": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:37:01.059Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:54:02.706Z"
+ },
+ "__v": 0,
+ "image": "food_1709920062622.png"
+},
+{
+ "_id": {
+ "$oid": "6519844359383e8d7551e2a3"
+ },
+ "price": 7450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لمب استیک ",
+ "description": "راسته گوسفندی گریل شده ، مش پوتیتو ، سبزیجات ساته شده با سس صدف،سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:37:55.608Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:53:41.778Z"
+ },
+ "__v": 0,
+ "image": "food_1711381067217.png"
+},
+{
+ "_id": {
+ "$oid": "6519848e59383e8d7551e2ad"
+ },
+ "price": 8100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سورف اند تورف",
+ "description": "250گرم فیله گوساله گریل شده ، 3عددشاه میگو سوخاری شده ، مش پوتیتو ، سبزیجات ساته شده با سس صدف ، سس ترخون",
+ "short_description": "",
+ "category": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:39:10.705Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:46:51.731Z"
+ },
+ "__v": 0,
+ "image": "food_1711381042187.png"
+},
+{
+ "_id": {
+ "$oid": "651984d259383e8d7551e2bd"
+ },
+ "price": 4150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استیک",
+ "description": "شنسل مرغ گریل شده ، مش پوتیتو ، سبزیجات ساته شده با سس صدف ،سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519724d59383e8d7551df74"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:40:18.703Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:52:47.998Z"
+ },
+ "__v": 0,
+ "image": "food_1711381020688.png"
+},
+{
+ "_id": {
+ "$oid": "6519866459383e8d7551e305"
+ },
+ "price": 4600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل کاپو",
+ "description": "سس سیر، پنیر پیتزا ، فیله گوساله طعم دار شده با سیر ، بیکن گوساله ، قارچ ، زیتون سیاه ، ارگانو،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:47:00.115Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:46:16.835Z"
+ },
+ "__v": 0,
+ "image": "food_1700504370110.png"
+},
+{
+ "_id": {
+ "$oid": "651986ab59383e8d7551e311"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن جنوا",
+ "description": "سس پستو جنوا ، پنیر پیتزا ، فیله مرغ ، قارچ ، دلمه رنگی ، زیتون سیاه ، ذرت ،ریحان،شات سس",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:48:11.601Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:39:38.161Z"
+ },
+ "__v": 0,
+ "image": "food_1700065708184.png"
+},
+{
+ "_id": {
+ "$oid": "651986ff59383e8d7551e321"
+ },
+ "price": 4050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیاوولا(پپرونی)",
+ "description": "سس بوفالو(HOT)، پنیر پیتزا ، پپرونی ، هالوپینو،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:49:35.882Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:18:22.578Z"
+ },
+ "__v": 0,
+ "image": "food_1705681791453.png"
+},
+{
+ "_id": {
+ "$oid": "651987a859383e8d7551e34d"
+ },
+ "price": 4100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاورده",
+ "description": "سس ناپولیتن ، پنیر پیتزا ، فیله گوساله طعم دار شده با سیر ، فیله مرغ ، قارچ ، دلمه رنگی ، زیتون سیاه،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-01T14:52:24.071Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:17:57.030Z"
+ },
+ "__v": 0,
+ "image": "food_1700065792298.png"
+},
+{
+ "_id": {
+ "$oid": "651d77c259383e8d75521da1"
+ },
+ "price": 1560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مرغ کاریCurry chicken salad",
+ "description": "سینه مرغ طمع دار شده-کاهو-سیب زمینی-جعفری-هویج سرخ شده-نان ساج ترکی-سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696430012307.png",
+ "created_at": {
+ "$date": "2023-10-04T14:33:38.500Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:12:14.542Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d79a659383e8d75521de4"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد گرین green salad",
+ "description": "کاهو-سبزیجات معطر-سویا-مغزیجات-زیتون-dried tomato-نان بلغور-سس میوه",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696430495660.png",
+ "created_at": {
+ "$date": "2023-10-04T14:41:42.035Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:24:57.747Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d8cb259383e8d75522046"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "گوشت گوساله-دیپ چدار-کاهو-پیاز-گوجه-خیارشور",
+ "short_description": "",
+ "category": {
+ "$oid": "651d815259383e8d75521f12"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696435374474.png",
+ "created_at": {
+ "$date": "2023-10-04T16:02:58.513Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:16:53.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d8eb659383e8d755220ad"
+ },
+ "price": 1530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر ",
+ "description": "مرغ گریل -کاهو -پنیر -خیارشور -گوجه -سس مخصوص ",
+ "short_description": "",
+ "category": {
+ "$oid": "651d815259383e8d75521f12"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696435891017.png",
+ "created_at": {
+ "$date": "2023-10-04T16:11:34.170Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T16:11:34.170Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d9c3559383e8d75522383"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696439347250.png",
+ "created_at": {
+ "$date": "2023-10-04T17:09:09.428Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T17:09:09.428Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651d9ee559383e8d75522481"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مینت چاکلت",
+ "description": "شکلات نعنایی+شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "639887a782d7fc8d726a7b2d"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696440035125.png",
+ "created_at": {
+ "$date": "2023-10-04T17:20:37.480Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T17:20:37.480Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651da99059383e8d755226f0"
+ },
+ "price": 520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز و نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696442765180.png",
+ "created_at": {
+ "$date": "2023-10-04T18:06:08.992Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:06:08.992Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651daa2e59383e8d75522733"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش کوهی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6456a24198ff3c741441c6ef"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696442921555.png",
+ "created_at": {
+ "$date": "2023-10-04T18:08:46.061Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:08:46.061Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651db23d59383e8d75522963"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک منگو دریم ",
+ "description": "بستنی وانیل-آب انبه-دارچین-موز",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696444988115.png",
+ "created_at": {
+ "$date": "2023-10-04T18:43:09.695Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T18:43:09.695Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651db45c59383e8d7552299a"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز شیک ",
+ "description": "بستنی وانیل -پنیر ماسکارپونه-لیدی فینگر ",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696445529672.png",
+ "created_at": {
+ "$date": "2023-10-04T18:52:12.235Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-30T12:48:03.070Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651db59c59383e8d755229c9"
+ },
+ "price": 910000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اورئو ",
+ "description": "بستنی وانیل - بیسکویئت اورئو ",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696445850261.png",
+ "created_at": {
+ "$date": "2023-10-04T18:57:32.582Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-30T12:47:19.160Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dba0759383e8d75522a37"
+ },
+ "price": 710000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاوندر",
+ "description": "اسطوخودوس-پنیرک-انبه-آب لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696446980423.png",
+ "created_at": {
+ "$date": "2023-10-04T19:16:23.773Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:16:23.773Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbb5459383e8d75522a5c"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وینو",
+ "description": "آلبالو -چای ترش - توت فرنگی -فلفل",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696447312768.png",
+ "created_at": {
+ "$date": "2023-10-04T19:21:56.231Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:21:56.231Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbcb559383e8d75522aa6"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اس تی بلک",
+ "description": "چای سیاه سرد دم - توت فرنگی-سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696447665612.png",
+ "created_at": {
+ "$date": "2023-10-04T19:27:49.282Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:28:20.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbd3959383e8d75522abd"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیزی بلک",
+ "description": "چای سیاه سرد دم -لیمو -سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "62dd42c0faacb066e12063cc"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696447800091.png",
+ "created_at": {
+ "$date": "2023-10-04T19:30:01.587Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:30:01.587Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbfad59383e8d75522b60"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "love",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448428513.png",
+ "created_at": {
+ "$date": "2023-10-04T19:40:29.503Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:40:29.503Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dbfef59383e8d75522b73"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیدی کیلر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448494533.png",
+ "created_at": {
+ "$date": "2023-10-04T19:41:35.562Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:41:35.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dc03859383e8d75522b9a"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آدامس دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448567661.png",
+ "created_at": {
+ "$date": "2023-10-04T19:42:48.675Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:42:48.675Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dc05859383e8d75522ba4"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب یخ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448599521.png",
+ "created_at": {
+ "$date": "2023-10-04T19:43:20.513Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:43:20.513Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dc07559383e8d75522bb1"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آلو یخ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448628354.png",
+ "created_at": {
+ "$date": "2023-10-04T19:43:49.450Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:48:38.229Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651dc18159383e8d75522bef"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هندوانه نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651dbf1359383e8d75522b44"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1696448896830.png",
+ "created_at": {
+ "$date": "2023-10-04T19:48:17.829Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-04T19:48:17.829Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "651ecac659383e8d75523694"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارگریتا",
+ "description": "سس مارینارا،پنیر توپی موزارلا،گوجه اسلایس ،ریحان،پارمژان",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T14:40:06.477Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:09:56.335Z"
+ },
+ "__v": 0,
+ "image": "food_1728639153521.png"
+},
+{
+ "_id": {
+ "$oid": "651ee04b59383e8d75523c6a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:11:55.064Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:13:24.599Z"
+ },
+ "__v": 0,
+ "image": "food_1697923414665.png"
+},
+{
+ "_id": {
+ "$oid": "651ee0e059383e8d75523cae"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو70/30",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:14:24.836Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:52:17.717Z"
+ },
+ "__v": 0,
+ "image": "food_1697923462054.png"
+},
+{
+ "_id": {
+ "$oid": "651ee12e59383e8d75523cf0"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 1,
+ "active": true,
+ "name": "امریکانو",
+ "description": "اسپرسو+آب جوش",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:15:42.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:17:14.562Z"
+ },
+ "__v": 0,
+ "image": "food_1697923497768.png"
+},
+{
+ "_id": {
+ "$oid": "651ee22c59383e8d75523d4f"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "اسپرسو+بستنی ",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:19:56.127Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:15:57.809Z"
+ },
+ "__v": 0,
+ "image": "food_1697997795070.png"
+},
+{
+ "_id": {
+ "$oid": "651ee59c59383e8d75523ea8"
+ },
+ "price": 1280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "اسپرسو+190میل شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:34:36.373Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:15:26.070Z"
+ },
+ "__v": 0,
+ "image": "food_1697923705360.png"
+},
+{
+ "_id": {
+ "$oid": "651ee5c459383e8d75523ecd"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "اسپرسو+230 میل شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:35:16.312Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:15:06.531Z"
+ },
+ "__v": 0,
+ "image": "food_1697923748826.png"
+},
+{
+ "_id": {
+ "$oid": "651ee6dc59383e8d75523f66"
+ },
+ "price": 1520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "اسپرسو+220میل شیر+شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:39:56.319Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:14:03.221Z"
+ },
+ "__v": 0,
+ "image": "food_1697923777904.png"
+},
+{
+ "_id": {
+ "$oid": "651eeaea59383e8d755240f7"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست موسیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:57:14.205Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:41:57.136Z"
+ },
+ "__v": 0,
+ "image": "food_1700503768714.png"
+},
+{
+ "_id": {
+ "$oid": "651eeb2959383e8d7552412f"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بورانی بادمجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:58:17.685Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:41:42.006Z"
+ },
+ "__v": 0,
+ "image": "food_1700503897293.png"
+},
+{
+ "_id": {
+ "$oid": "651eeb5259383e8d7552415a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست و خیار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:58:58.819Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:41:22.073Z"
+ },
+ "__v": 0,
+ "image": "food_1700503854385.png"
+},
+{
+ "_id": {
+ "$oid": "651eeb7259383e8d75524170"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیتون پرورده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T16:59:30.098Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:40:49.031Z"
+ },
+ "__v": 0,
+ "image": "food_1700503801658.png"
+},
+{
+ "_id": {
+ "$oid": "651eebd259383e8d7552418f"
+ },
+ "price": 1380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:01:06.682Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:13:32.858Z"
+ },
+ "__v": 0,
+ "image": "food_1699531171893.png"
+},
+{
+ "_id": {
+ "$oid": "651eebfa59383e8d755241a8"
+ },
+ "price": 1420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:01:46.155Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:11:50.241Z"
+ },
+ "__v": 0,
+ "image": "food_1699531024668.png"
+},
+{
+ "_id": {
+ "$oid": "651eec1b59383e8d755241bb"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:02:19.546Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:11:03.472Z"
+ },
+ "__v": 0,
+ "image": "food_1699530957021.png"
+},
+{
+ "_id": {
+ "$oid": "651eecc059383e8d755241f7"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات لوتوس",
+ "description": "شیر+کره لوتوس",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:05:04.906Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:10:46.455Z"
+ },
+ "__v": 0,
+ "image": "food_1697997963811.png"
+},
+{
+ "_id": {
+ "$oid": "651eecf259383e8d75524212"
+ },
+ "price": 980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر کارامل دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee76759383e8d75523f8b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:05:54.031Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:09:11.159Z"
+ },
+ "__v": 0,
+ "image": "food_1697997918424.png"
+},
+{
+ "_id": {
+ "$oid": "651eee1159383e8d75524276"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:10:41.848Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:08:48.967Z"
+ },
+ "__v": 0,
+ "image": "food_1700505148529.png"
+},
+{
+ "_id": {
+ "$oid": "651eee3b59383e8d7552428f"
+ },
+ "price": 1380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:11:23.359Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T16:07:54.555Z"
+ },
+ "__v": 0,
+ "image": "food_1700505066167.png"
+},
+{
+ "_id": {
+ "$oid": "651eee7a59383e8d7552429f"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس کوکی لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:12:26.270Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:07:38.848Z"
+ },
+ "__v": 0,
+ "image": "food_1700505009799.png"
+},
+{
+ "_id": {
+ "$oid": "651ef01159383e8d75524330"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس پاپکورن لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:19:13.557Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:08:19.686Z"
+ },
+ "__v": 0,
+ "image": "food_1700504953778.png"
+},
+{
+ "_id": {
+ "$oid": "651ef04959383e8d75524346"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:20:09.165Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:07:53.544Z"
+ },
+ "__v": 0,
+ "image": "food_1700504882868.png"
+},
+{
+ "_id": {
+ "$oid": "651ef08e59383e8d75524360"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس کوکو لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eedbd59383e8d7552425d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:21:18.306Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:06:34.391Z"
+ },
+ "__v": 0,
+ "image": "food_1700504694051.png"
+},
+{
+ "_id": {
+ "$oid": "651ef0da59383e8d75524393"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوتوس باتر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef0b759383e8d7552437a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:22:34.659Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:56:07.365Z"
+ },
+ "__v": 0,
+ "image": "food_1697995109260.png"
+},
+{
+ "_id": {
+ "$oid": "651ef0fc59383e8d755243a9"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لایف چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef0b759383e8d7552437a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:23:08.539Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:55:38.425Z"
+ },
+ "__v": 0,
+ "image": "food_1697998248760.png"
+},
+{
+ "_id": {
+ "$oid": "651ef11e59383e8d755243b9"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینات باتر",
+ "description": "بستنی+بادام زمینی",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef0b759383e8d7552437a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:23:42.318Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:55:11.796Z"
+ },
+ "__v": 0,
+ "image": "food_1697999716171.png"
+},
+{
+ "_id": {
+ "$oid": "651ef26259383e8d75524443"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:29:06.858Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:24:30.858Z"
+ },
+ "__v": 0,
+ "image": "food_1697998467799.png"
+},
+{
+ "_id": {
+ "$oid": "651ef30b59383e8d7552446b"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویرجین موهیتو",
+ "description": "(همراه با عرق نیشکر)",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-05T17:31:55.909Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:24:13.606Z"
+ },
+ "__v": 0,
+ "image": "food_1697998418915.png"
+},
+{
+ "_id": {
+ "$oid": "651fe09859383e8d75525110"
+ },
+ "price": 1030000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eff7759383e8d75524961"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-06T10:25:28.697Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-12T17:28:58.090Z"
+ },
+ "__v": 0,
+ "image": "food_1734024510493.png"
+},
+{
+ "_id": {
+ "$oid": "65219ca459383e8d7552761e"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله استریپس 3 تیکه ",
+ "description": "3 تیکه فیله مرغ کریسپی شده،سیب زمینی سرخ شده بهمراه ادویه، سالاد کلم،نان مک،سس چیلی،سس سیر",
+ "short_description": "",
+ "category": {
+ "$oid": "65219db959383e8d75527683"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-07T18:00:04.785Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:54:30.555Z"
+ },
+ "__v": 0,
+ "image": "food_1697469906857.png"
+},
+{
+ "_id": {
+ "$oid": "65219d0959383e8d75527631"
+ },
+ "price": 4100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراید پلیت ",
+ "description": "2تیکه فیله مرغ کریسپی شده،قارچ سوخاری،پیاز سوخاری.چیکن پنیری.سیب زمینی سوخاری،گل کلم سوخاری سالاد کلم،سس چیلی،سس سیر",
+ "short_description": "",
+ "category": {
+ "$oid": "65219db959383e8d75527683"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-07T18:01:45.632Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:54:11.517Z"
+ },
+ "__v": 0,
+ "image": "food_1705682276880.png"
+},
+{
+ "_id": {
+ "$oid": "65219e4559383e8d755276cf"
+ },
+ "price": 2220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بوفالو وینگز",
+ "description": "بال مرغ سوخاری،رایس نودل،سالاد کلم،سس بوفالو (HOT) ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-07T18:07:01.962Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-01T12:49:51.754Z"
+ },
+ "__v": 0,
+ "image": "food_1697469854714.png"
+},
+{
+ "_id": {
+ "$oid": "65219ee859383e8d755276d9"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله استریپس 5تیکه",
+ "description": "5عدد فیله مرغ کریسپی شده ،سالاد کلم،نان مک،سیب زمینی سرخ شده بهمراه ادویه ،سس سیر-چیلی تای",
+ "short_description": "",
+ "category": {
+ "$oid": "65219db959383e8d75527683"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-07T18:09:44.317Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:53:48.705Z"
+ },
+ "__v": 0,
+ "image": "food_1697469825117.png"
+},
+{
+ "_id": {
+ "$oid": "65226e9059383e8d75527b7f"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T08:55:44.224Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:23:42.862Z"
+ },
+ "__v": 0,
+ "image": "food_1734024149641.png"
+},
+{
+ "_id": {
+ "$oid": "6522b25959383e8d75528169"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه 2 نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T13:44:57.375Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:23:16.743Z"
+ },
+ "__v": 0,
+ "image": "food_1697923912214.png"
+},
+{
+ "_id": {
+ "$oid": "6522b29259383e8d75528177"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه 4نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T13:45:54.237Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:22:54.902Z"
+ },
+ "__v": 0,
+ "image": "food_1697923944307.png"
+},
+{
+ "_id": {
+ "$oid": "6522b90b59383e8d755281fe"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اقیانوس آبی ",
+ "description": "لوندر فرانسوی . نخود پروانه ای . بلوبری",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T14:13:31.070Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:40:18.361Z"
+ },
+ "__v": 0,
+ "image": "food_1734023335326.png"
+},
+{
+ "_id": {
+ "$oid": "6522b99d59383e8d75528215"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش بعد از شام",
+ "description": "سیب. به . زنجبیل . رزماری",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-08T14:15:57.177Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:39:07.461Z"
+ },
+ "__v": 0,
+ "image": "food_1734023260428.png"
+},
+{
+ "_id": {
+ "$oid": "6523dc5f59383e8d75529446"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اکسترا فیله ",
+ "description": "یک عدد فیله مرغ گریل شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-09T10:56:31.354Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:24:38.232Z"
+ },
+ "__v": 0,
+ "image": "food_1697469803784.png"
+},
+{
+ "_id": {
+ "$oid": "6523f3f459383e8d7552966a"
+ },
+ "price": 4350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پولد بیف ",
+ "description": "سس خامه،پنیر پیتزا،مغز ران پخته شده طعم دار،فلفل دلمه رنگی ،قارچ،زیتون سیاه،گوجه خشک مزه دار شده،شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-09T12:37:08.639Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:42:17.227Z"
+ },
+ "__v": 0,
+ "image": "food_1705682387141.png"
+},
+{
+ "_id": {
+ "$oid": "652693fd59383e8d7552ba60"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-11T12:24:29.212Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:31:30.868Z"
+ },
+ "__v": 0,
+ "image": "food_1701607992109.png"
+},
+{
+ "_id": {
+ "$oid": "6527fd2e59383e8d7552d4cc"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو اوشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6527fce059383e8d7552d4be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:05:34.943Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:52:45.722Z"
+ },
+ "__v": 0,
+ "image": "food_1697996464397.png"
+},
+{
+ "_id": {
+ "$oid": "6527fd9b59383e8d7552d4e6"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لانکا بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6527fce059383e8d7552d4be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:07:23.408Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:51:56.834Z"
+ },
+ "__v": 0,
+ "image": "food_1697998762565.png"
+},
+{
+ "_id": {
+ "$oid": "6527ffa059383e8d7552d553"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک ویدو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:16:00.837Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:26:43.330Z"
+ },
+ "__v": 0,
+ "image": "food_1697998657211.png"
+},
+{
+ "_id": {
+ "$oid": "6527fffe59383e8d7552d56a"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلی فلاور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:17:34.460Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:26:28.383Z"
+ },
+ "__v": 0,
+ "image": "food_1697993972425.png"
+},
+{
+ "_id": {
+ "$oid": "6528018259383e8d7552d5ed"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیتر آلموند ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-10-12T14:24:02.137Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:25:55.892Z"
+ },
+ "__v": 0,
+ "image": "food_1697923853450.png"
+},
+{
+ "_id": {
+ "$oid": "652a47a859383e8d755304ea"
+ },
+ "price": 430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 50-50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:47:52.165Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:30:00.482Z"
+ },
+ "__v": 0,
+ "image": "food_1701608031535.png"
+},
+{
+ "_id": {
+ "$oid": "652a47f659383e8d755304f7"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ربوستا دوپیو ربوستا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:49:10.688Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:29:24.951Z"
+ },
+ "__v": 0,
+ "image": "food_1701608129536.png"
+},
+{
+ "_id": {
+ "$oid": "652a485259383e8d75530505"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V 60",
+ "description": "اتیوپی هامبلا",
+ "short_description": "",
+ "category": {
+ "$oid": "652a478059383e8d755304db"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:50:42.856Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:31:58.382Z"
+ },
+ "__v": 0,
+ "image": "food_1701608093471.png"
+},
+{
+ "_id": {
+ "$oid": "652a49b659383e8d75530566"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا اسپرسو",
+ "description": "اسپرسو دوبل-پودر ماسالا-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:56:38.628Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:38:57.557Z"
+ },
+ "__v": 0,
+ "image": "food_1701607738884.png"
+},
+{
+ "_id": {
+ "$oid": "652a49d959383e8d75530573"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:57:13.224Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:38:11.313Z"
+ },
+ "__v": 0,
+ "image": "food_1700662718913.png"
+},
+{
+ "_id": {
+ "$oid": "652a49fb59383e8d75530580"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت فندوقی",
+ "description": "شیر-پودر هات چاکلت-سیروپ فندوق",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:57:47.967Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:35:50.727Z"
+ },
+ "__v": 0,
+ "image": "food_1701607453105.png"
+},
+{
+ "_id": {
+ "$oid": "652a4a2759383e8d7553058a"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "شیر-زنجبیل-هل-دارچین",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:58:31.057Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:27:31.575Z"
+ },
+ "__v": 0,
+ "image": "food_1701607360495.png"
+},
+{
+ "_id": {
+ "$oid": "652a4a7959383e8d755305a0"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T07:59:53.672Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:28:04.861Z"
+ },
+ "__v": 0,
+ "image": "food_1701608212804.png"
+},
+{
+ "_id": {
+ "$oid": "652a4a9b59383e8d755305aa"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر فندوق",
+ "description": "شیر-فندوق-سیروپ فندوق",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:00:27.974Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:15:13.849Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a4b1659383e8d755305e1"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل",
+ "description": "شیر گرم فوم دار شده-عسل طبیعی",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:02:30.749Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:13:50.824Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a4b8459383e8d755305ff"
+ },
+ "price": 530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو 50-50",
+ "description": "اسپرسو دوبل 50-50 -آب-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:04:20.962Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:17:19.131Z"
+ },
+ "__v": 0,
+ "image": "food_1701608264002.png"
+},
+{
+ "_id": {
+ "$oid": "652a4ba159383e8d7553060a"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو ربوستا",
+ "description": "اسپرسو دوبل ربوستا-آب-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:04:49.418Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:17:53.667Z"
+ },
+ "__v": 0,
+ "image": "food_1701606499539.png"
+},
+{
+ "_id": {
+ "$oid": "652a4bbd59383e8d75530614"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "اسپرسو دوبل-شیر-سیروپ شکلات-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:05:17.373Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:18:45.138Z"
+ },
+ "__v": 0,
+ "image": "food_1701606450996.png"
+},
+{
+ "_id": {
+ "$oid": "652a4c5659383e8d75530656"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لیان",
+ "description": "پودر هات چاکلت-قهوه گلد-سیروپ فندوق-نوتلا-شیر-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:07:50.602Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:19:28.836Z"
+ },
+ "__v": 0,
+ "image": "food_1701605340716.png"
+},
+{
+ "_id": {
+ "$oid": "652a4d4b59383e8d755306a9"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز شکلات",
+ "description": "بستنی شکلاتی-موز ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a476859383e8d755304cf"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:11:55.281Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-28T12:41:40.440Z"
+ },
+ "__v": 0,
+ "image": "food_1701606038603.png"
+},
+{
+ "_id": {
+ "$oid": "652a4d6059383e8d755306b3"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام زمینی",
+ "description": "بستنی وانیل-کره بادام زمینی-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a476859383e8d755304cf"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:12:16.942Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:22:17.860Z"
+ },
+ "__v": 0,
+ "image": "food_1701605978968.png"
+},
+{
+ "_id": {
+ "$oid": "652a4d7259383e8d755306bd"
+ },
+ "price": 980000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا توییکس",
+ "description": "بستنی وانیل-نوتلا-شکلات توییکس-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a476859383e8d755304cf"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:12:34.337Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-04T07:31:40.118Z"
+ },
+ "__v": 0,
+ "image": "food_1701605889766.png"
+},
+{
+ "_id": {
+ "$oid": "652a4d9959383e8d755306d1"
+ },
+ "price": 750000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": " اسپرسو",
+ "description": "اسپرسو دبل-بستنی وانیل-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a476859383e8d755304cf"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T08:13:13.657Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:23:20.856Z"
+ },
+ "__v": 0,
+ "image": "food_1701605808978.png"
+},
+{
+ "_id": {
+ "$oid": "652a618559383e8d7553089d"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "چای عطری دمی",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55c759383e8d7553078a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T09:38:13.008Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-02T18:28:42.113Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "652a61a759383e8d755308a7"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "چای سیاه دمی-زعفران",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55c759383e8d7553078a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T09:38:47.996Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-28T12:30:51.113Z"
+ },
+ "__v": 0,
+ "image": "food_1701604795540.png"
+},
+{
+ "_id": {
+ "$oid": "652a650459383e8d7553092b"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مدیترانه",
+ "description": "چای ترش-سیب-نسترن-کشمش-پوست پرتقال-به لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55c759383e8d7553078a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-14T09:53:08.573Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-02T18:26:44.031Z"
+ },
+ "__v": 0,
+ "image": "food_1701608482959.png"
+},
+{
+ "_id": {
+ "$oid": "652e6e0959383e8d75534081"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "شیر-اسپرسو دبل-سیروپ دلخواه-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2023-10-17T11:20:41.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:24:49.936Z"
+ },
+ "__v": 0,
+ "image": "food_1725301291531.png"
+},
+{
+ "_id": {
+ "$oid": "6537f76859383e8d7553ef4c"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سرخ کرده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:57:12.963Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-24T16:57:12.963Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f78459383e8d7553ef56"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بروسکتا آل پومودرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:57:40.241Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:19:48.094Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f7c359383e8d7553ef7f"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:58:43.621Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-13T16:19:23.585Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f7e159383e8d7553efa1"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن تنوری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T16:59:13.743Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:10:57.952Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6537f82159383e8d7553f006"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن الفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2023-10-24T17:00:17.622Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:10:25.002Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6549280059383e8d75552fc6"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک سن سباستین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eff7759383e8d75524961"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-11-06T17:53:04.503Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-12T17:25:03.265Z"
+ },
+ "__v": 0,
+ "image": "food_1705685420900.png"
+},
+{
+ "_id": {
+ "$oid": "654cc66759383e8d755566bf"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6522a77659383e8d75527f18"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-11-09T11:45:43.390Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:18:35.082Z"
+ },
+ "__v": 0,
+ "image": "food_1744480231161.png"
+},
+{
+ "_id": {
+ "$oid": "654cc6b059383e8d755566e4"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V-60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6522a77659383e8d75527f18"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-11-09T11:46:56.428Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:32:15.309Z"
+ },
+ "__v": 0,
+ "image": "food_1711380844317.png"
+},
+{
+ "_id": {
+ "$oid": "65509f4259383e8d7555b834"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ اسپشیال",
+ "description": "هات داگ ٧٠٪،قارچ،پنیر،سس مخصوص،کاهو،خیارشور،گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "65509e8659383e8d7555b820"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-11-12T09:47:46.644Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T15:11:11.075Z"
+ },
+ "__v": 0,
+ "image": "food_1733223422595.png"
+},
+{
+ "_id": {
+ "$oid": "6550ad0159383e8d7555bb28"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میت لاورز ",
+ "description": "گوشت طعم دار شده، زیتون،قارچ،سس مخصوص،پنیر گودا،پنیر پیتزا",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-11-12T10:46:25.449Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:15:08.425Z"
+ },
+ "__v": 0,
+ "image": "food_1733221743797.png"
+},
+{
+ "_id": {
+ "$oid": "6550ad3959383e8d7555bb35"
+ },
+ "price": 4500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس تو",
+ "description": "گوشت طعم دار شده،مرغ طعم دار شده،قارچ،زیتون،پنیر پیتزا",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2023-11-12T10:47:21.705Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:13:17.109Z"
+ },
+ "__v": 0,
+ "image": "food_1733221726935.png"
+},
+{
+ "_id": {
+ "$oid": "6557df2f59383e8d755646e9"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر گوسفندی ",
+ "description": "جگر",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700257580271.png",
+ "created_at": {
+ "$date": "2023-11-17T21:46:23.453Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:06:10.647Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558629959383e8d75564845"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل گوسفندی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700291221757.png",
+ "created_at": {
+ "$date": "2023-11-18T07:07:05.208Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:06:45.725Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "655863b159383e8d75564861"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قلوه گوسفندی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T07:11:45.299Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T07:11:45.299Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558afa759383e8d75564b71"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چنجه دنبه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700310947996.png",
+ "created_at": {
+ "$date": "2023-11-18T12:35:51.560Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T12:35:51.560Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558afe459383e8d75564b7b"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چنجه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:36:52.241Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T12:36:52.241Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b03a59383e8d75564b85"
+ },
+ "price": 1220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل شکاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700311095564.png",
+ "created_at": {
+ "$date": "2023-11-18T12:38:18.633Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:08:05.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b06e59383e8d75564b93"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قلوه شکاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:39:10.439Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:09:06.489Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b0c559383e8d75564b9d"
+ },
+ "price": 4950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی جگر دو نفره ",
+ "description": "۱۰سیخ جیگر - ۲ سیخ دل - ۲ سیخ قلوه و ۱ سیخ قارچ ۱سیخ دنبه",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:40:37.729Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:54:14.756Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b14659383e8d75564ba7"
+ },
+ "price": 9200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی چهار نفره ",
+ "description": "14سیخ جیگر -۴ سیخ قلوه - ۴سیخ دل-۲ سیخ دنبه - ۲ سیخ قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:42:46.850Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:58:57.036Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b19e59383e8d75564bbb"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700311451584.png",
+ "created_at": {
+ "$date": "2023-11-18T12:44:14.717Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:21:30.269Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b36059383e8d75564bcd"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:51:44.505Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:22:28.997Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b38c59383e8d75564bd7"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قلوه گوساله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:52:28.753Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T12:52:28.753Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b45859383e8d75564be1"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر دنبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:55:52.546Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T12:55:52.546Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b47f59383e8d75564beb"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر پیچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:56:31.135Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:24:20.914Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b4da59383e8d75564bf8"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل دنبه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T12:58:02.353Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T12:58:02.353Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b54659383e8d75564c08"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماهی کباب",
+ "description": "قزل ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700312385716.png",
+ "created_at": {
+ "$date": "2023-11-18T12:59:50.076Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:25:10.919Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b67659383e8d75564c14"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب کوبیده ممتاز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:04:54.488Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:04:54.488Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b69359383e8d75564c1e"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دنبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c63859383e8d7556459b"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:05:23.283Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:05:23.283Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b76a59383e8d75564c37"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه زعفرانی مخصوص",
+ "description": "250 گرمی ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700312935278.png",
+ "created_at": {
+ "$date": "2023-11-18T13:08:58.223Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:08:58.223Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b80f59383e8d75564c48"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه مکزیکی",
+ "description": "250 گرمی",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700313100271.png",
+ "created_at": {
+ "$date": "2023-11-18T13:11:43.100Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:11:43.100Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b8b159383e8d75564c53"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه ترش مخصوص ",
+ "description": "۲۵۰ گرم ران مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700313261875.png",
+ "created_at": {
+ "$date": "2023-11-18T13:14:25.346Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:28:01.390Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b93b59383e8d75564c61"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کتف و بال زعفرانی ",
+ "description": "330 گرمی ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700313401274.png",
+ "created_at": {
+ "$date": "2023-11-18T13:16:43.797Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:16:43.797Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558b9e559383e8d75564c76"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کتف و بال ترش ",
+ "description": "330 گرمی",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:19:33.010Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:49:52.143Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558ba6359383e8d75564c80"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی کباب دو نفره ",
+ "description": "دوسیخ کوبیده - یک سیخ جوجه ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:21:39.600Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:21:39.600Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558bae359383e8d75564c8c"
+ },
+ "price": 5300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی کباب 4 نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:23:47.387Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:23:47.387Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558bb3259383e8d75564c96"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گوجه کبابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f05a03b80e0a44f2d2f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T13:25:06.710Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:04:57.257Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558bb8e59383e8d75564ca0"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ کبابی ساده ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f05a03b80e0a44f2d2f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700313994866.png",
+ "created_at": {
+ "$date": "2023-11-18T13:26:38.536Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:26:38.536Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558bbd959383e8d75564caa"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ کبابی طعم دار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f05a03b80e0a44f2d2f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700314072117.png",
+ "created_at": {
+ "$date": "2023-11-18T13:27:53.848Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T13:27:53.848Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d39159383e8d75564eb7"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیوان دوغ محلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700320142532.png",
+ "created_at": {
+ "$date": "2023-11-18T15:09:05.230Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:09:05.230Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d3b759383e8d75564ec4"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا قوطی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:09:43.604Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:09:43.604Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d3d359383e8d75564ece"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا قوطی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:10:11.417Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:10:11.417Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d3e959383e8d75564ed8"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:10:33.988Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:10:33.988Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d43059383e8d75564ee5"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:11:44.041Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:11:44.041Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d46159383e8d75564ef2"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:12:33.624Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:12:33.624Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d50a59383e8d75564f14"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:15:22.039Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:15:22.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d54259383e8d75564f21"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج کوک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:16:18.467Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:16:18.467Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d56759383e8d75564f43"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استراکوک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:16:55.533Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:16:55.533Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d58d59383e8d75564f56"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ردسور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:17:33.025Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:17:33.025Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d5b759383e8d75564f60"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مانگوپانگو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:18:15.016Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:18:15.016Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d62159383e8d75564f7d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700320798249.png",
+ "created_at": {
+ "$date": "2023-11-18T15:20:01.635Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:20:01.635Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d65e59383e8d75564f87"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c67959383e8d755645b6"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700320859207.png",
+ "created_at": {
+ "$date": "2023-11-18T15:21:02.286Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:21:02.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d70559383e8d75564f98"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چایی تک نفره و باقلوا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700321026241.png",
+ "created_at": {
+ "$date": "2023-11-18T15:23:49.260Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:23:49.260Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d74259383e8d75564fab"
+ },
+ "price": 980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سرویس چایی و باقلوا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "image": "food_1700321087269.png",
+ "created_at": {
+ "$date": "2023-11-18T15:24:50.832Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:24:50.832Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d77f59383e8d75564fc4"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چایی ماچا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:25:51.241Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:25:51.241Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d7a459383e8d75564fd1"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چایی ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:26:28.894Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:26:28.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d7d759383e8d75564fde"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جانگل فروت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:27:19.574Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:27:19.574Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d7f859383e8d75564fe8"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چایی آویشن ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:27:52.468Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:27:52.468Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d83059383e8d75564ff2"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رستیرتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:28:48.508Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:28:48.508Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d84d59383e8d75564ffc"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:29:17.761Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:29:17.761Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d86759383e8d75565006"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لانگو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:29:43.290Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:29:43.290Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d88759383e8d75565010"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:30:15.585Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:30:15.585Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d8a959383e8d7556501a"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:30:49.522Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:30:49.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d8de59383e8d75565036"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:31:42.562Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:31:42.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d8fb59383e8d75565040"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:32:11.893Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:32:11.893Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d91e59383e8d7556504a"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:32:46.620Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:32:46.620Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d93e59383e8d7556505a"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مینت چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:33:18.938Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:33:18.938Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d95e59383e8d75565064"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:33:50.317Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:33:50.317Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6558d99b59383e8d7556506e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ",
+ "description": "فرانسه نسل ۳",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c6a959383e8d755645c3"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-11-18T15:34:51.916Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T15:37:53.861Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "655b793159383e8d75567a50"
+ },
+ "price": 1670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "130 گرم گوشت خالص ، کاهو ، گوجه ، خیارشور",
+ "short_description": "",
+ "category": {
+ "$oid": "6450ac7a98ff3c741441425a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "created_at": {
+ "$date": "2023-11-20T15:20:17.340Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-20T15:20:17.340Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6569980b8c7e0ed750eab0f5"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر دنبه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-12-01T08:23:39.629Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:23:39.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656998c68c7e0ed750eab12c"
+ },
+ "price": 3150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاسه کباب",
+ "description": "کوبیده یک سیخ - جوجه یک سیخ - چنجه یک سیخ",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-12-01T08:26:46.770Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:26:46.770Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65699e6f8c7e0ed750eab231"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کتف و بال مکزیکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62318f3ca03b80e0a44f2d4a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-12-01T08:50:55.096Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T08:50:55.096Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6569a0cd8c7e0ed750eab318"
+ },
+ "price": 2690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینی جگر تک نفره",
+ "description": "5سیخ جگر -۲سیخ دل - ۱سیخ قلوه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6557c64c59383e8d755645a7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "created_at": {
+ "$date": "2023-12-01T09:01:01.081Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-01T09:01:01.081Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656b56028c7e0ed750eadc1b"
+ },
+ "price": 1170000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول اسفناج و پنیر",
+ "description": "اسفناج پخته شده و پنیر و نان ",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1701533184098.png",
+ "created_at": {
+ "$date": "2023-12-02T16:06:26.020Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:12:46.293Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656b568f8c7e0ed750eadc2b"
+ },
+ "price": 1190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول بادمجان و گوجه ",
+ "description": "بادمجان و گوجه بخار پز شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1701533325745.png",
+ "created_at": {
+ "$date": "2023-12-02T16:08:47.628Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:12:32.706Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656b59b78c7e0ed750eadd56"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده پپرونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1701534131794.png",
+ "created_at": {
+ "$date": "2023-12-02T16:22:15.915Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:22:15.915Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656b5a1f8c7e0ed750eadd78"
+ },
+ "price": 1280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده سبزیجات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1701534236314.png",
+ "created_at": {
+ "$date": "2023-12-02T16:23:59.811Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:23:59.811Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "656b5ab98c7e0ed750eaddc9"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده اسفناج و تخم مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6398a0a482d7fc8d726a7f22"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "image": "food_1701534392361.png",
+ "created_at": {
+ "$date": "2023-12-02T16:26:33.737Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:33:47.797Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "657357878c7e0ed750eb7961"
+ },
+ "price": 4530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماشروم برگر",
+ "description": "نان برگر ،برگر 150 گرمی ، پنیر گودا ،سس قارچ،کاهو لوتوس،گوجه فرنگی، ساید سالاد و سیب زمینی(سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2023-12-08T17:51:03.532Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:33:20.291Z"
+ },
+ "__v": 0,
+ "image": "food_1729756411302.png"
+},
+{
+ "_id": {
+ "$oid": "657c55ae8c7e0ed750ec0b5d"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویکتوریا تک نفره Victoria ",
+ "description": "لیمو چای ترش وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-12-15T13:33:34.721Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T09:57:20.427Z"
+ },
+ "__v": 0,
+ "image": "food_1715853437636.png"
+},
+{
+ "_id": {
+ "$oid": "657c57f58c7e0ed750ec0da2"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیزن موهیتو - season mojito",
+ "description": "پرتقال / توت فرنگی / هندوانه / کیوی / نارنگی ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-12-15T13:43:17.137Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:31:07.314Z"
+ },
+ "__v": 0,
+ "image": "food_1715790991573.png"
+},
+{
+ "_id": {
+ "$oid": "657c5a548c7e0ed750ec0f17"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویکتوریا دو نفره Victoria ",
+ "description": "چای ترش لیمو وانیل ",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2023-12-15T13:53:24.954Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-16T09:56:51.406Z"
+ },
+ "__v": 0,
+ "image": "food_1715853408811.png"
+},
+{
+ "_id": {
+ "$oid": "658aa88ac14e0a00575f249f"
+ },
+ "price": 4600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک",
+ "description": "سس سیر.پنیر پیتزا.فیله گوساله طعم دار شده با سیر.ارگانو.شات سس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-12-26T10:18:50.283Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-28T15:53:04.800Z"
+ },
+ "__v": 0,
+ "image": "food_1705685396897.png"
+},
+{
+ "_id": {
+ "$oid": "658ec595c14e0a00575f7a6b"
+ },
+ "price": 6300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک ماهیچه گوسفندی",
+ "description": "ماهیچه بره ارام پخته شده در کره و روغن/سس پیاز فرانسوی/دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2023-12-29T13:11:49.915Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-10T17:19:16.752Z"
+ },
+ "__v": 0,
+ "image": "food_1705681718685.png"
+},
+{
+ "_id": {
+ "$oid": "65aa9ffdcff12d007b2b7ce0"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن پنیری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1705680891927.png",
+ "created_at": {
+ "$date": "2024-01-19T16:14:53.869Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-11T16:52:06.206Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4392b45700b0061064c17"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:03:55.871Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:45:10.025Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4394945700b0061064c21"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دوبل روبوستا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:04:25.920Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:45:31.602Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4396945700b0061064c2b"
+ },
+ "price": 760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:04:57.186Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:50:06.128Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4398745700b0061064c35"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:05:27.888Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:45:51.909Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4399a45700b0061064c3f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:05:46.935Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:47:29.143Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f439b645700b0061064c49"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:06:14.409Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:46:42.497Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43a2845700b0061064c61"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:08:08.287Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:47:44.924Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43a5945700b0061064c7d"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:08:57.052Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:47:10.708Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43a7045700b0061064c8a"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:09:20.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:00:30.804Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43a8f45700b0061064c94"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرکاکائو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:09:51.333Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:00:18.841Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43aa545700b0061064ca7"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:10:13.575Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:00:00.526Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43abe45700b0061064cb1"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرعسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:10:38.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:59:25.257Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43d0545700b0061064cbe"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:20:21.033Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:59:37.296Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43d2845700b0061064cc8"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو 50/50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:20:56.107Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:55:40.167Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f43e5f45700b0061064cf2"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:26:07.650Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:54:24.183Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4436b45700b0061064d68"
+ },
+ "price": 280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:47:39.486Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:52:35.567Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4440745700b0061064d8d"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T12:50:15.899Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:52:17.381Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4473145700b0061064de0"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:03:45.045Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:52:06.102Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4474a45700b0061064ded"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای هل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:04:10.414Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:51:54.268Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4476045700b0061064df7"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:04:32.172Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:51:42.235Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4477745700b0061064e01"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:04:55.484Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:51:25.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4479045700b0061064e0b"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436d045700b0061064b94"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:05:20.113Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:51:10.169Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f447a545700b0061064e15"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر گرم",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:05:41.997Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:50:53.464Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f448a045700b0061064e23"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش مخصوص میلکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:09:52.082Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:49:56.228Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f448b445700b0061064e2d"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:10:12.191Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:49:32.592Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f448cb45700b0061064e37"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:10:35.082Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:49:18.047Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f448de45700b0061064e41"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:10:54.401Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:49:04.050Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f448f445700b0061064e4b"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آویشن و عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:11:16.500Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:48:50.133Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4490545700b0061064e55"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرامش میلکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436e045700b0061064b9d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:11:33.764Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:48:25.904Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4492645700b0061064e5f"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اسنیکرز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:12:06.661Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:48:02.480Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4494b45700b0061064e69"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:12:43.903Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:47:37.532Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f44feb45700b0061064eb0"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:40:59.476Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:47:17.818Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4500045700b0061064eba"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:41:20.128Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:46:59.951Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4501345700b0061064ec4"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:41:39.509Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:46:39.821Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4502945700b0061064ece"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک توت فرنگی نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:42:01.124Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:46:21.892Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4503945700b0061064ed8"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "معجون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:42:17.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:45:52.028Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4504f45700b0061064ee2"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:42:39.689Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:45:35.742Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f450be45700b0061064f07"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:44:30.511Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:45:00.142Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f450df45700b0061064f11"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:45:03.610Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:44:46.929Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4513f45700b0061064f28"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "منگوهاوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:46:39.404Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:44:08.254Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4515b45700b0061064f32"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پانچ بهار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:47:07.013Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:43:47.794Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4517045700b0061064f3c"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت شیراز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:47:28.209Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:43:34.143Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4521b45700b0061064f4c"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:50:19.560Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:43:15.508Z"
+ },
+ "__v": 0,
+ "image": "food_1714229914645.png"
+},
+{
+ "_id": {
+ "$oid": "65f4523b45700b0061064f59"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " برگر الفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:50:51.696Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:43:01.365Z"
+ },
+ "__v": 0,
+ "image": "food_1714229843007.png"
+},
+{
+ "_id": {
+ "$oid": "65f4528145700b0061064f63"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میلکو برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:52:01.934Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:42:23.257Z"
+ },
+ "__v": 0,
+ "image": "food_1714229794246.png"
+},
+{
+ "_id": {
+ "$oid": "65f4532d45700b0061064f88"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:54:53.155Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:27:30.699Z"
+ },
+ "__v": 0,
+ "image": "food_1714229694410.png"
+},
+{
+ "_id": {
+ "$oid": "65f4534f45700b0061064fad"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالوپینو برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:55:27.063Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:27:00.002Z"
+ },
+ "__v": 0,
+ "image": "food_1714229659721.png"
+},
+{
+ "_id": {
+ "$oid": "65f4536d45700b0061064fd5"
+ },
+ "price": 2380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باربیکیو برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:55:57.239Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:26:40.859Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f4538145700b0061064fe2"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:56:17.924Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:26:25.183Z"
+ },
+ "__v": 0,
+ "image": "food_1714229555597.png"
+},
+{
+ "_id": {
+ "$oid": "65f4539745700b0061064fef"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر آلفردو (سس قارچ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:56:39.377Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:26:08.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f453b145700b006106500e"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:57:05.647Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:25:46.016Z"
+ },
+ "__v": 0,
+ "image": "food_1714231997120.png"
+},
+{
+ "_id": {
+ "$oid": "65f453ea45700b006106502b"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ باربیکیو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:58:02.794Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:25:28.125Z"
+ },
+ "__v": 0,
+ "image": "food_1714231799092.png"
+},
+{
+ "_id": {
+ "$oid": "65f4540345700b0061065035"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:58:27.225Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:25:11.140Z"
+ },
+ "__v": 0,
+ "image": "food_1714231644573.png"
+},
+{
+ "_id": {
+ "$oid": "65f4543345700b006106504c"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ مخصوص میلکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:59:15.757Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:24:52.205Z"
+ },
+ "__v": 0,
+ "image": "food_1714231434599.png"
+},
+{
+ "_id": {
+ "$oid": "65f4545445700b006106505f"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ هالوپینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T13:59:48.234Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:24:35.075Z"
+ },
+ "__v": 0,
+ "image": "food_1714231390596.png"
+},
+{
+ "_id": {
+ "$oid": "65f4547545700b0061065069"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکتل ساده ",
+ "description": "خیار شور گوجه کاهو",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:00:21.587Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:24:00.973Z"
+ },
+ "__v": 0,
+ "image": "food_1714232175149.png"
+},
+{
+ "_id": {
+ "$oid": "65f4597e45700b00610650cb"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:21:50.585Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:23:17.318Z"
+ },
+ "__v": 0,
+ "image": "food_1714232152695.png"
+},
+{
+ "_id": {
+ "$oid": "65f4599245700b00610650d5"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:22:10.914Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:23:00.478Z"
+ },
+ "__v": 0,
+ "image": "food_1714232119536.png"
+},
+{
+ "_id": {
+ "$oid": "65f459a745700b00610650df"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بال و کتف سوخاری۷تکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:22:31.924Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:22:00.561Z"
+ },
+ "__v": 0,
+ "image": "food_1714233976658.png"
+},
+{
+ "_id": {
+ "$oid": "65f459be45700b00610650e9"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بال و کتف۹تکه +سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:22:54.343Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:21:42.928Z"
+ },
+ "__v": 0,
+ "image": "food_1714233954479.png"
+},
+{
+ "_id": {
+ "$oid": "65f459d945700b00610650f3"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری ۳ تیکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:23:21.207Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:21:14.939Z"
+ },
+ "__v": 0,
+ "image": "food_1714233374520.png"
+},
+{
+ "_id": {
+ "$oid": "65f459ec45700b00610650fd"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری ۵ تیکه با سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:23:40.427Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:20:53.931Z"
+ },
+ "__v": 0,
+ "image": "food_1714233347221.png"
+},
+{
+ "_id": {
+ "$oid": "65f45a0145700b0061065107"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری ۷ تیکه با سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:24:01.953Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:19:25.894Z"
+ },
+ "__v": 0,
+ "image": "food_1714233322046.png"
+},
+{
+ "_id": {
+ "$oid": "65f45a3045700b006106511b"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ساده (متوسط)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:24:48.989Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:18:40.192Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f45a4845700b0061065125"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ساده (بزرگ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:25:12.753Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:18:11.088Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f45a7b45700b006106512f"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس سیب زمینی با دیپ گودا(متوسط)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:26:03.897Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:17:14.624Z"
+ },
+ "__v": 0,
+ "image": "food_1714233563859.png"
+},
+{
+ "_id": {
+ "$oid": "65f45a8d45700b0061065139"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس سیب زمینی با دیپ گودا (بزرگ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:26:21.326Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:17:33.121Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f45aa245700b0061065143"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با ژامبون دیپ پنیر گودا (بزرگ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:26:42.027Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:15:51.865Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f45aba45700b006106514d"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با ژامبون و دیپ پنیر گودا ( متوسط)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:27:06.981Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:15:23.855Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "65f45afb45700b0061065157"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی آلفردو متوسط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:28:11.325Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:14:26.976Z"
+ },
+ "__v": 0,
+ "image": "food_1714233584644.png"
+},
+{
+ "_id": {
+ "$oid": "65f45b1145700b0061065161"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی آلفردو بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-03-15T14:28:33.224Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:14:07.521Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6601c75945700b00610739be"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس چیلی تای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1711392599728.png",
+ "created_at": {
+ "$date": "2024-03-25T18:50:01.199Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:39:38.097Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "660316bf45700b006107527f"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1711478461824.png",
+ "created_at": {
+ "$date": "2024-03-26T18:41:03.159Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:39:23.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661953c845700b006108c895"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:31:20.140Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:31:20.140Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661953f245700b006108c8a9"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دوبل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:32:02.453Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:32:02.453Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619557145700b006108c904"
+ },
+ "price": 6250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک مرغ.. chicken steak ",
+ "description": "سینه ی مرغ /سیب زمینی تنوری/سبزیجات و صیفی جات بخار پز/سس قارچ..chicken breast/roast potatoes/steamed vegetables/steamed summer crops/ mushroom sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:38:25.982Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:51:47.455Z"
+ },
+ "__v": 0,
+ "image": "food_1715700983206.png"
+},
+{
+ "_id": {
+ "$oid": "661955d045700b006108c914"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو روبوستا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:40:00.530Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:40:00.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619566d45700b006108c924"
+ },
+ "price": 470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:42:37.859Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:42:37.859Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619569845700b006108c92e"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:43:20.566Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:43:20.566Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661956cb45700b006108c93b"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:44:11.246Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:44:11.246Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661957eb45700b006108c951"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:48:59.805Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:48:59.805Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619587c45700b006108c98b"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:51:24.306Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:51:24.306Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619595045700b006108c9ad"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:54:56.713Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:54:56.713Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619599c45700b006108c9c3"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:56:12.852Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:56:12.852Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661959e945700b006108c9da"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:57:29.005Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:57:29.005Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195a2d45700b006108c9ea"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:58:37.461Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:58:37.461Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195a5945700b006108c9f7"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T15:59:21.343Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T15:59:21.343Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195a8d45700b006108ca1f"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر کاکائو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:00:13.878Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:00:13.878Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195afc45700b006108ca4b"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:02:04.711Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:02:04.711Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195c3f45700b006108ca7f"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:07:27.760Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:07:27.760Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195c8545700b006108ca95"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نسکافه کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:08:37.664Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:08:37.664Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195caf45700b006108ca9f"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نسکافه بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:09:19.682Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:09:19.682Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195cef45700b006108cab2"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:10:23.796Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:10:23.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195d1245700b006108cabf"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:10:58.847Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:10:58.847Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195dc345700b006108cad2"
+ },
+ "price": 460000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952b045700b006108c839"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:13:55.478Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:13:55.478Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195dec45700b006108cadc"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952b045700b006108c839"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:14:36.429Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:14:36.429Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195e0d45700b006108cae9"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952b045700b006108c839"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:15:09.633Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:15:09.633Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195e2e45700b006108caf3"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952b045700b006108c839"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:15:42.127Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:15:42.127Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195f3245700b006108cb3f"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاوزبان کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:20:02.730Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:20:02.730Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195f5645700b006108cb5e"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاوزبان بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:20:38.652Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:20:38.652Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195f7645700b006108cb68"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "به لیمو کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:21:10.885Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:21:10.885Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195f9745700b006108cb72"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "به لیمو بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:21:43.398Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:21:43.398Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195fbe45700b006108cb91"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب دارچین کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:22:22.475Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:22:22.475Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66195fde45700b006108cb9e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب دارچین بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:22:54.563Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:22:54.563Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619600b45700b006108cba8"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آویشن عسل کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:23:39.788Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:23:39.788Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619603545700b006108cbbb"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آویشن عسل بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:24:21.392Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:24:21.392Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619626f45700b006108cc52"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخصوص کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:33:51.033Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:33:51.033Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619629245700b006108cc5c"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مخصوص بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619527445700b006108c82d"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:34:26.564Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:34:26.564Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661962c445700b006108cc66"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "منگو هاوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952f345700b006108c845"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:35:16.203Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:35:16.203Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661962e345700b006108cc70"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پانچ بهاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952f345700b006108c845"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:35:47.691Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:35:47.691Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619631445700b006108cc7d"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت شیراز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "661952f345700b006108c845"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:36:36.664Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:36:36.664Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619635e45700b006108cc8a"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ساده کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:37:50.099Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:37:50.099Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619637f45700b006108cc97"
+ },
+ "price": 230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ساده بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:38:23.883Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:38:23.883Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661963aa45700b006108ccad"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:39:06.773Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:39:06.773Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661963cf45700b006108ccc0"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:39:43.702Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:39:43.702Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661963fe45700b006108cce2"
+ },
+ "price": 220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای نعنا کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:40:30.205Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:40:30.205Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619642e45700b006108cd13"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای نعنا بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:41:18.691Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:41:18.691Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619645245700b006108cd2c"
+ },
+ "price": 220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای هل کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:41:54.785Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:41:54.785Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619647e45700b006108cd45"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای هل بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:42:38.634Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:42:38.634Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661964ac45700b006108cd5b"
+ },
+ "price": 220000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دارچین کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:43:24.158Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:43:24.158Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661964e145700b006108cd80"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دارچین بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:44:17.271Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:44:17.271Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619652a45700b006108cd99"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:45:30.542Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:45:30.542Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619654f45700b006108cda9"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:46:07.286Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:46:07.286Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619657645700b006108cdb6"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:46:46.181Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:46:46.181Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661965a545700b006108cdc7"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:47:33.849Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:47:33.849Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661965cf45700b006108cdd4"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر چای کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:48:15.947Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:48:15.947Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661965f745700b006108cdea"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر چای بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619531845700b006108c84e"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:48:55.036Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:48:55.036Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619665f45700b006108ce0d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:50:39.389Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:50:39.389Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619667e45700b006108ce17"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اسنیکرز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:51:10.159Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:51:10.159Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661966a145700b006108ce2a"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:51:45.759Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:51:45.759Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661966c845700b006108ce40"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:52:24.353Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:52:24.353Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619672745700b006108ce6f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا توت فرنگی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:53:59.062Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:53:59.062Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619676b45700b006108ce82"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک معجون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:55:07.123Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:55:07.123Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619678445700b006108ce8c"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کوکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T16:55:32.630Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T16:55:32.630Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619691245700b006108cf31"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6618e55545700b006108be13"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T17:02:10.732Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T17:02:10.732Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6619693545700b006108cf41"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619523245700b006108c824"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-12T17:02:45.077Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-12T17:02:45.077Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661c1d8245700b006108fdc0"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-14T18:16:34.797Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-14T18:16:34.797Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "661c1da045700b006108fdd9"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6619662545700b006108cdf7"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-14T18:17:04.784Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-14T18:17:04.784Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627e1027d6ac20062281e18"
+ },
+ "price": 5200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته جوجه کباب .. chicken kebab & rice/3 skewers ",
+ "description": "٣ سیخ جوجه کباب/زیتون /سالاد شیرازی/ماست/سبزی خوردن/گوجه کبابی..chicken kebab/shirazi salad/yogurt/vegetable/p/tomato",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-23T16:25:38.261Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:15:58.460Z"
+ },
+ "__v": 0,
+ "image": "food_1714079813660.png"
+},
+{
+ "_id": {
+ "$oid": "6627e1a47d6ac20062281e4e"
+ },
+ "price": 8800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته استیک .. fillet steak & rice ",
+ "description": "فیله استیک،برنج کته ایرانی٫،سیب زمینی تنوری ..steak fillet/iranian rice/meat sauce/roast potatoes ",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-23T16:28:20.962Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:15:27.591Z"
+ },
+ "__v": 0,
+ "image": "food_1713941274547.png"
+},
+{
+ "_id": {
+ "$oid": "6627e1d47d6ac20062281e6d"
+ },
+ "price": 7700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته کباب چنجه .. chenjeh kabab & rice ",
+ "description": "٢ سیخ فیله/سالاد شیرازی/ماست/سبزی خوردن..Iranian rice/2skewers fillet/shirazi salad/yogurt/vegetable",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-23T16:29:08.600Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:14:59.671Z"
+ },
+ "__v": 0,
+ "image": "food_1715696779861.png"
+},
+{
+ "_id": {
+ "$oid": "6627e4227d6ac20062281f21"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنیر سوخاری .. cheese fries ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac607926d2e0e4fbd9b465"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-23T16:38:58.754Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:56:11.387Z"
+ },
+ "__v": 0,
+ "image": "food_1715934346706.png"
+},
+{
+ "_id": {
+ "$oid": "6627f2847d6ac2006228228c"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پپرونی تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:40:20.601Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:40:20.601Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f2b27d6ac20062282296"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پپرونی دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:41:06.530Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:41:06.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f2d17d6ac200622822a0"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا بیکن تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:41:37.171Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T19:05:38.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f2f57d6ac200622822ad"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا بیکن دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:42:13.242Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:42:13.242Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f31f7d6ac200622822b7"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا چیکن تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:42:55.326Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T19:06:36.065Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f34b7d6ac200622822ca"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا چیکن دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:43:39.592Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:43:39.592Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f37b7d6ac200622822d7"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا رست بیف تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:44:27.290Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:44:27.290Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f39c7d6ac200622822e1"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا رست بیف دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:45:00.986Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:45:00.986Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f4557d6ac20062282300"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پنیر گردو تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:48:05.947Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:48:05.947Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f4797d6ac20062282322"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پنیر گردو دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:48:41.229Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:48:41.229Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f4b37d6ac20062282344"
+ },
+ "price": 1280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0d37d6ac20062282203"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:49:39.505Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:49:39.505Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f56e7d6ac2006228239c"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:52:46.679Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:52:46.679Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f5b07d6ac200622823b2"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک ذغالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:53:52.606Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:53:52.606Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f5e77d6ac200622823f8"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:54:47.250Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:54:47.250Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f6167d6ac20062282408"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر ذغالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:55:34.240Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:55:34.240Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f63e7d6ac20062282427"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالوپینو برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:56:14.391Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:56:14.391Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f66a7d6ac2006228244f"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالوپینو برگر ذغالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T17:56:58.198Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T17:56:58.198Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f7457d6ac20062282460"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T18:00:37.850Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T18:00:37.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f7747d6ac2006228246f"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T18:01:24.571Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T18:01:24.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f7987d6ac20062282479"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن برگر ذغالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T18:02:00.034Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T18:02:00.034Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f7c17d6ac2006228248f"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T18:02:41.868Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T18:02:41.868Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6627f7e47d6ac200622824a2"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر آلفردو ذغالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f0f37d6ac20062282218"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-23T18:03:16.521Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-23T18:03:16.521Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6628a85e7d6ac20062282cff"
+ },
+ "price": 5100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته کباب دیگی .. digi kebab & rice ",
+ "description": "گوشت،سیب زمینی تنوری،گوجه سس کباب دیگی،فلفل دلمه ای،برنج ایرانی ..meat/roast potatoes/tomato/digi kebab sauce/sweet pepper/iranian rice",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "image": "food_1714732721495.png",
+ "created_at": {
+ "$date": "2024-04-24T06:36:14.946Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:14:35.457Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6629602a7d6ac20062284377"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ca7d6ac2006228224e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-24T19:40:26.957Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-24T19:40:26.957Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662960c97d6ac2006228438b"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ باربیکیو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ca7d6ac2006228224e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-24T19:43:05.081Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-24T19:43:05.081Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662960fb7d6ac2006228439e"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ مجاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ca7d6ac2006228224e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-24T19:43:55.502Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-24T19:43:55.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6629611e7d6ac200622843a8"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ هالوپینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ca7d6ac2006228224e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-24T19:44:30.173Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-24T19:44:30.173Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662962737d6ac200622843eb"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ آلمانی قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-24T19:50:11.096Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:50:52.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a1cf17d6ac20062284b3e"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته .. rice ",
+ "description": "برنج ایرانی ..Iranian rice",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-25T09:05:53.164Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:13:39.340Z"
+ },
+ "__v": 0,
+ "image": "food_1714293401098.png"
+},
+{
+ "_id": {
+ "$oid": "662a8bd97d6ac20062285d5d"
+ },
+ "price": 13500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقالی پلو با گردن دو نفره",
+ "description": "دو عدد باقالی پلو. گردن با ون 1 کیلوگرم به همراه دورچین کامل",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-04-25T16:59:05.978Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-25T16:40:46.054Z"
+ },
+ "__v": 0,
+ "image": "food_1714733620233.png"
+},
+{
+ "_id": {
+ "$oid": "662a96fb7d6ac2006228614c"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ کوکتل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:46:35.828Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:46:35.828Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a97257d6ac20062286162"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ کوکتل قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:47:17.406Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:47:17.406Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a97477d6ac20062286178"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ آلمانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:47:51.497Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:47:51.497Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a97a27d6ac2006228618b"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:49:22.026Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:49:22.026Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a97c87d6ac2006228619b"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تک لقمه مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f1ee7d6ac20062282257"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:50:00.480Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:50:00.480Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a982b7d6ac200622861e4"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بال و کتف ۷ تکه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2047d6ac20062282260"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:51:39.455Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:51:39.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a98597d6ac200622861fa"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بال و کتف ۹ تکه و سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2047d6ac20062282260"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:52:25.014Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:52:25.014Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a988a7d6ac20062286222"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری ۵ تکه و سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2047d6ac20062282260"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:53:14.550Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:53:14.550Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a98d07d6ac20062286250"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله سوخاری ۷ تکه و سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2047d6ac20062282260"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T17:54:24.146Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T17:54:24.146Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9ae77d6ac2006228638f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ساده متوسط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:03:19.235Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:03:19.235Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9b1c7d6ac200622863cc"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ساده بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:04:12.572Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:04:12.572Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9b437d6ac20062286403"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی و سوسیس متوسط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:04:51.605Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:04:51.605Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9b697d6ac20062286425"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی و سوسیس بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:05:29.611Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:05:29.611Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9b9a7d6ac20062286435"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی و ژامبون متوسط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:06:18.080Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:06:18.080Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9bc27d6ac20062286442"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی و ژامبون بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:06:58.796Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:06:58.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9c007d6ac20062286460"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز متوسط",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:08:00.098Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:10:00.781Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9c477d6ac20062286491"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6627f2207d6ac20062282275"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:09:11.742Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:09:11.742Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9d3c7d6ac20062286501"
+ },
+ "price": 1560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "662a9ce07d6ac200622864dc"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:13:16.176Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:13:16.176Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662a9d637d6ac20062286523"
+ },
+ "price": 1830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "662a9ce07d6ac200622864dc"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:13:55.941Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-26T17:51:37.461Z"
+ },
+ "__v": 0,
+ "image": "food_1724694688777.png"
+},
+{
+ "_id": {
+ "$oid": "662a9d927d6ac2006228653f"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه سبزیجات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "662a9ce07d6ac200622864dc"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "created_at": {
+ "$date": "2024-04-25T18:14:42.404Z"
+ },
+ "updated_at": {
+ "$date": "2024-04-25T18:14:42.404Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662bfac07d6ac20062288539"
+ },
+ "price": 10300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ریبای استیک . ribeye steak & mushroom sauce ",
+ "description": "500 گرم گوشت گوساله ،سبزیجات بخار پز،سس قارچ..500g veal meat/steamed vegetables/ mushroom sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-26T19:04:32.445Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:51:17.180Z"
+ },
+ "__v": 0,
+ "image": "food_1714242244841.png"
+},
+{
+ "_id": {
+ "$oid": "662cdbed7d6ac20062288dff"
+ },
+ "price": 4450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه کباب. Chicken kebab/3 skewers ",
+ "description": "٣ سیخ جوجه/گوجه گیلاسی/سبزی خوردن/سالاد شیرازی/ماست..chicken/tomato/vegetable/shirazi salad/yogurt",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-27T11:05:17.223Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:13:05.438Z"
+ },
+ "__v": 0,
+ "image": "food_1715696138450.png"
+},
+{
+ "_id": {
+ "$oid": "662d15b97d6ac2006228925d"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رویال برگر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "image": "food_1714230711903.png",
+ "created_at": {
+ "$date": "2024-04-27T15:11:53.131Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:13:43.948Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662d1bc47d6ac20062289393"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکتل قارچ وپنیر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-04-27T15:37:40.819Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:13:21.574Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662d21f27d6ac20062289619"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "image": "food_1714233840875.png",
+ "created_at": {
+ "$date": "2024-04-27T16:04:02.593Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:13:01.190Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "662e816c7d6ac2006228b797"
+ },
+ "price": 5580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب پروتئین(رژیمی).. dietetic foods",
+ "description": "گوشت گوساله،فیله مرغ،بی بی اسفناج،سبزیجات روز،سیب زمینی تنوری،تخم مرغ آب پز،قارچ،سس مخصوص ژیوان..veal/chicken fillet/baby spinach/vegetable/roast potatoes/boiled egg/mushrom/ special Zhivan sauce ",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-28T17:03:40.227Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:49:59.648Z"
+ },
+ "__v": 0,
+ "image": "food_1715701220774.png"
+},
+{
+ "_id": {
+ "$oid": "66312e427d6ac2006228ef60"
+ },
+ "price": 10500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کته استیک ریبای . Ribeye steak & rice",
+ "description": "۵٠٠ گرم گوشت گوساله، برنج ایرانی، سالاد شیرازی، ماست..500g veal meat/iranian rice/shirazi salad/yogurt",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-04-30T17:45:38.868Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:12:38.241Z"
+ },
+ "__v": 0,
+ "image": "food_1715697744094.png"
+},
+{
+ "_id": {
+ "$oid": "66365ef17d6ac20062295ecd"
+ },
+ "price": 560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو روبوستا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-04T16:14:41.238Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:49:47.682Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663660217d6ac20062295f4c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل روبوستا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-04T16:19:45.349Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:44:50.707Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663661f37d6ac20062296014"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو سینگل 50/50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-04T16:27:31.552Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:44:35.063Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663662167d6ac2006229601e"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دوبل 50/50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 24,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-04T16:28:06.985Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:44:15.467Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663a587b7d6ac20062299f08"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیما...Sima",
+ "description": "بهارنارنج،تخم شربتی،citrus aurantium/chia/",
+ "short_description": "",
+ "category": {
+ "$oid": "663a58217d6ac20062299ee4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-05-07T16:36:11.899Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T11:00:13.449Z"
+ },
+ "__v": 0,
+ "image": "food_1715700359170.png"
+},
+{
+ "_id": {
+ "$oid": "663a58b17d6ac20062299f1e"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هما .. Homa",
+ "description": "خیار،سکنجبین،لیمو..cucumber/ skanjbin/lemon",
+ "short_description": "",
+ "category": {
+ "$oid": "663a58217d6ac20062299ee4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-05-07T16:37:05.196Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:59:40.267Z"
+ },
+ "__v": 0,
+ "image": "food_1715700302453.png"
+},
+{
+ "_id": {
+ "$oid": "663a5ccc7d6ac2006229a03d"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جانا .. Jana",
+ "description": "زعفران،گل محمدی،تخم شربتی..saffron/damask rose/chia",
+ "short_description": "",
+ "category": {
+ "$oid": "663a58217d6ac20062299ee4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-05-07T16:54:36.816Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:59:24.174Z"
+ },
+ "__v": 0,
+ "image": "food_1715700257579.png"
+},
+{
+ "_id": {
+ "$oid": "663f95297d6ac200622a0bb6"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار گریل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T15:56:25.708Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T15:56:25.708Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f95a47d6ac200622a0bc9"
+ },
+ "price": 2650000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار دو رول",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T15:58:28.179Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T17:28:59.663Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f95e47d6ac200622a0bd5"
+ },
+ "price": 2200000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "فروت سالاد",
+ "description": "اهو سیب سبز کیوی توت فرنگی سس زرشک و تمشک",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T15:59:32.513Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:06:26.871Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f96097d6ac200622a0be2"
+ },
+ "price": 1100000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:00:09.520Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:00:58.163Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f967b7d6ac200622a0c01"
+ },
+ "price": 2400000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد بیستکا",
+ "description": "کاهو فیله گوساله جوانه گندم سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:02:03.607Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:05:02.112Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f96ab7d6ac200622a0c0d"
+ },
+ "price": 700000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f829e7d6ac200622a0925"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:02:51.433Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:02:51.433Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f982a7d6ac200622a0ca3"
+ },
+ "price": 2650000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاین",
+ "description": "ژامبون گوشت ٫ فیله مرغ ٫ قارچ ٫ پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:09:14.453Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-26T11:08:09.532Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9b347d6ac200622a0d5b"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سه تیکه استریپس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:22:12.629Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:22:12.629Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9b707d6ac200622a0d81"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنج تیکه استریپس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:23:12.957Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:23:12.957Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9b9d7d6ac200622a0d8b"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل دان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:23:57.145Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:23:57.145Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9bdf7d6ac200622a0d95"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:25:03.938Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:25:03.938Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9c0a7d6ac200622a0d9f"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سوخاری",
+ "description": "2فیله مرغ 5قارچ سوخاری 2پیازحلقه سیب سوخاری",
+ "short_description": "",
+ "category": {
+ "$oid": "663f79ac7d6ac200622a0814"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:25:46.828Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-20T17:55:25.207Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9c437d6ac200622a0db2"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:26:43.215Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:26:43.215Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9c757d6ac200622a0dc2"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پستو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:27:33.926Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:27:33.926Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9c9d7d6ac200622a0dcf"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لازانیا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:28:13.914Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:28:13.914Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9cce7d6ac200622a0ddc"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز پاستا",
+ "description": "پنه سس مارتیارا سس قارچ پستو سس ریحان و مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f80159383e8d7553efcf"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:29:02.971Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:10:58.965Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9d007d6ac200622a0de6"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f7b2c7d6ac200622a0843"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:29:52.087Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:29:52.087Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9d277d6ac200622a0df9"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیده مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f7b2c7d6ac200622a0843"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:30:31.305Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:30:31.305Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9d497d6ac200622a0e06"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وجترین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f7b2c7d6ac200622a0843"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:31:05.154Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:31:05.154Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9d817d6ac200622a0e19"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف استروگانف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f7a717d6ac200622a0833"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:32:01.035Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:32:01.035Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9da87d6ac200622a0e2f"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f7a717d6ac200622a0833"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:32:40.725Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:32:40.725Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9e197d6ac200622a0e42"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:34:33.107Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:34:33.107Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9e3e7d6ac200622a0e52"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس قارچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:35:10.253Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:35:10.253Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9e647d6ac200622a0e62"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس دیپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:35:48.289Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:35:48.289Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9e8c7d6ac200622a0e75"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس پستو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:36:28.045Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:36:28.045Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9eae7d6ac200622a0e7f"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان مک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64e848ce59383e8d754e920b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:37:02.987Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:37:02.987Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9eed7d6ac200622a0e9e"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رولر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:38:05.537Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:38:05.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9f157d6ac200622a0eba"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:38:45.725Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:38:45.725Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9f447d6ac200622a0ed3"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاین برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:39:32.740Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:39:32.740Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9f767d6ac200622a0f08"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:40:22.074Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:40:22.074Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9fc07d6ac200622a0f21"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ فیله مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:41:36.878Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:41:36.878Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663f9ff77d6ac200622a0f3d"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ رست بیف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5f059383e8d7553eed0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:42:31.452Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:42:31.452Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa0447d6ac200622a0f61"
+ },
+ "price": 5100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مینیون",
+ "description": "فیله گوساله سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:43:48.829Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:26:34.520Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa0637d6ac200622a0f6e"
+ },
+ "price": 5300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ریبای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:44:19.264Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:44:19.264Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa2697d6ac200622a0fce"
+ },
+ "price": 5400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیلتو آل اجتو بالزامیک",
+ "description": "فیله گوساله سس بالزامیک",
+ "short_description": "",
+ "category": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:52:57.196Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:22:55.400Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa2b27d6ac200622a0fe7"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پتو دی پلو آل ملگارانوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:54:10.826Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:54:10.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa3057d6ac200622a0ffd"
+ },
+ "price": 5100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیلتو گریلیا کونفوگیس",
+ "description": "فیله گوساله سس قارچ ",
+ "short_description": "",
+ "category": {
+ "$oid": "663f80f47d6ac200622a08ea"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:55:33.186Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:21:54.874Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa3477d6ac200622a1007"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیرواستیک",
+ "description": "راسته گوساله سیر فلفل دلمه ای و پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:56:39.030Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T15:17:34.839Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa3b87d6ac200622a1022"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپرونی",
+ "description": "پپرونی و پنیر فلفل دلمه",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:58:32.358Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T15:14:09.685Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa3e07d6ac200622a102c"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوآترو پارتی",
+ "description": "پپرونی مرغ طمع دار شده هات داگ و سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:59:12.839Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T15:13:35.130Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa4087d6ac200622a1036"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن",
+ "description": "پنیر بیکن فلفل دلمه و قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T16:59:52.279Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T15:11:27.837Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa45a7d6ac200622a104a"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست بیف",
+ "description": "گوشت گوساله قارچ فلفل پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:01:14.686Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T14:15:18.907Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa4927d6ac200622a1055"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپر",
+ "description": "ژامبون پپرونی ٫ قارچ ٫ فلفل دلمه ٫ پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:02:10.329Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-26T11:11:56.239Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa4b77d6ac200622a105f"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سبزیجات",
+ "description": "قارچ فلفل گوجه پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:02:47.697Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:55:20.065Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa4de7d6ac200622a106c"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مونترال(مخلوط)",
+ "description": "ژامبون گوشت ٫ هات داگ ۹۰٪ ٫ قارچ ٫ پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:03:26.683Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:54:58.132Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa4fc7d6ac200622a1088"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالامی",
+ "description": "ژامبون سالامی قارچ فلفل پنیرمخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:03:56.959Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T13:47:25.226Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa5297d6ac200622a1092"
+ },
+ "price": 2570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویکتوریا",
+ "description": "ژامبون گوشت ، ژامبون مرغ ٫ پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:04:41.289Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-26T11:12:43.666Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa5467d6ac200622a10a2"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مکزیکی",
+ "description": "گوشت تند٫کاهو ٫چیپس٫پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:05:10.942Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-26T11:04:21.099Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fa5687d6ac200622a10b2"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کالزونه",
+ "description": "ژامبون گوشت مرغ طمع دار شده قارچ پنیر گودا و دولایه خمیر ",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:05:44.974Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:54:16.464Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fabf07d6ac200622a12a1"
+ },
+ "price": 8400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک چنجه.. chenjeh kebab/3 skewers",
+ "description": "۳سیخ کباب چنجه،سالاد شیرازی ،ماست،سبزی خوردن، سبزیجات بخار پز..chenjeh kebab/shirazi salad/yogurt/vegetable/steamed vegetables ",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:33:36.729Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:11:57.734Z"
+ },
+ "__v": 0,
+ "image": "food_1715697924107.png"
+},
+{
+ "_id": {
+ "$oid": "663fac267d6ac200622a12b0"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول پنیری",
+ "description": "3 عدد رول(خمیر مخصوص و ژامبون و پنیر چدار)",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:34:30.404Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:53:22.043Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fac527d6ac200622a12bd"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استیس",
+ "description": "دو سیخ جوجه سوخاری",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:35:14.493Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:52:19.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fac8c7d6ac200622a12df"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:36:12.605Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T17:36:12.605Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663facea7d6ac200622a1330"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب تنوری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:37:47.018Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T17:37:47.018Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fad757d6ac200622a138b"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی مخصوص",
+ "description": "سیب سرخ کرده و پنیر پیتزا زیتون و فلفل دلمه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:40:05.723Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-12T13:40:54.557Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fad9e7d6ac200622a13a4"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:40:46.348Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T17:40:46.348Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fb0657d6ac200622a14c7"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا ایتالیایی وجترین",
+ "description": "کدو و بادمجان قارچ و فلفل دلمه ای و زیتون گوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:52:37.679Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:49:01.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fb0897d6ac200622a14ec"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پاین ایتالیایی",
+ "description": "فیله گوساله و بیکن گوشت قارچ بلانچ و فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:53:13.187Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-20T17:56:02.028Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "663fb1197d6ac200622a1535"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا آمریکایی چیکن",
+ "description": "مواد تشکیل دهنده: مرغ طمع دار شده و قارچ فلفل دلمه ای و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "663f97b97d6ac200622a0c62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-11T17:55:37.275Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-29T14:48:18.024Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "664626e17d6ac200622a9184"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه آلفردو ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-16T15:31:45.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:11:15.277Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "664627247d6ac200622a919d"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-16T15:32:52.173Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:10:59.169Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "664b882e7d6ac200622b15ab"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-05-20T17:28:14.839Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:10:41.315Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586e357d6ac200622c1a95"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:16:53.541Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:16:53.541Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586e6d7d6ac200622c1a9f"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:17:49.530Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:17:49.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586e887d6ac200622c1aa9"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول نیویورکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:18:16.437Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:18:16.437Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586ea57d6ac200622c1ab6"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خمیر شو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:18:45.461Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:18:45.461Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586ee27d6ac200622c1ac3"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سن سباستین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:19:46.454Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:19:46.454Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586f047d6ac200622c1acd"
+ },
+ "price": 920000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دسر نوتلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:20:20.612Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:20:20.612Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586f1a7d6ac200622c1ad7"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اکلر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:20:42.620Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:20:42.620Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66586f397d6ac200622c1ae1"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاریس برس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64f44b7059383e8d754f73dd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-05-30T12:21:13.039Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-30T12:21:13.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6663126b7d6ac200622cfca9"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو کباب ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:00:11.783Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:00:11.783Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666312a97d6ac200622cfcb5"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو جوجه ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:01:13.324Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:01:13.324Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666312c17d6ac200622cfcbf"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو برگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:01:37.841Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:01:37.841Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666314c27d6ac200622cfd78"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زرشک پلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:10:10.510Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:32:04.162Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666315b87d6ac200622cfda9"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:14:16.928Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:14:16.928Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666315d87d6ac200622cfdc3"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:14:48.188Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:19:18.881Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666316107d6ac200622cfdcd"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:15:45.002Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:15:45.002Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666316277d6ac200622cfdd7"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک برگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:16:07.057Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:29:45.257Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666316687d6ac200622cfde7"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک بختیاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:17:12.074Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:17:12.074Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6663168e7d6ac200622cfdf1"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک گردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:17:50.680Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:17:50.680Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666316b37d6ac200622cfdfe"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب نگینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:18:27.414Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:28:51.473Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666316d97d6ac200622cfe08"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب تبریزی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:19:05.425Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T17:11:51.189Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666317157d6ac200622cfe1f"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب مصری ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:20:05.955Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:20:05.955Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6663173a7d6ac200622cfe29"
+ },
+ "price": 4300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک سلطانی",
+ "description": "یک سیخ کوبیده و یک سیخ برگ",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:20:42.160Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:30:50.096Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666317557d6ac200622cfe33"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:21:09.431Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:21:33.080Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666319a57d6ac200622cfeaa"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:31:01.611Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:31:01.611Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666319d27d6ac200622cfebd"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:31:46.521Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:31:46.521Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666319e87d6ac200622cfec7"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قلوه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:32:08.561Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:32:08.561Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a077d6ac200622cfed7"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دنبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:32:39.164Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:32:39.164Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a2a7d6ac200622cfee7"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کتف و بال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:33:14.048Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:33:14.048Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a437d6ac200622cfef7"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاسه کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:33:39.410Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:47:32.945Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a637d6ac200622cff10"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چنجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:34:11.781Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:46:11.771Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a867d6ac200622cff23"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ کبابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:34:46.837Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:34:46.837Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66631a997d6ac200622cff69"
+ },
+ "price": 50000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6663198a7d6ac200622cfe9a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-07T14:35:05.594Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-07T14:35:05.594Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "666c79257d6ac200622dc0db"
+ },
+ "price": 5800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا هیرو / hero pizza",
+ "description": "فیله گوساله /قارچ/سبزیجات خارجی /گوجه اسلایس /فلفل دلمه ای /ریحان ایتالیایی/سس مخصوص کره بادام زمینی ژیوان ",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-06-14T17:08:53.582Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:22:08.728Z"
+ },
+ "__v": 0,
+ "image": "food_1718492975613.png"
+},
+{
+ "_id": {
+ "$oid": "667185007d6ac200622e22de"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آل پولو ایتالیایی",
+ "description": "مرغ قارچ فلفل دلمه",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-18T13:00:48.485Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T13:00:48.485Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667185497d6ac200622e22e8"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آل فونگی ایتالیایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-18T13:02:01.054Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T13:03:00.453Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667185f27d6ac200622e2308"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوآتروماژی ایتالیایی",
+ "description": "4 مدل پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f5e159383e8d7553eec7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-18T13:04:50.703Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T13:04:50.703Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667186247d6ac200622e2314"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ریسو تندو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-18T13:05:40.110Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T13:05:40.110Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6671864a7d6ac200622e2321"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج سوخاری",
+ "description": "10 عدد برنج سوخاری",
+ "short_description": "",
+ "category": {
+ "$oid": "6537f60059383e8d7553eedc"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-06-18T13:06:18.345Z"
+ },
+ "updated_at": {
+ "$date": "2024-06-18T13:06:18.345Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667865f77d6ac200622ec0aa"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "667865cc7d6ac200622ec08b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-06-23T18:14:15.212Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:10:00.714Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6678665d7d6ac200622ec0c3"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکتیل بلک بری ",
+ "description": "میوه های قرمز ذغال اخته",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-06-23T18:15:57.397Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:09:24.822Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6678669c7d6ac200622ec0e5"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بِری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-06-23T18:17:00.485Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:09:04.206Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667866bc7d6ac200622ec0fe"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2024-06-23T18:17:32.344Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:01:30.242Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667fed8f7d6ac200622f7044"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سایفون ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-06-29T11:18:39.873Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:30:27.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "667fedd97d6ac200622f7051"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایروپرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62813302d65610bd301c5e57"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-06-29T11:19:53.858Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:29:51.252Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6682dc297d6ac200622fa654"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-01T16:41:13.463Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:29:26.122Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6682dc957d6ac200622fa684"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینامون لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "627fecc5ec44ae525a153875"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-01T16:43:01.470Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:25:21.309Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683da7f7d6ac200622fba6f"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:46:23.044Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:17:15.878Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dad87d6ac200622fba85"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:47:52.939Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:20:27.340Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683db077d6ac200622fba91"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس فندوق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:48:39.823Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:14:50.148Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683db507d6ac200622fbaa2"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:49:52.423Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-02T10:49:52.423Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dbc17d6ac200622fbaf1"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکون لاته ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628115c8d65610bd301c5837"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:51:45.155Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-02T10:51:45.155Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dd4c7d6ac200622fbb99"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:58:20.847Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:12:52.317Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dd7b7d6ac200622fbbaa"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش استوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:59:07.456Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:12:37.012Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dda87d6ac200622fbbb5"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "به لیمو زنجبیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T10:59:52.916Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:11:22.715Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683de0d7d6ac200622fbbcd"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آریا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T11:01:33.997Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:11:04.634Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683de4e7d6ac200622fbbd7"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بنانا چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T11:02:38.114Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:10:44.749Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683df7a7d6ac200622fbbf0"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بری نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T11:07:38.484Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:10:21.916Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6683dfc97d6ac200622fbbff"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیت کت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "628119add65610bd301c5919"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-07-02T11:08:57.788Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:09:58.889Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6697ac68136cc1007046e33a"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وزیری",
+ "description": "یک سیخ کوبیده و یک سیخ جوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-07-17T11:35:04.458Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:35:04.458Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6697ac91136cc1007046e34f"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوبیده (تک سیخ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-07-17T11:35:45.986Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:35:45.986Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6697acea136cc1007046e35c"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج زعفرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "666312297d6ac200622cfc9c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "created_at": {
+ "$date": "2024-07-17T11:37:14.610Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-17T11:37:14.610Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00920136cc1007047cf3c"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک وزیری",
+ "description": "یک سیخ کوبیده و یک سیخ جوجه",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:48:48.481Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:39:54.345Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a009c5136cc1007047cf64"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک بختیاری",
+ "description": "مخلوط جوجه و برگ",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:51:33.894Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:31:39.943Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00a0b136cc1007047cf6e"
+ },
+ "price": 4100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک برگ",
+ "description": "180 گرم گوشت گوساله مو دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:52:43.053Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:41:07.470Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00a56136cc1007047cf99"
+ },
+ "price": 4700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک سلطانی",
+ "description": "یک سیخ کوبیده و یک سیخ برگ",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:53:58.129Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:33:26.457Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00a9a136cc1007047cfc7"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "جوجه ترش",
+ "description": "250 گرم فیله مرغ به همراه رب انار و گردو",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:55:06.604Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:30:19.719Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00ac3136cc1007047cfd1"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کوبیده",
+ "description": "2 سیخ کباب کوبیده",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:55:47.338Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:28:54.439Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00b03136cc1007047cfe4"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک نگینی",
+ "description": " دو سیخ کباب کوبیده به همراه تیکه های مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:56:51.051Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:27:44.216Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00b8a136cc1007047d01e"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک مصری",
+ "description": "رول فیله مرغ به همراه رب انار فلفل دلمه ای پیاز و ادویه های ویژه و گردو",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:59:06.436Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:07:29.309Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00bbd136cc1007047d034"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب تبریزی",
+ "description": "دو سیخ کباب کوبیده به همراه سبزیجات و گوشت راسته گوساله",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T19:59:57.192Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:25:49.819Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00c2a136cc1007047d076"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج زعفرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:01:46.117Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:22:00.840Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00d8c136cc1007047d0d0"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن",
+ "description": "مرغ طمع دار شده و قارچ و فلفل دلمه ای و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:07:40.591Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:46:40.802Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00ddf136cc1007047d0dd"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست بیف",
+ "description": "گوشت گوساله و قارچ و پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:09:03.942Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:45:29.597Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00e19136cc1007047d0f3"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپر",
+ "description": "ژامبون پپرونی قارچ و فلفل دلمه ای و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:10:01.462Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:02:54.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a00e82136cc1007047d118"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مونترال(مخلوط)",
+ "description": "ژامبون گوشت و هات داگ 90%و قارچ و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:11:46.022Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:44:17.091Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01005136cc1007047d153"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سبزیجات",
+ "description": "قارچ وفلفل و گوجه و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0033b136cc1007047cd35"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:18:13.465Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:42:36.689Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a011b2136cc1007047d19f"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب سوخاری",
+ "description": "3 عدد فیله مرغ 8 عدد قارچ 1 عدد توپک برنجی سیب زمینی سرخ کرده و سوخاری",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0043b136cc1007047cdaa"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:25:22.081Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:26:07.425Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01204136cc1007047d1b2"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل دان",
+ "description": "دو عدد شنسل مرغ تند و ژامبون و پنیر و قارچ تفت داده به همراه سیب زمینی",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0043b136cc1007047cdaa"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:26:44.535Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:26:58.580Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01267136cc1007047d1bc"
+ },
+ "price": 4200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "5 تیکه استریپس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0043b136cc1007047cdaa"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:28:23.040Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:27:19.095Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0129d136cc1007047d1c6"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "3 تیکه استریپس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0043b136cc1007047cdaa"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:29:17.294Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:26:33.478Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01513136cc1007047d23f"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار گریل",
+ "description": "دو عداد فیله طمع دار شده به همراه نان سیر تست شده گوجه گیلاسی زیتون و سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:39:47.511Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:10:29.511Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01530136cc1007047d249"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار دو رول",
+ "description": "دو رول فیله سوخاری به همراه نان سیر تست شده گوجه گیلاسی زیتون و سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:40:16.221Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:10:06.715Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0154c136cc1007047d253"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مخصوص",
+ "description": "کاهو گوجه گیلاسی پرتغال سس مخصوص و زیتون و ژامبون",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:40:44.735Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:09:47.668Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a01574136cc1007047d25d"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد بیستکا",
+ "description": "کاهو و فیله گوساله و سس مخصوص پیاز و خیار و زیتون ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:41:24.901Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:11:02.555Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0158d136cc1007047d267"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کلاسیک",
+ "description": "کاهو و گوجه و خیار و زامبون و سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:41:49.097Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:09:09.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a015b3136cc1007047d274"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فروت سالاد ",
+ "description": "کاهو و میوه فصل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00527136cc1007047cdea"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-23T20:42:27.074Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-23T20:42:27.074Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0ec94136cc1007047da25"
+ },
+ "price": 4200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب دیگی digi kebab",
+ "description": "گوشت،سیب زمینی تنوری،گوجه سس کباب دیگی،فلفل دلمه ای، ..meat/roast potatoes/tomato/digi kebab sauce/sweet pepper/iranian rice",
+ "short_description": "",
+ "category": {
+ "$oid": "6627dff97d6ac20062281dd2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-07-24T11:59:16.138Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:11:34.443Z"
+ },
+ "__v": 0,
+ "image": "food_1721822590888.png"
+},
+{
+ "_id": {
+ "$oid": "66a0fed2136cc1007047dbad"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز برگر",
+ "description": "150 گرم گوشت گوساله به همراه پنیر ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:17:06.607Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:25:30.557Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0ff35136cc1007047dbb8"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک ",
+ "description": "150 گرم گوشت چرخ کرده گوساله به همراه کاهو و...",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:18:45.172Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:23:40.350Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a0ffd3136cc1007047dbd4"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دبل برگر",
+ "description": "300 گرم گوشت چرخ کرده گوساله به همراه سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:21:23.729Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:24:59.869Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1003b136cc1007047dbe7"
+ },
+ "price": 3200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاین برگر",
+ "description": "150 گرم گوشت چرخ کرده گوساله وشنسل مرغ به همراه قارچ و پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:23:07.942Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:24:17.134Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a100a5136cc1007047dbf7"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ فیله سوخاری",
+ "description": " 2عدد فیله مرغ سوخاری و کاهو ...",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:24:53.962Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:15:00.128Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a100c7136cc1007047dc01"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ رست بیف",
+ "description": "گوشت فیله گوساله و دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:25:27.904Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:14:40.100Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a100e4136cc1007047dc0b"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن تنوری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00384136cc1007047cd5a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:25:56.040Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:19:14.084Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10223136cc1007047dc4c"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a006a2136cc1007047ce68"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:31:15.358Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T13:31:15.358Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10254136cc1007047dc7e"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a006a2136cc1007047ce68"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:32:04.711Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-19T14:20:28.752Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a102a8136cc1007047dcbd"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سن سباستین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a006a2136cc1007047ce68"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:33:28.050Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:40:23.253Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a102c0136cc1007047dcc7"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دسر نوتلا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a006a2136cc1007047ce68"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:33:52.914Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-19T14:19:58.842Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a103a0136cc1007047dd00"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 70/30",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:37:36.108Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:36:20.780Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a103c5136cc1007047dd0d"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 100 عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:38:13.697Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:36:35.940Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10402136cc1007047dd1d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو70/30",
+ "description": "1 شات اسپرسو یه همراه یک لکه شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:39:14.545Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:38:47.665Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10438136cc1007047dd2a"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو 100 عربیکا",
+ "description": "یک شات اسپرسو به همراه یک لکه شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:40:08.351Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:39:09.193Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10470136cc1007047dd4c"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو 70/30",
+ "description": "یک شات اسپرسو به همراه 150 میلی لیتر آب",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:41:04.379Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:36:54.083Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a104a2136cc1007047dd77"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو 100 عربیکا",
+ "description": "یک شات اسپرسو به همراه 150 میلی لیتر آب",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:41:54.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:37:06.849Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1056c136cc1007047dd8d"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوجینو 70/30",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 180 گرم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:45:16.391Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T13:45:16.391Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10593136cc1007047dd98"
+ },
+ "price": 770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو 100 عربیکا",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 180 گرم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:45:55.344Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:32:50.772Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a105e6136cc1007047dda2"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته 70/030",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250 گرم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:47:18.250Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T13:47:18.250Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1060c136cc1007047ddaf"
+ },
+ "price": 820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته 100 عربیکا",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250 گرم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:47:56.744Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:33:36.102Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a106d6136cc1007047ddba"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو70/30",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250میلی لیتر شیر و سیروب کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:51:18.477Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T13:51:18.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a107a6136cc1007047ddc4"
+ },
+ "price": 840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو 100 عربیکا",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250 میلی لیتر شیر و سیروب کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:54:46.934Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:34:20.193Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10816136cc1007047ddd2"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا 70/30",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250میلی لیتر شیر و سیروب شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:56:38.270Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:35:13.355Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1083c136cc1007047dddf"
+ },
+ "price": 840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا 100 عربیکا",
+ "description": "ریسترتو (اسپرسو کم آب) به همراه 250میلی لیتر شیر و سیروب شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:57:16.498Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:35:40.472Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1089e136cc1007047ddec"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفاگاتو",
+ "description": "2 اسکوب بستنی وانیل به همراه 1 شات اسپرسو ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005af136cc1007047ce08"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T13:58:54.735Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T13:58:54.735Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10945136cc1007047de03"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دمی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:01:41.302Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:03:43.917Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a109b2136cc1007047de10"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:03:30.593Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:03:30.593Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a109e2136cc1007047de27"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای دمی با قوری 2 نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:04:18.833Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:04:18.833Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10a26136cc1007047de31"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرامش",
+ "description": "سنبل الطیب و گل گاو زبان و لیمو عمانی",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:05:26.023Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:05:51.460Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10a70136cc1007047de48"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آویشن نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:06:40.983Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:06:40.983Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10a98136cc1007047de52"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش بهار نارنج به لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:07:20.765Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:07:20.765Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10ab4136cc1007047de5c"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های قرمز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00613136cc1007047ce3e"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:07:48.190Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:07:48.190Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10adb136cc1007047de66"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00636136cc1007047ce4a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:08:27.636Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:08:27.636Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10aee136cc1007047de70"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a00636136cc1007047ce4a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:08:46.814Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:08:46.814Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10b50136cc1007047de80"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته70/30",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:10:24.483Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:10:24.483Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10b6e136cc1007047de8a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته عربیکا",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:10:54.447Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:10:54.447Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10b9a136cc1007047dea3"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیتو 70/30",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ و سیروب کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:11:38.874Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:11:38.874Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10bd3136cc1007047deb0"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو عربیکا",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ و سیروب کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:12:35.704Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:48:27.624Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10c02136cc1007047deba"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا 70/30",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ و سیروب شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:13:22.888Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:47:58.919Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10c3b136cc1007047dec4"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا عربیکا",
+ "description": "یک شات اسپرسو و 280 میلی لیتر شیر و یخ و سیروب شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:14:19.370Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:14:19.370Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10c80136cc1007047ded1"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو70/30",
+ "description": "یک شات اسپرسو و 200میلی لیتر آب و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:15:28.349Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:15:28.349Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10cae136cc1007047dee7"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو عربیکا",
+ "description": "یک شات اسپرسو و 200میلی لیتر آب و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005e6136cc1007047ce1d"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:16:14.975Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T14:47:22.609Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10ccf136cc1007047defa"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005d2136cc1007047ce11"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:16:47.335Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:16:47.335Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10d03136cc1007047df16"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه فرانسه (فرنچ پرس)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005d2136cc1007047ce11"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:17:39.371Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:17:39.371Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a10d23136cc1007047df35"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "v60",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a005d2136cc1007047ce11"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:18:11.150Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:18:11.150Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1107a136cc1007047dfee"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وانیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:32:26.237Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:32:26.237Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a110b0136cc1007047e007"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:33:20.821Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:33:20.821Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a110cc136cc1007047e011"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:33:48.081Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:33:48.081Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a110f1136cc1007047e01e"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:34:25.122Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:34:25.122Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1115c136cc1007047e028"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:36:12.354Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:36:12.354Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11181136cc1007047e032"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:36:49.831Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:36:49.831Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a111b1136cc1007047e03c"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اوریو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:37:37.537Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:37:37.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a111d3136cc1007047e046"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:38:11.923Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:38:11.923Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a111f9136cc1007047e053"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:38:49.343Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:38:49.343Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11215136cc1007047e060"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل سالت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0075d136cc1007047ce95"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:39:17.337Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:39:17.337Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11571136cc1007047e123"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد ",
+ "description": "لیمو مادل شده و سیروب شکر و سودا و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:53:37.082Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:53:37.082Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a115f1136cc1007047e136"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج لیموناد",
+ "description": "پرتغال مادل شده و آب لیمو و سیروب تیری پل سک و سودا و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:55:45.143Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:55:45.143Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11638136cc1007047e143"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "لیمو مادل شده و نعنا و سیروب شکر و سودا و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:56:56.125Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:56:56.125Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11681136cc1007047e153"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد موهیتو",
+ "description": "لیمو مادل شده و نعنا و سیروب کرن بری وسیروب شکر و سودا و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T14:58:09.053Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T14:58:38.044Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a116f3136cc1007047e17f"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوربری",
+ "description": "توت فرنگی و نمک دریا و سیروب کرن بری آب آلبالو و آب لیمو یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:00:03.533Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:00:03.533Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11738136cc1007047e1a7"
+ },
+ "price": 870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تروپیکال فروت",
+ "description": "سیروب پشن فروت و آب هلو و آب انبه و آب لیمو و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:01:12.512Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:01:12.512Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a1178f136cc1007047e1b4"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو اسکای",
+ "description": "سیروب بلو کارسائو و آب آنانانس و آب لیمو و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:02:39.258Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:02:39.258Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a117b3136cc1007047e1be"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انبه شاتوت",
+ "description": "بریلو شاتوت و آب انبه و یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:03:15.941Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:03:15.941Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a117d6136cc1007047e1c8"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "آب میوه طبیعی",
+ "description": "میوه های فصل",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0066b136cc1007047ce53"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:03:50.724Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-27T14:53:11.691Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a119e4136cc1007047e227"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سرخ کرده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:12:36.108Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:17:33.766Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a119fe136cc1007047e231"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:13:02.534Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:17:53.534Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11a4c136cc1007047e241"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی مخصوص",
+ "description": "سیب زمینی سرخ کرده به همراه پنیر و قارچ و ژامبون",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:14:20.331Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:18:16.297Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11a7e136cc1007047e255"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:15:10.897Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:12:31.336Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11aa8136cc1007047e262"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول پنیری",
+ "description": "3 عدد رول پنیر ئ ژامبون سوخاری شده",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:15:52.083Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:11:37.915Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11afe136cc1007047e27e"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استیس",
+ "description": "2 عدد سیخ فیله سوخاری شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:17:18.377Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-05T19:17:01.473Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11b84136cc1007047e297"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج سوخاری ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a004d6136cc1007047cdcb"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:19:32.220Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:19:32.220Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11cbe136cc1007047e2ce"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خیار سکنجبین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:24:46.810Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:24:46.810Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11cd3136cc1007047e2db"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بها نارنج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:25:07.392Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:25:07.392Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11ce9136cc1007047e2e5"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نسترن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:25:29.953Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:25:29.953Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11cfd136cc1007047e2ef"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیدمشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:25:49.443Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:25:49.443Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a11d11136cc1007047e2f9"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "66a11ca3136cc1007047e2c1"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T15:26:09.178Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-24T15:26:09.178Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a131ff136cc1007047e727"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایتالیایی وجترین",
+ "description": "کدو و بادمجان و قارچ و فلفل دلمه ای و زیتون",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0034e136cc1007047cd44"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T16:55:27.469Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:22:14.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a13274136cc1007047e762"
+ },
+ "price": 3600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیر و استیک",
+ "description": "راسته گوساله سیر فلفل دلمه ای و پنیر مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0034e136cc1007047cd44"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T16:57:24.436Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:21:26.195Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a132bd136cc1007047e78a"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آل پلو",
+ "description": "مرغ طمع دار شده و قارچ و فلفل دلمه ای",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0034e136cc1007047cd44"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T16:58:37.800Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-10T19:05:31.540Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a13328136cc1007047e7b5"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پپرونی ",
+ "description": "پپرونی هات داگ و سبزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "66a0034e136cc1007047cd44"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T17:00:24.158Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-28T19:20:58.896Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a13752136cc1007047e979"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاسه کباب",
+ "description": "یک سیخ کوبیده و یک سیخ جوجه و گوشت چنجه",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-07-24T17:18:10.450Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:23:29.342Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66a389ce136cc10070482691"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-07-26T11:34:38.351Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-13T16:13:01.959Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66b0fddf136cc100704973d4"
+ },
+ "price": 180000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب تولد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-08-05T16:29:19.113Z"
+ },
+ "updated_at": {
+ "$date": "2024-08-06T13:48:15.409Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66b23b48136cc10070499454"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "62810c47d65610bd301c56ea"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2024-08-06T15:03:36.499Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:09:48.141Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66bb5f42136cc100704a7199"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بستنی ",
+ "description": "وانیل / شکلاتی / همراه با میوه و سس ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-08-13T13:27:30.185Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:53:37.970Z"
+ },
+ "__v": 0,
+ "image": "food_1723556152610.png"
+},
+{
+ "_id": {
+ "$oid": "66d605b3e2fcc00062c6017e"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو عربیکا ویژه",
+ "description": "اتیوپی هامبلا تخمیری",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:36:35.569Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:25:51.713Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60643e2fcc00062c601a5"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو ربوستا",
+ "description": "اسپرسو دوپیو ربوستا -آب",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:38:59.978Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:27:07.056Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d606ace2fcc00062c601b5"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو 50-50",
+ "description": "اسپرسو دوپیو 50-50 -آب",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:40:44.453Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:28:42.723Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d606dce2fcc00062c601c5"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو عربیکا ",
+ "description": "اسپرسو دوپیو عربیکا - آب",
+ "short_description": "",
+ "category": {
+ "$oid": "652693dc59383e8d7552ba53"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:41:32.930Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:12:16.855Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d6079de2fcc00062c601ef"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ترک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a478059383e8d755304db"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:44:45.020Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-02T18:44:45.020Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d607dce2fcc00062c60204"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرانسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a478059383e8d755304db"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:45:48.548Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-02T18:45:48.548Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60883e2fcc00062c6024c"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکیاتو",
+ "description": "اسپرسو دوپیو - لکه فوم شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:48:35.865Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:10:25.069Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d608cde2fcc00062c6027b"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کٌرتادو",
+ "description": "نسبت برابر شیر با اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:49:49.850Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:06:21.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60925e2fcc00062c6028e"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیکولو",
+ "description": "نسبت دوبرار شیر به اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:51:17.706Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:05:15.666Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d6099be2fcc00062c602b6"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "اسپرسو دوپیو-شیر-فوم شیر ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:53:15.711Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:04:44.837Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60a0de2fcc00062c602d8"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت",
+ "description": "اسپرسو-شیر-فوم شیر سبک",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:55:09.601Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:04:11.921Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60a41e2fcc00062c602fd"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "اسپرسو-شیر فوم دار شده",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:56:01.436Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:03:46.706Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60abde2fcc00062c60316"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته با سیروپ",
+ "description": "اسپرسو-شیر-سیروپ(کارامل-فندوق-وانیل-نارگیل)",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:58:05.883Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:03:21.750Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60af1e2fcc00062c60320"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "اسپرسو-شیر-سیروپ شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:58:57.589Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:02:40.652Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60b23e2fcc00062c60336"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا فندوقی",
+ "description": "اسپرسو-شیر-سیروپ شکلات و فندوق",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T18:59:47.533Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:02:02.538Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60b64e2fcc00062c60343"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "اسپرسو دوپیو-بستنی وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:00:52.709Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:01:24.806Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60bace2fcc00062c6035c"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو ویژه",
+ "description": "اسپرسو دوپیو عربیکا-بستنی وانیل و شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:02:04.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:00:53.731Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60c33e2fcc00062c60395"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو عربیکا ",
+ "description": "اسپرسو دوپیو عربیکا-آب-یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46d159383e8d755304a3"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:04:19.462Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T12:58:17.352Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60d50e2fcc00062c60406"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای لاته",
+ "description": "چای-قهوه گلد-شیر-سیروپ",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:09:04.112Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T12:57:05.573Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60da8e2fcc00062c60419"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55c759383e8d7553078a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:10:32.642Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T12:56:31.121Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d60f40e2fcc00062c6046d"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مانستر کولا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a475659383e8d755304c6"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:17:20.091Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:47:51.875Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d61032e2fcc00062c604b5"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیمیت",
+ "description": "نان سیمیت-پنیر-گردو-خیار-گوجه-ریحان",
+ "short_description": "",
+ "category": {
+ "$oid": "652a559659383e8d75530778"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:21:22.420Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T12:54:50.995Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d610cfe2fcc00062c604bf"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ مرغ",
+ "description": "نان چاپاتا-سس پستو-مرغ-کاهو فرانسه-گوجه گیلاسی",
+ "short_description": "",
+ "category": {
+ "$oid": "652a559659383e8d75530778"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:23:59.890Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T12:54:28.136Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66d61111e2fcc00062c604c9"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ بوقلمون",
+ "description": "نان چاپاتا-سس پستو-بوقلمون-پنیر موزرلا-گوجه گیلاسی",
+ "short_description": "",
+ "category": {
+ "$oid": "652a559659383e8d75530778"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2024-09-02T19:25:05.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:00:57.613Z"
+ },
+ "__v": 0,
+ "image": "food_1736521255416.png"
+},
+{
+ "_id": {
+ "$oid": "66e2945af7ba01006212608b"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اگ وافل(new)",
+ "description": "وافل، بیکن، سالاد روکولا، تخم مرغ، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-12T07:12:26.794Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:41:00.746Z"
+ },
+ "__v": 0,
+ "image": "food_1728329980738.png"
+},
+{
+ "_id": {
+ "$oid": "66e2949cf7ba0100621260a6"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت ویژه",
+ "description": "تخم مرغ، سس گوجه فرنگی، پنیر گودا، ، چیپس خلال، دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-12T07:13:32.035Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:02:38.257Z"
+ },
+ "__v": 0,
+ "image": "food_1765281756496.png"
+},
+{
+ "_id": {
+ "$oid": "66e29571f7ba0100621260c5"
+ },
+ "price": 1790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت شاپوری",
+ "description": "تخم مرغ، سس گوجه فرنگی، خوراک لوبیا، پیاز سرخ شده، دورچین به همراه نان",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-12T07:17:05.521Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:01:16.042Z"
+ },
+ "__v": 0,
+ "image": "food_1765281673778.png"
+},
+{
+ "_id": {
+ "$oid": "66e29723f7ba010062126162"
+ },
+ "price": 9750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مدالیون استیک",
+ "description": "فیله گوساله، پوره سیب زمینی، هویج، بروکلی، قارچ، کدو، سس باترپپر، سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-12T07:24:19.413Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:34:50.546Z"
+ },
+ "__v": 0,
+ "image": "food_1732099143873.png"
+},
+{
+ "_id": {
+ "$oid": "66e29736f7ba01006212616c"
+ },
+ "price": 5530000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باربیکیو چیکن(new)",
+ "description": "سینه مرغ، پوره سیب زمینی، سبزیجات، سس باربیکیو، میکرو گرین",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-12T07:24:38.681Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:35:03.997Z"
+ },
+ "__v": 0,
+ "image": "food_1728331573491.png"
+},
+{
+ "_id": {
+ "$oid": "66e96297f7ba010062130ddd"
+ },
+ "price": 4170000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن بلو(new)",
+ "description": "پنه، سس آلفردو، شنیسل مرغ سوخاری، پنیر پارمسان، ریحان ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1f81ee4b0270db4c3ef"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-17T11:05:59.430Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:35:18.732Z"
+ },
+ "__v": 0,
+ "image": "food_1729758234581.png"
+},
+{
+ "_id": {
+ "$oid": "66eafb6ef7ba010062132c58"
+ },
+ "price": 3990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "داینامیت شریمپ(new)",
+ "description": "میگو(تند)، سالاد روکولا، رایس پیپر، رلیش خیار، ترشی پیاز، پلبیبر، کنجد، خمیر بنیه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-18T16:10:22.578Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:35:31.441Z"
+ },
+ "__v": 0,
+ "image": "food_1728330007896.png"
+},
+{
+ "_id": {
+ "$oid": "66eafd3bf7ba010062132cdb"
+ },
+ "price": 5450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شنیسل مرغ(new)",
+ "description": "سینه مرغ سوخاری، پوره سیب زمینی، سالاد روکولا، سس انتروکوت",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-18T16:18:03.726Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:35:40.182Z"
+ },
+ "__v": 0,
+ "image": "food_1728331603363.png"
+},
+{
+ "_id": {
+ "$oid": "66ec50b1f7ba010062135203"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جاکارتا جینجر",
+ "description": "زنجبیل اسپایسی همراه با عصاره پشن فروت و تونیک سودای لیمو با آب سیب ترش",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:26:25.300Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:49:51.116Z"
+ },
+ "__v": 0,
+ "image": "food_1728373582119.png"
+},
+{
+ "_id": {
+ "$oid": "66ec510af7ba010062135222"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فرنچ پاستیس",
+ "description": "عطر یادی از بادیان ستاره ای با طعم پاستیلی و سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:27:54.232Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:00.548Z"
+ },
+ "__v": 0,
+ "image": "food_1728373531857.png"
+},
+{
+ "_id": {
+ "$oid": "66ec5138f7ba01006213522c"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو اسپارکل",
+ "description": "ترکیبی از لیمو و نعناع به سبک آمریکای جنوبی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:28:40.190Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:09.731Z"
+ },
+ "__v": 0,
+ "image": "food_1728373498052.png"
+},
+{
+ "_id": {
+ "$oid": "66ec516cf7ba01006213524e"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تونیک جینجر",
+ "description": "سودا طعم دار شده با زنجبیل و پرتقال خونی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:29:32.940Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:16.981Z"
+ },
+ "__v": 0,
+ "image": "food_1728373498950.png"
+},
+{
+ "_id": {
+ "$oid": "66ec51c1f7ba010062135282"
+ },
+ "price": 2150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرونا سودا واتر",
+ "description": "آب جوی بدون الکل اصل کرونا همراه با عسل و پاپریکا",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:30:57.595Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:26.682Z"
+ },
+ "__v": 0,
+ "image": "food_1728373326721.png"
+},
+{
+ "_id": {
+ "$oid": "66ec51f9f7ba0100621352c1"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بالتیکا مارگاریتا",
+ "description": "پوره طبیعی سیفیجات با سیب ترش همراه باعصاره پوست پرتقال",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:31:53.817Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:36.001Z"
+ },
+ "__v": 0,
+ "image": "food_1728373364742.png"
+},
+{
+ "_id": {
+ "$oid": "66ec5236f7ba0100621352e6"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد مصری",
+ "description": "ترکیب زعفران همراه با عصاره لیمو و عطر پرتقال ترش",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:32:54.671Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:41.848Z"
+ },
+ "__v": 0,
+ "image": "food_1728373396422.png"
+},
+{
+ "_id": {
+ "$oid": "66ec527ff7ba01006213530e"
+ },
+ "price": 1790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "الدوراند بالی",
+ "description": "عصاره آلوئه ورا همراه با سودای لیمویی و عطر خیار با آب آناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:34:07.089Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:50:54.263Z"
+ },
+ "__v": 0,
+ "image": "food_1728373551935.png"
+},
+{
+ "_id": {
+ "$oid": "66ec5512f7ba010062135483"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چاکلت پاپچی",
+ "description": "ژلاتو شکلات کارات تلخ همراه با کیک برانی و پودر شکلات هلندی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a97b1ee4b0270db4c734"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:45:06.941Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:53:11.087Z"
+ },
+ "__v": 0,
+ "image": "food_1728372980251.png"
+},
+{
+ "_id": {
+ "$oid": "66ec55dcf7ba01006213550b"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک چری",
+ "description": "سوربتو شاه توت به همراه میوه های قرمز و سس انار با پوره کرن بری",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a97b1ee4b0270db4c734"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:48:28.975Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:53:18.933Z"
+ },
+ "__v": 0,
+ "image": "food_1728372948803.png"
+},
+{
+ "_id": {
+ "$oid": "66ec565ff7ba0100621355ae"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرانچ وانیلا باتر",
+ "description": "ژلاتو وانیلی با کره بادام زمینی همراه موز و کوکی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a97b1ee4b0270db4c734"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:50:39.314Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:53:27.425Z"
+ },
+ "__v": 0,
+ "image": "food_1728372895437.png"
+},
+{
+ "_id": {
+ "$oid": "66ec56e4f7ba010062135615"
+ },
+ "price": 2090000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماراش استانبول",
+ "description": "باقلوا بستنی به همراه زعفران و کره لوتوس با قیماخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a97b1ee4b0270db4c734"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:52:52.203Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:53:40.637Z"
+ },
+ "__v": 0,
+ "image": "food_1728372863049.png"
+},
+{
+ "_id": {
+ "$oid": "66ec57c2f7ba010062135789"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تی مو تی مانگو",
+ "description": "پوره پشن فروت به همراه انبه و شیر نارگیل در کنار مغزیجات رست شده",
+ "short_description": "",
+ "category": {
+ "$oid": "66ec5758f7ba01006213570b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:56:34.437Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:54:11.081Z"
+ },
+ "__v": 0,
+ "image": "food_1728373344734.png"
+},
+{
+ "_id": {
+ "$oid": "66ec5819f7ba0100621357c5"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "می مو سا آفریقایی",
+ "description": "پوره شاه توت و موز به همراه توت فرنگی و آلوئه ورا در کنار سس انار و زنجبیل",
+ "short_description": "",
+ "category": {
+ "$oid": "66ec5758f7ba01006213570b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T16:58:01.397Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:54:18.961Z"
+ },
+ "__v": 0,
+ "image": "food_1728373241200.png"
+},
+{
+ "_id": {
+ "$oid": "66ec589af7ba0100621357f0"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آناستازیا",
+ "description": "پوره پرتقال و سبزیجات معطر به همراه خیار و نمک دریایی و عصاره پوست پرتقال",
+ "short_description": "",
+ "category": {
+ "$oid": "66ec5758f7ba01006213570b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-19T17:00:10.102Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T10:54:23.717Z"
+ },
+ "__v": 0,
+ "image": "food_1728373220295.png"
+},
+{
+ "_id": {
+ "$oid": "66ed6cb6f7ba01006213764e"
+ },
+ "price": 6550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مکزیکن(new)",
+ "description": "خمیر پیتزا، سس هات بین، قارچ، پولد بیف، اوریگانو، سس چدار، تردیلا، چیپس هویج، پلبیبر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-20T12:38:14.396Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:45:10.053Z"
+ },
+ "__v": 0,
+ "image": "food_1728330318027.png"
+},
+{
+ "_id": {
+ "$oid": "66ed6d20f7ba010062137669"
+ },
+ "price": 5930000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا برگر(new)",
+ "description": "خمیر پیتزا، پنیر میکس، سس چدار ، سس مارینارا، گوشت برگر گریل شده، قارچ، اوریگانو، زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1c11ee4b0270db4c3da"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-20T12:40:00.360Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:36:07.592Z"
+ },
+ "__v": 0,
+ "image": "food_1728306990260.png"
+},
+{
+ "_id": {
+ "$oid": "66ed6d55f7ba010062137680"
+ },
+ "price": 5870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارنه(new)",
+ "description": "خمیر ایتالیایی، سس مارینارا، گوشت مرغ، فیله گوساله، قارچ، پیکل پیاز، پستو، ریحان ایتالیایی، اوریگانو، زیتون سیاه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-20T12:40:53.979Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:36:20.797Z"
+ },
+ "__v": 0,
+ "image": "food_1728330463701.png"
+},
+{
+ "_id": {
+ "$oid": "66ed6d85f7ba010062137691"
+ },
+ "price": 6490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چانو(new)",
+ "description": "خمیر ایتالیایی، پنیر میکس، پستو ریحان، فیله گوساله، گوجه خشک، اوریگانو، چیپس بادمجان، گردو، پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1e81ee4b0270db4c3e5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-20T12:41:41.901Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:36:32.075Z"
+ },
+ "__v": 0,
+ "image": "food_1728330684783.png"
+},
+{
+ "_id": {
+ "$oid": "66ee99f4f7ba0100621396be"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجرپشن",
+ "description": "لیموناد به همراه زنجبیل تازه",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1a2fc1eece3d7626383"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2024-09-21T10:03:32.378Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:30:43.335Z"
+ },
+ "__v": 0,
+ "image": "food_1726913724347.png"
+},
+{
+ "_id": {
+ "$oid": "66eea6b3f7ba0100621399a1"
+ },
+ "price": 5150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فاهیتامیکس(new) تند",
+ "description": "سینه مرغ،فیله گوساله،پیاز،فلفل دلمه رنگی،برنج مکزیکی،ساورکرم،دیپ چدار،دیپ تورتیلا،دیپ چدار",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T10:57:55.300Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:36:45.249Z"
+ },
+ "__v": 0,
+ "image": "food_1728331131292.png"
+},
+{
+ "_id": {
+ "$oid": "66eecc0af7ba010062139f35"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا",
+ "description": "ماسالا چای، شیر، دارچین",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:37:14.573Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:44:01.984Z"
+ },
+ "__v": 0,
+ "image": "food_1728374980662.png"
+},
+{
+ "_id": {
+ "$oid": "66eecc43f7ba010062139f4e"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "ماسالا چای، زعفران، هل، دارچین، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:38:11.549Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:44:09.385Z"
+ },
+ "__v": 0,
+ "image": "food_1728374956579.png"
+},
+{
+ "_id": {
+ "$oid": "66eecc64f7ba010062139f55"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای مراکشی",
+ "description": "چای سبز، دارچین، نعنا، لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:38:44.752Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:44:21.886Z"
+ },
+ "__v": 0,
+ "image": "food_1728377431806.png"
+},
+{
+ "_id": {
+ "$oid": "66eecc9ef7ba010062139f6a"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای لاته",
+ "description": "چای، شیر، پودر شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:39:42.741Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:00:36.924Z"
+ },
+ "__v": 0,
+ "image": "food_1729765132668.png"
+},
+{
+ "_id": {
+ "$oid": "66eeccc4f7ba010062139f77"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "چای سبز، لیمو، نبات",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:40:20.888Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:45:50.511Z"
+ },
+ "__v": 0,
+ "image": "food_1728377808931.png"
+},
+{
+ "_id": {
+ "$oid": "66eeccfaf7ba010062139f84"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لانگ بلک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2fd1ee4b0270db4c458"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:41:14.088Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:01:48.565Z"
+ },
+ "__v": 0,
+ "image": "food_1728377481568.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd18f7ba010062139f8b"
+ },
+ "price": 1590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورنج امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2fd1ee4b0270db4c458"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:41:44.818Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:02:12.270Z"
+ },
+ "__v": 0,
+ "image": "food_1728372536686.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd2cf7ba010062139f92"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیریش کافی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2fd1ee4b0270db4c458"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:42:04.668Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:02:18.446Z"
+ },
+ "__v": 0,
+ "image": "food_1729759379045.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd42f7ba010062139f99"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2fd1ee4b0270db4c458"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:42:26.192Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:02:25.258Z"
+ },
+ "__v": 0,
+ "image": "food_1728377490744.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd70f7ba010062139fa0"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایبریک (قهوه ترک)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:43:12.283Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:03:26.124Z"
+ },
+ "__v": 0,
+ "image": "food_1728373971406.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd83f7ba010062139fb0"
+ },
+ "price": 1290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "عثمانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:43:31.791Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:03:37.996Z"
+ },
+ "__v": 0,
+ "image": "food_1728374077203.png"
+},
+{
+ "_id": {
+ "$oid": "66eecd9bf7ba010062139fb7"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2d91ee4b0270db4c445"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:43:55.161Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:03:52.574Z"
+ },
+ "__v": 0,
+ "image": "food_1728374188201.png"
+},
+{
+ "_id": {
+ "$oid": "66eecdc7f7ba010062139fc1"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاچینو",
+ "description": "اسپرسو، شیر، سس شکلات، پودر کاکائو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:44:39.729Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:04:17.315Z"
+ },
+ "__v": 0,
+ "image": "food_1728374516173.png"
+},
+{
+ "_id": {
+ "$oid": "66eecdf4f7ba010062139fc8"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو",
+ "description": "اسپرسو، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:45:24.450Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:04:21.734Z"
+ },
+ "__v": 0,
+ "image": "food_1729765217266.png"
+},
+{
+ "_id": {
+ "$oid": "66eece23f7ba010062139fd2"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو اسپشیالیتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:46:11.967Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:04:30.642Z"
+ },
+ "__v": 0,
+ "image": "food_1729758883089.png"
+},
+{
+ "_id": {
+ "$oid": "66eece40f7ba010062139fd9"
+ },
+ "price": 1390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو رومانو",
+ "description": "اسپرسو، لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:46:40.450Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:04:40.008Z"
+ },
+ "__v": 0,
+ "image": "food_1728374453525.png"
+},
+{
+ "_id": {
+ "$oid": "66eece62f7ba010062139fe0"
+ },
+ "price": 1490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "اسپرسو، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:47:14.286Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:04:58.733Z"
+ },
+ "__v": 0,
+ "image": "food_1728374681449.png"
+},
+{
+ "_id": {
+ "$oid": "66eece81f7ba010062139fe7"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافه لاته",
+ "description": "اسپرسو، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:47:45.531Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:05:11.233Z"
+ },
+ "__v": 0,
+ "image": "food_1728374690285.png"
+},
+{
+ "_id": {
+ "$oid": "66eecea2f7ba010062139fee"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کورتادو",
+ "description": "اسپرسو، شیر گاومیش",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:48:18.087Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:05:37.080Z"
+ },
+ "__v": 0,
+ "image": "food_1728374070853.png"
+},
+{
+ "_id": {
+ "$oid": "66eececdf7ba010062139ff5"
+ },
+ "price": 1490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو آریش کرما",
+ "description": "اسپرسو، شیر، سیروپ آیریش",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:49:01.592Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:05:49.764Z"
+ },
+ "__v": 0,
+ "image": "food_1729758906445.png"
+},
+{
+ "_id": {
+ "$oid": "66eeceecf7ba010062139fff"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "پودر هات چاکلت، شیر، پودر کاکائو",
+ "short_description": "",
+ "category": {
+ "$oid": "66eec765f7ba010062139d62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:49:32.932Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:48:00.309Z"
+ },
+ "__v": 0,
+ "image": "food_1728377462810.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf20f7ba01006213a006"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت بیسکوف",
+ "description": "کره لوتوس، پودر هات چاکلت، شیر، پودر کاکائو",
+ "short_description": "",
+ "category": {
+ "$oid": "66eec765f7ba010062139d62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:50:24.490Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:48:35.117Z"
+ },
+ "__v": 0,
+ "image": "food_1728377484916.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf40f7ba01006213a00d"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "پودر وایت چاکلت، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "66eec765f7ba010062139d62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:50:56.063Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:48:40.975Z"
+ },
+ "__v": 0,
+ "image": "food_1728377480666.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf58f7ba01006213a014"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:51:20.657Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:07:31.521Z"
+ },
+ "__v": 0,
+ "image": "food_1728377253866.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf6bf7ba01006213a01e"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کورتادو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:51:39.158Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:07:44.591Z"
+ },
+ "__v": 0,
+ "image": "food_1728376290215.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf86f7ba01006213a025"
+ },
+ "price": 1390000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:52:06.280Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:07:50.877Z"
+ },
+ "__v": 0,
+ "image": "food_1728376953071.png"
+},
+{
+ "_id": {
+ "$oid": "66eecf9ef7ba01006213a032"
+ },
+ "price": 1610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:52:30.244Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:07:58.411Z"
+ },
+ "__v": 0,
+ "image": "food_1728377261101.png"
+},
+{
+ "_id": {
+ "$oid": "66eecfb6f7ba01006213a03c"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس رومانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9511ee4b0270db4c722"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:52:54.484Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:08:08.236Z"
+ },
+ "__v": 0,
+ "image": "food_1728376208132.png"
+},
+{
+ "_id": {
+ "$oid": "66eed134f7ba01006213a06f"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کامرشیال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2c31ee4b0270db4c43c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-21T13:59:16.832Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:08:28.062Z"
+ },
+ "__v": 0,
+ "image": "food_1729758879931.png"
+},
+{
+ "_id": {
+ "$oid": "66f03d57f7ba01006213c246"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه لاهیجان 2 کاپ",
+ "description": "برگ دستچین شده مزارع لاهیجان،همراه با تاپینگ دارچین، زعفران یا هل",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-22T15:52:55.711Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:52:41.089Z"
+ },
+ "__v": 0,
+ "image": "food_1728377477277.png"
+},
+{
+ "_id": {
+ "$oid": "66f160dbf7ba01006213d7e2"
+ },
+ "price": 4350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد چاینیز(new)",
+ "description": "کاهو،سینه مرغ سوخاری،هویج اسپاگتی،سس پینات باتر(تند)، بادام زمینی،کلم بنفش،پیازچه،گشنیز تازه،خیار،بیبی اسفناج،چیپس بادمجان،میکروگرین، رایس نودل",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-23T12:36:43.652Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:36:59.826Z"
+ },
+ "__v": 0,
+ "image": "food_1728306986068.png"
+},
+{
+ "_id": {
+ "$oid": "66f4428ef7ba010062140b97"
+ },
+ "price": 7850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو گردن ",
+ "description": "گردن گوسفندی حدود 600 گرم همراه با برنج و دورچین ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-09-25T17:04:14.686Z"
+ },
+ "updated_at": {
+ "$date": "2024-09-25T17:04:14.686Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "66f70b10f7ba010062145a30"
+ },
+ "price": 2230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز",
+ "description": "سیب زمینی خلالی،سس قارچ و خامه",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-27T19:44:16.301Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:37:13.759Z"
+ },
+ "__v": 0,
+ "image": "food_1729757889287.png"
+},
+{
+ "_id": {
+ "$oid": "66f70b89f7ba010062145a3a"
+ },
+ "price": 3370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سیر",
+ "description": "خمیر ایتالیایی،میکس پنیر،سس سیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-27T19:46:17.950Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:37:23.122Z"
+ },
+ "__v": 0,
+ "image": "food_1729757637426.png"
+},
+{
+ "_id": {
+ "$oid": "66f83893f7ba0100621468b4"
+ },
+ "price": 1970000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول سوخاری",
+ "description": "مرغ سوخاری شده،پنیر گودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a1aa1ee4b0270db4c3d0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-09-28T17:10:43.654Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:37:42.750Z"
+ },
+ "__v": 0,
+ "image": "food_1729757745572.png"
+},
+{
+ "_id": {
+ "$oid": "66fbec4df7ba01006214a648"
+ },
+ "price": 9850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیزلر استیک",
+ "description": "پوره سیب زمینی،دورچین سبزیجات،سس قارچ،فیله گوساله سروشده در ظرف چدن",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-01T12:34:21.114Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:37:53.899Z"
+ },
+ "__v": 0,
+ "image": "food_1729758019524.png"
+},
+{
+ "_id": {
+ "$oid": "66fd3f23f7ba01006214bc97"
+ },
+ "price": 4150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فیله استریپس(new)",
+ "description": "سه تیکه فیله مرغ پولکی،سیب زمینی،ساید سالاد،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-02T12:40:03.804Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:38:06.678Z"
+ },
+ "__v": 0,
+ "image": "food_1739472531418.png"
+},
+{
+ "_id": {
+ "$oid": "670269ac5e3952005743f0f1"
+ },
+ "price": 5450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ته چین گوشت و بادمجان",
+ "description": "ته چین،گوشت ماهیچه گوساله،چیپس بادمجان،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2141ee4b0270db4c3f8"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-06T10:42:52.915Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:38:26.629Z"
+ },
+ "__v": 0,
+ "image": "food_1728331171079.png"
+},
+{
+ "_id": {
+ "$oid": "670281d15e3952005743f2a0"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "براونی کیت کت",
+ "description": "یک اسلایس براونی کیت کت",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-06T12:25:53.218Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-21T12:12:12.028Z"
+ },
+ "__v": 0,
+ "image": "food_1728221807368.png"
+},
+{
+ "_id": {
+ "$oid": "670282ee5e3952005743f2c6"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "براونی پنیری همراه با بستنی",
+ "description": "یک اسلایس کیک براونی به همراه یک اسکوپ بستنی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-06T12:30:38.624Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-21T12:12:41.624Z"
+ },
+ "__v": 0,
+ "image": "food_1729759080723.png"
+},
+{
+ "_id": {
+ "$oid": "67080f075e395200574477d2"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-10-10T17:29:43.628Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:38:43.938Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "670810755e39520057447843"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وجی لاور new",
+ "description": "سس پستو. پنیر پیتزا.کدو طعم دار شده.بروکلی.گوجه خشک مزه دار شده.زیتون سیاه.پارمژان.چیپس هویج.شاتسس کچاپ",
+ "short_description": "",
+ "category": {
+ "$oid": "6519720759383e8d7551df62"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-10-10T17:35:49.538Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T13:47:46.415Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "670949e75e39520057449ee1"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زرشک پلو با مرغ",
+ "description": "ران مرغ جا افتاده در سس هویج و الو-برنج ایرانی-نثار-دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-10-11T15:53:11.061Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:38:06.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "670a3a975e3952005744b7f7"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برگر کلاسیک",
+ "description": "نان برگر، برگر ۱۵۰ گرمی، گوجه فرنگی، کاهو لوتوس، پیازکاراملی، خیار، سس مخصوص، ساید سالاد و سیب زمینی(سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "64ae92ed98ff3c7414486796"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61fe34411ee4b0270db4a459"
+ },
+ "created_at": {
+ "$date": "2024-10-12T09:00:07.388Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-12T09:00:07.388Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "670fc58f0c93e90057b8480e"
+ },
+ "price": 4950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "قیمه نثار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-10-16T13:54:23.145Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:36:20.343Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "670fc5d50c93e90057b84818"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اکبر جوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651971e159383e8d7551df50"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2024-10-16T13:55:33.134Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:36:44.243Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6712503b7fa0510057e89c4e"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "اب گازدار،سیروپ،لیموتازه،نعنا،یخ کراش",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-18T12:10:35.606Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:14:18.667Z"
+ },
+ "__v": 0,
+ "image": "food_1729756970934.png"
+},
+{
+ "_id": {
+ "$oid": "671250b17fa0510057e89c5b"
+ },
+ "price": 1490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "میکس لیمو تازه،سیروپ.یخ.اب سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-18T12:12:33.612Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:17:23.013Z"
+ },
+ "__v": 0,
+ "image": "food_1729756906514.png"
+},
+{
+ "_id": {
+ "$oid": "6712527d7fa0510057e89ca5"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "براونی پنیری",
+ "description": "یک اسلابس کیک برانی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-18T12:20:13.993Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-21T12:13:18.683Z"
+ },
+ "__v": 0,
+ "image": "food_1729800488338.png"
+},
+{
+ "_id": {
+ "$oid": "671518410896e400574becd5"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزکیک لوتوس",
+ "description": "یک اسلایس چیزکیک لوتوس",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-20T14:48:33.199Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-07T11:40:27.949Z"
+ },
+ "__v": 0,
+ "image": "food_1759837227083.png"
+},
+{
+ "_id": {
+ "$oid": "67151b310896e400574bed13"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ردموهیتو",
+ "description": "اب گازدار،سیروپ،لیموتازه،نعنا،یخ کراش،سیروپ گرانادین",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-20T15:01:05.795Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:17:53.967Z"
+ },
+ "__v": 0,
+ "image": "food_1729755149179.png"
+},
+{
+ "_id": {
+ "$oid": "67151bf00896e400574bed20"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب میوه فصل",
+ "description": "اب پرتغال طبیعی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2024-10-20T15:04:16.456Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:18:02.153Z"
+ },
+ "__v": 0,
+ "image": "food_1729755296114.png"
+},
+{
+ "_id": {
+ "$oid": "67305a43c3c0100063e6bce1"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "3 اسکوپ بستنی وانیل مخلوط شده با شیر پرچرب و شکلات نوتلا",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:01:23.660Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:41:11.954Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305a66c3c0100063e6bceb"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "3 اسکوپ بستنی شکلاتی مخلوط شده با شیر پرچرب ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:01:58.521Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:40:54.227Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305a88c3c0100063e6bcf5"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز ",
+ "description": "3 اسکوپ بستنی وانیل مخلوط شده با شیر پرچرب و موز تازه ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:02:32.201Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:40:05.105Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305b25c3c0100063e6bd20"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "3 اسکوپ بستنی وانیل مخلوط شده با شیرپرچرب همراه با کره بادوم زمینی ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:05:09.742Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:39:24.628Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305b4ac3c0100063e6bd33"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کارامل گردو ",
+ "description": "3 اسکوپ بستنی وانیل مخلوط شده با شیر پرچرب و سیروپ کارامل و گردو ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:05:46.935Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:38:46.640Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305b6ac3c0100063e6bd3d"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کاپوچینو",
+ "description": "3 اسکوپ بستنی وانیل مخلوط شده با اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:06:18.750Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:38:02.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305b8ec3c0100063e6bd49"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک یونیکورن",
+ "description": "3 اسکوپ بستنی توت فرنگی مخلوط شده با شیرپرچرب ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:06:54.829Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:37:27.176Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305babc3c0100063e6bd53"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موزشکلات",
+ "description": "3 اسکوپ بستنی شکلاتی مخلوط شده با شیرپرچرب همراه با موز تازه",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:07:23.552Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:36:56.484Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305bdec3c0100063e6bd5d"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فریکی فروت",
+ "description": "3 اسکوپ بستنی میوه ای ، موز ، توت فرنگی ، خامه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730582dc3c0100063e6bc6e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:08:14.125Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:31:46.760Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305c30c3c0100063e6bd71"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "معجون",
+ "description": "3 اسکوپ بستنی معجون همراه با مغزیجات،پودر کنجد ، پودر نارگیل و عسل ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730582dc3c0100063e6bc6e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:09:36.198Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-30T18:33:21.779Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305c56c3c0100063e6bd7e"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بهشت شکلات",
+ "description": "3 اسکوپ بستنی شکلات همراه با کورن فلکس ،شکلات هیس ، یسکوییت شکلاتی ، شوکورول و سس شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730582dc3c0100063e6bc6e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:10:14.998Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:29:52.935Z"
+ },
+ "__v": 0,
+ "image": "food_1743526924119.png"
+},
+{
+ "_id": {
+ "$oid": "67305d81c3c0100063e6bda8"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویتامینه معجون",
+ "description": "بستنی معجون 3 اسکوپ ، مغزیجات ، پودر نارگیل و کنجد ، عسل ،خامه ، موز ، آناناس",
+ "short_description": "",
+ "category": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:15:13.585Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-10T21:19:43.487Z"
+ },
+ "__v": 0,
+ "image": "food_1733563611746.png"
+},
+{
+ "_id": {
+ "$oid": "67305dbec3c0100063e6bdbc"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چالیس فروت",
+ "description": "توت فرنگی ، بستنی وانیل ، موز ، بستنی شکلات ، کیک شکلات ، خامه ، شوکورول",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:16:14.678Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:32:03.367Z"
+ },
+ "__v": 0,
+ "image": "food_1733306399133.png"
+},
+{
+ "_id": {
+ "$oid": "67305de2c3c0100063e6bdc6"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چالیس کیک",
+ "description": "بستنی وانیل ، ژله ، کیک شکلاتی ، موز",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:16:50.693Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:31:56.175Z"
+ },
+ "__v": 0,
+ "image": "food_1733306350712.png"
+},
+{
+ "_id": {
+ "$oid": "67305e03c3c0100063e6bdd0"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات بستنی",
+ "description": "دونات شکلات ، بستنی شکلات ، موز ، آناناس ، خامه ، سس شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:17:23.499Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:32:33.993Z"
+ },
+ "__v": 0,
+ "image": "food_1733180961735.png"
+},
+{
+ "_id": {
+ "$oid": "67305e23c3c0100063e6bdda"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک بستنی",
+ "description": "بستنی شکلات ، توت فرنگی ، موز، کیک شکلاتی ، خامه ، شوکورول ، سس شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:17:55.503Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:32:42.165Z"
+ },
+ "__v": 0,
+ "image": "food_1733142832782.png"
+},
+{
+ "_id": {
+ "$oid": "67305e65c3c0100063e6bdf1"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر معجون",
+ "description": "یک عدد دونات ، خامه ، موز ، بستنی معجون 1 اسکوپ ، مغزیجات ، پودر نارگیل و کنجد ، عسل ، سس شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:19:01.566Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:35:13.273Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305e96c3c0100063e6bdfb"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی انبه",
+ "description": "انبه 150 گرم ، یخ ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:19:50.147Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:59:46.574Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305eb1c3c0100063e6be05"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی ترش",
+ "description": "آلبالو 150 گرم ، نمک ، گلپر ، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:20:17.061Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:56:32.101Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305ed3c3c0100063e6be12"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی استوایی",
+ "description": "انبه ، آناناس ، موز ، یخ ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:20:51.240Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:56:20.646Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305f18c3c0100063e6be22"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی اناناس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:22:00.172Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:56:41.814Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305f56c3c0100063e6be35"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموتی سیب موز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6730591ec3c0100063e6bcb7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:23:02.739Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:55:34.693Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67305fa1c3c0100063e6be55"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو",
+ "description": "شیر پرچرب ، اسپرسو 50/50 ، سیروپ کارامل ، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:24:17.286Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:48:52.021Z"
+ },
+ "__v": 0,
+ "image": "food_1731760342565.png"
+},
+{
+ "_id": {
+ "$oid": "67305fc7c3c0100063e6be62"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو",
+ "description": "اسپرسو 50/50 ،آب ، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:24:55.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:48:44.472Z"
+ },
+ "__v": 0,
+ "image": "food_1731760427059.png"
+},
+{
+ "_id": {
+ "$oid": "67305ff0c3c0100063e6be6c"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "شیر پرچرب ، اسپرسو 50/50 ، سیروپ شکلات ، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:25:36.058Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:48:26.629Z"
+ },
+ "__v": 0,
+ "image": "food_1731759538021.png"
+},
+{
+ "_id": {
+ "$oid": "6730600dc3c0100063e6be76"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته",
+ "description": "شیر پرچرب ، اسپرسو 50/50 ، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:26:05.380Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:47:36.739Z"
+ },
+ "__v": 0,
+ "image": "food_1731759571881.png"
+},
+{
+ "_id": {
+ "$oid": "67306684c3c0100063e6bfc7"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ",
+ "description": "50 درصد عربیکا ، 50 رصد روبوستا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:53:40.363Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T11:14:53.931Z"
+ },
+ "__v": 0,
+ "image": "food_1733143237751.png"
+},
+{
+ "_id": {
+ "$oid": "673066a9c3c0100063e6bfd1"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه فرانسه ",
+ "description": "فرانسه 70درصد عربیکا ، 30 درصد روبوستا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:54:17.936Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:07:36.146Z"
+ },
+ "__v": 0,
+ "image": "food_1733143297427.png"
+},
+{
+ "_id": {
+ "$oid": "673066c8c3c0100063e6bfdb"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "شیر پرچرب ،اسپرسو 50/50 ، سیروپ کارامل ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:54:48.743Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:07:12.787Z"
+ },
+ "__v": 0,
+ "image": "food_1733180816485.png"
+},
+{
+ "_id": {
+ "$oid": "673066e5c3c0100063e6bfea"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "شیر پرچرب ،اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T07:55:17.399Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:06:44.515Z"
+ },
+ "__v": 0,
+ "image": "food_1733180883149.png"
+},
+{
+ "_id": {
+ "$oid": "67306804c3c0100063e6bff4"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "اسپرسو 50/50 ، آب جوش",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T08:00:04.111Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:05:24.253Z"
+ },
+ "__v": 0,
+ "image": "food_1733180916579.png"
+},
+{
+ "_id": {
+ "$oid": "6730683ac3c0100063e6c001"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "بستنی وانیل 1 اسکوپ استاندارد ،اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T08:00:58.354Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:17:27.634Z"
+ },
+ "__v": 0,
+ "image": "food_1733180792530.png"
+},
+{
+ "_id": {
+ "$oid": "67306860c3c0100063e6c012"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "شیر پرچرب ،اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T08:01:36.748Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:17:55.721Z"
+ },
+ "__v": 0,
+ "image": "food_1733180650251.png"
+},
+{
+ "_id": {
+ "$oid": "673068b2c3c0100063e6c01f"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت اسپرسو",
+ "description": "شیر پرچرب ،پودر شکلات ، اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T08:02:58.120Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:37:35.260Z"
+ },
+ "__v": 0,
+ "image": "food_1733143171406.png"
+},
+{
+ "_id": {
+ "$oid": "67307718c3c0100063e6c117"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت نوتلا",
+ "description": "شیر پرچرب ،پودر شکلات ، شکلات نوتلا",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:04:24.911Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:37:01.533Z"
+ },
+ "__v": 0,
+ "image": "food_1733143139138.png"
+},
+{
+ "_id": {
+ "$oid": "6730773cc3c0100063e6c121"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:05:00.939Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:36:38.324Z"
+ },
+ "__v": 0,
+ "image": "food_1733143112734.png"
+},
+{
+ "_id": {
+ "$oid": "67307774c3c0100063e6c12e"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت دارک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:05:56.249Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:36:35.057Z"
+ },
+ "__v": 0,
+ "image": "food_1733143077005.png"
+},
+{
+ "_id": {
+ "$oid": "6730779cc3c0100063e6c138"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:06:36.874Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:38:19.831Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673077bac3c0100063e6c145"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "پینک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:07:06.522Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:38:17.746Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307816c3c0100063e6c15e"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرکاکائو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:08:38.383Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:39:07.608Z"
+ },
+ "__v": 0,
+ "image": "food_1733142954323.png"
+},
+{
+ "_id": {
+ "$oid": "6730783bc3c0100063e6c168"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرنسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:09:15.168Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:39:21.826Z"
+ },
+ "__v": 0,
+ "image": "food_1733142892750.png"
+},
+{
+ "_id": {
+ "$oid": "6730787ac3c0100063e6c172"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:10:18.783Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:40:01.716Z"
+ },
+ "__v": 0,
+ "image": "food_1733142461417.png"
+},
+{
+ "_id": {
+ "$oid": "673078a6c3c0100063e6c17f"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306484c3c0100063e6bf5b"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:11:02.655Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:40:25.561Z"
+ },
+ "__v": 0,
+ "image": "food_1733142510825.png"
+},
+{
+ "_id": {
+ "$oid": "673078fcc3c0100063e6c19e"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "چای ایرانی دمی ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:12:28.065Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-02T12:29:13.229Z"
+ },
+ "__v": 0,
+ "image": "food_1733142551995.png"
+},
+{
+ "_id": {
+ "$oid": "67307954c3c0100063e6c1b2"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ترش ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:13:56.329Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T13:01:58.130Z"
+ },
+ "__v": 0,
+ "image": "food_1733142584507.png"
+},
+{
+ "_id": {
+ "$oid": "67307988c3c0100063e6c1c5"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:14:48.247Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T13:02:26.718Z"
+ },
+ "__v": 0,
+ "image": "food_1733142615641.png"
+},
+{
+ "_id": {
+ "$oid": "67307a0dc3c0100063e6c1d5"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش زنجبیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:17:01.651Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T13:02:54.238Z"
+ },
+ "__v": 0,
+ "image": "food_1733142649142.png"
+},
+{
+ "_id": {
+ "$oid": "67307a2bc3c0100063e6c1df"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاو زبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:17:31.254Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:25:53.053Z"
+ },
+ "__v": 0,
+ "image": "food_1733142675241.png"
+},
+{
+ "_id": {
+ "$oid": "67307a49c3c0100063e6c1e9"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:18:01.926Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-19T13:01:35.018Z"
+ },
+ "__v": 0,
+ "image": "food_1733142720798.png"
+},
+{
+ "_id": {
+ "$oid": "67307ab5c3c0100063e6c1fe"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس معجون ",
+ "description": "3 اسکوپ بستنی معجون ، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:19:49.638Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:49:38.429Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307ac8c3c0100063e6c208"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس شکلات",
+ "description": "3 اسکوپ بستنی شکلات ، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:20:08.802Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:34:30.585Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307aeac3c0100063e6c21c"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توت فرنگی",
+ "description": "3 اسکوپ بستنی توت فرنگی، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:20:42.983Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:34:44.152Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307b01c3c0100063e6c226"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "طالبی",
+ "description": "3 اسکوپ بستنی طالبی، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:21:05.968Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:35:00.373Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307b23c3c0100063e6c233"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز",
+ "description": "3 اسکوپ بستنی وانیل ، موز تازه ، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:21:39.733Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:35:19.908Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307b3fc3c0100063e6c23d"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انبه",
+ "description": "3 اسکوپ بستنی وانیل ، انبه 100 گرم، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:22:07.754Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:35:58.645Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307bbdc3c0100063e6c26a"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرموز",
+ "description": "شیر پرچرب ، بستنی وانیل ، موز تازه ، بدون هیچگونه افزودنی ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:24:13.375Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:36:21.026Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307ce2c3c0100063e6c29c"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "آب پرتقال",
+ "description": "آب پرتقال طبیعی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730651dc3c0100063e6bf88"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:29:06.757Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:06:24.454Z"
+ },
+ "__v": 0,
+ "image": "food_1731760921692.png"
+},
+{
+ "_id": {
+ "$oid": "67307d3cc3c0100063e6c2ba"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "آب طالبی",
+ "description": "بلند شده آب طالبی طبیعی و 1 اسکوپ بستنی طالبی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6730651dc3c0100063e6bf88"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:30:36.474Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:26:59.807Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307e2ac3c0100063e6c2de"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6730651dc3c0100063e6bf88"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:34:34.416Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-14T21:38:03.213Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67307e57c3c0100063e6c2fd"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6730651dc3c0100063e6bf88"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-10T09:35:19.010Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-14T21:36:11.765Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b080c3c0100063e6df14"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "نوتلا فست",
+ "description": "یک عدد دونات شکلات ، نوتلا تیوپی 1 عدد",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:21:36.583Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:11:39.375Z"
+ },
+ "__v": 0,
+ "image": "food_1733180737310.png"
+},
+{
+ "_id": {
+ "$oid": "6731b0a8c3c0100063e6df2b"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "یک عدد دونات شیری همراه با بیسکویت لیدی فینگر و پودر قهوه فوری ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:22:16.978Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:37:18.335Z"
+ },
+ "__v": 0,
+ "image": "food_1733180706730.png"
+},
+{
+ "_id": {
+ "$oid": "6731b0c0c3c0100063e6df35"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا شیشه ای",
+ "description": "یک عدد دونات شکلات ، کورن فلکس شکلاتی ، 1 عدد دونات نوتلا شیشه 30 گرمی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:22:40.223Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:12:12.179Z"
+ },
+ "__v": 0,
+ "image": "food_1733146270989.png"
+},
+{
+ "_id": {
+ "$oid": "6731b0d9c3c0100063e6df3f"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنیکرز",
+ "description": "یک عدد دونات شکلات همراه با تکه های شکلات اسنیکرز ، خلال بادام ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:23:05.098Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-17T15:44:48.892Z"
+ },
+ "__v": 0,
+ "image": "food_1733146241787.png"
+},
+{
+ "_id": {
+ "$oid": "6731b0eec3c0100063e6df49"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیندر",
+ "description": "یک عدد دونات شکلات ، 2 عدد کیندر ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:23:26.158Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:32:12.775Z"
+ },
+ "__v": 0,
+ "image": "food_1733146295503.png"
+},
+{
+ "_id": {
+ "$oid": "6731b101c3c0100063e6df53"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوتلا",
+ "description": "یک عدد دونات روکش نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:23:45.022Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:43:35.793Z"
+ },
+ "__v": 0,
+ "image": "food_1733146214104.png"
+},
+{
+ "_id": {
+ "$oid": "6731b115c3c0100063e6df5d"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیت کت",
+ "description": "یک عدد دونات شکلات همراه با 2عدد شکلات کیت کت ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:24:05.938Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-17T15:42:57.252Z"
+ },
+ "__v": 0,
+ "image": "food_1733146319268.png"
+},
+{
+ "_id": {
+ "$oid": "6731b13bc3c0100063e6df67"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توییکس",
+ "description": "یک عدد دونات شکلات همراه با 1عدد شکلات توییکس",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:24:43.637Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-17T15:45:56.357Z"
+ },
+ "__v": 0,
+ "image": "food_1733146188871.png"
+},
+{
+ "_id": {
+ "$oid": "6731b14fc3c0100063e6df71"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ام اند ام",
+ "description": "یک عدد دونات شکلات شیری همراه با 10عدد اسمارتیز m&m ، سس شکلات توت فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:25:03.263Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:05:22.260Z"
+ },
+ "__v": 0,
+ "image": "food_1733146348034.png"
+},
+{
+ "_id": {
+ "$oid": "6731b162c3c0100063e6df7b"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هوبی",
+ "description": "یک عدد دونات شکلات همراه با تکه های شکلات هوبی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:25:22.024Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T09:44:14.909Z"
+ },
+ "__v": 0,
+ "image": "food_1733146551965.png"
+},
+{
+ "_id": {
+ "$oid": "6731b174c3c0100063e6df85"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اورئو",
+ "description": "یک عدد دونات شکلات شیری همراه با بیسکویت اورئو و پودر بیسکویت ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:25:40.226Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T09:45:11.341Z"
+ },
+ "__v": 0,
+ "image": "food_1733146582932.png"
+},
+{
+ "_id": {
+ "$oid": "6731b18cc3c0100063e6df92"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وبی",
+ "description": "یک عدد دونات شکلات طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:26:04.035Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:24:38.663Z"
+ },
+ "__v": 0,
+ "image": "food_1733180029406.png"
+},
+{
+ "_id": {
+ "$oid": "6731b4dcc3c0100063e6dfbd"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپیرال",
+ "description": "یک عدد دونات شیری طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:40:12.540Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:24:24.804Z"
+ },
+ "__v": 0,
+ "image": "food_1733180052223.png"
+},
+{
+ "_id": {
+ "$oid": "6731b4f3c3c0100063e6dfc7"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استریپی",
+ "description": "یک عدد دونات شکلات طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:40:35.045Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:24:07.894Z"
+ },
+ "__v": 0,
+ "image": "food_1733180073573.png"
+},
+{
+ "_id": {
+ "$oid": "6731b516c3c0100063e6dfd1"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زبرا",
+ "description": "یک عدد دونات شکلات طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:41:10.448Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:23:57.145Z"
+ },
+ "__v": 0,
+ "image": "food_1733180093424.png"
+},
+{
+ "_id": {
+ "$oid": "6731b525c3c0100063e6dfdb"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رابی",
+ "description": "یک عدد دونات شکلات طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:41:25.682Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:23:43.181Z"
+ },
+ "__v": 0,
+ "image": "food_1733180179189.png"
+},
+{
+ "_id": {
+ "$oid": "6731b537c3c0100063e6dfe5"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رزتا",
+ "description": "یک عدد دونات شکلات طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af6ec3c0100063e6de95"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:41:43.768Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:23:22.598Z"
+ },
+ "__v": 0,
+ "image": "food_1733180161432.png"
+},
+{
+ "_id": {
+ "$oid": "6731b559c3c0100063e6dfef"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مینیون",
+ "description": "یک عدد دونات موزی طرح دار ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af7fc3c0100063e6de9e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:42:17.151Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-03T10:30:00.035Z"
+ },
+ "__v": 0,
+ "image": "food_1731576162224.png"
+},
+{
+ "_id": {
+ "$oid": "6731b56fc3c0100063e6dff9"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافی",
+ "description": "یک عدد دونات شکلات شیری ، پودر نسکافه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:42:39.982Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:23:54.789Z"
+ },
+ "__v": 0,
+ "image": "food_1733180206128.png"
+},
+{
+ "_id": {
+ "$oid": "6731b58bc3c0100063e6e004"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات شکلات",
+ "description": "یک عدد دونات با روکش شکلات شیرین",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:43:07.796Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:23:48.548Z"
+ },
+ "__v": 0,
+ "image": "food_1733180258080.png"
+},
+{
+ "_id": {
+ "$oid": "6731b5a4c3c0100063e6e00f"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات توت فرنگی",
+ "description": "یک عدد دونات با روکش شکلات توت فرنگی ، 1 عدد توت فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:43:32.543Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:25:53.025Z"
+ },
+ "__v": 0,
+ "image": "food_1733180232243.png"
+},
+{
+ "_id": {
+ "$oid": "6731b66fc3c0100063e6e02b"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات دارک",
+ "description": "یک عدد دونات شکلات 40% ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:46:55.149Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:23:37.690Z"
+ },
+ "__v": 0,
+ "image": "food_1733180128527.png"
+},
+{
+ "_id": {
+ "$oid": "6731b686c3c0100063e6e035"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات شیری",
+ "description": "یک عدد دونات با روکش شکلات شیری ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:47:18.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:23:30.010Z"
+ },
+ "__v": 0,
+ "image": "food_1733178966498.png"
+},
+{
+ "_id": {
+ "$oid": "6731b69dc3c0100063e6e03f"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات شکری",
+ "description": "یک عدد دونات ساده همراه با شکر ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:47:41.349Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:30:17.144Z"
+ },
+ "__v": 0,
+ "image": "food_1733179002531.png"
+},
+{
+ "_id": {
+ "$oid": "6731b6bcc3c0100063e6e049"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات نارگیل",
+ "description": "یک عدد دونات شکلات شیری همراه با پودر نارگیل و شکلات اسپارک ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:48:12.234Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:34:29.449Z"
+ },
+ "__v": 0,
+ "image": "food_1733179035398.png"
+},
+{
+ "_id": {
+ "$oid": "6731b6dcc3c0100063e6e053"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات کارامل",
+ "description": "یک عدد دونات ساده همراه با کارامل و شکلات تکه شده نانی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:48:44.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:28:17.476Z"
+ },
+ "__v": 0,
+ "image": "food_1733179058776.png"
+},
+{
+ "_id": {
+ "$oid": "6731b6f0c3c0100063e6e05d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات دارچین",
+ "description": "یک عدد دونات ساده همراه با دارچین ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:49:04.977Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:26:58.707Z"
+ },
+ "__v": 0,
+ "image": "food_1733179092163.png"
+},
+{
+ "_id": {
+ "$oid": "6731b771c3c0100063e6e070"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر نوتلا",
+ "description": "یک عدد دونات برش خورده ، شکلات نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:51:13.062Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:29:04.109Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b7adc3c0100063e6e07d"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کره بادام زمینی عسل",
+ "description": "یک عدد دونات برش خورده ، کره بادام زمینی ، عسل ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:52:13.726Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:29:56.422Z"
+ },
+ "__v": 0,
+ "image": "food_1733143433807.png"
+},
+{
+ "_id": {
+ "$oid": "6731b7c5c3c0100063e6e087"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرم شیر",
+ "description": "یک عدد دونات برش خورده ، کرم شیر ساده ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:52:37.147Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:29:01.189Z"
+ },
+ "__v": 0,
+ "image": "food_1733145942477.png"
+},
+{
+ "_id": {
+ "$oid": "6731b7dfc3c0100063e6e09a"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر دارک",
+ "description": "یک عدد دونات برش خورده ، شکلات دارک 40%",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:53:03.520Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:28:17.795Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731b829c3c0100063e6e0c9"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات برجی",
+ "description": "دو عدد دونات رست شده ، موز ، توت فرنگی ، شکلات نوتلا، کرم شیر ، خامه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:54:17.987Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:32:17.814Z"
+ },
+ "__v": 0,
+ "image": "food_1731756831421.png"
+},
+{
+ "_id": {
+ "$oid": "6731b8d9c3c0100063e6e0dd"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات توت فرنگی",
+ "description": "یک عدد دونات رست شده ، توت فرنگی ، بستنی توت فرنگی ،خامه ،شکلات شیرین ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:57:13.950Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:44:32.523Z"
+ },
+ "__v": 0,
+ "image": "food_1733179129124.png"
+},
+{
+ "_id": {
+ "$oid": "6731b8f2c3c0100063e6e0e7"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات چوبی ",
+ "description": "یک عدد دونات رست شده ، شکلات به دلخواه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:57:38.083Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:44:01.863Z"
+ },
+ "__v": 0,
+ "image": "food_1733179150342.png"
+},
+{
+ "_id": {
+ "$oid": "6731b92ac3c0100063e6e0f1"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات کارامل",
+ "description": "یک عدد دونات رست شده ، کارامل ، خلال بادام ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T07:58:34.095Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T19:04:44.642Z"
+ },
+ "__v": 0,
+ "image": "food_1733179172451.png"
+},
+{
+ "_id": {
+ "$oid": "6731b986c3c0100063e6e10b"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات موز نوتلا",
+ "description": "یک عدد دونات رست شده ، موز ، شکلات نوتلا",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:00:06.094Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:43:20.132Z"
+ },
+ "__v": 0,
+ "image": "food_1733179238571.png"
+},
+{
+ "_id": {
+ "$oid": "6731b9afc3c0100063e6e115"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " رست نات فروتی نوتلا",
+ "description": "یک عدد دونات رست شده ، موز ، توت فرنگی ، شکلات نوتلا،خلال بادام ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:00:47.315Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:43:13.595Z"
+ },
+ "__v": 0,
+ "image": "food_1733179754391.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb29c3c0100063e6e122"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک",
+ "description": "یک عدد دونات شکلات همراه با تکه های کیک شکلاتی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:07:05.297Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:11:44.015Z"
+ },
+ "__v": 0,
+ "image": "food_1733179332686.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb40c3c0100063e6e12c"
+ },
+ "price": 970000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیگمنت",
+ "description": "یک عدد دونات شکلاتی همراه با ترافل",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:07:28.783Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:10:24.211Z"
+ },
+ "__v": 0,
+ "image": "food_1733179444761.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb57c3c0100063e6e136"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسمارتین",
+ "description": "یک عدد دونات با روکش شکلات موز همراه با اسمارتیز",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:07:51.634Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:09:46.083Z"
+ },
+ "__v": 0,
+ "image": "food_1733179690846.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb6dc3c0100063e6e140"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گلوبال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:08:13.127Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T19:01:51.636Z"
+ },
+ "__v": 0,
+ "image": "food_1733179479179.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb7dc3c0100063e6e14a"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاولی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:08:29.120Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:17:14.112Z"
+ },
+ "__v": 0,
+ "image": "food_1733179728101.png"
+},
+{
+ "_id": {
+ "$oid": "6731bb8ec3c0100063e6e154"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیلو",
+ "description": "یک عدد دونات شکلات ساده همراه با کورن فلکس بالشتی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b00bc3c0100063e6ded4"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:08:46.204Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T19:12:08.109Z"
+ },
+ "__v": 0,
+ "image": "food_1733178577704.png"
+},
+{
+ "_id": {
+ "$oid": "6731bbaec3c0100063e6e15e"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات پسته",
+ "description": "یک عدد دونات با روکش شکلات شیری همراه با پودر پسته ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:09:18.668Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T11:12:04.175Z"
+ },
+ "__v": 0,
+ "image": "food_1733178624247.png"
+},
+{
+ "_id": {
+ "$oid": "6731bbc4c3c0100063e6e168"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات کنجد",
+ "description": "یک عدد دونات شکلات ساده همراه با کنجد ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:09:40.753Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:23:09.699Z"
+ },
+ "__v": 0,
+ "image": "food_1733178650347.png"
+},
+{
+ "_id": {
+ "$oid": "6731bbdcc3c0100063e6e172"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میکس ناتس",
+ "description": "یک عدد دونات شکلاتی همراه با مغزیجات",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:10:04.384Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:24:02.770Z"
+ },
+ "__v": 0,
+ "image": "food_1733178679557.png"
+},
+{
+ "_id": {
+ "$oid": "6731bbf2c3c0100063e6e17c"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام هندی",
+ "description": "یک عدد دونات شکلات ، بادام هندی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:10:26.307Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-02T22:31:48.362Z"
+ },
+ "__v": 0,
+ "image": "food_1733178707024.png"
+},
+{
+ "_id": {
+ "$oid": "6731bc0fc3c0100063e6e186"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "فندق",
+ "description": "یک عدد دونات شکلات ، فندوق تکه شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:10:55.642Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:56:02.062Z"
+ },
+ "__v": 0,
+ "image": "food_1733178735904.png"
+},
+{
+ "_id": {
+ "$oid": "6731bc1fc3c0100063e6e190"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گردو",
+ "description": "یک عدد دونات شکلا ساده همراه با گردو ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:11:11.788Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:53:48.124Z"
+ },
+ "__v": 0,
+ "image": "food_1733178755505.png"
+},
+{
+ "_id": {
+ "$oid": "6731bc2ec3c0100063e6e19a"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادام",
+ "description": "یک عدد دونات شکلات ساده همراه با خلال بادام ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b044c3c0100063e6def2"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:11:26.745Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:22:10.808Z"
+ },
+ "__v": 0,
+ "image": "food_1733178778940.png"
+},
+{
+ "_id": {
+ "$oid": "6731bc44c3c0100063e6e1a4"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوتوس",
+ "description": "یک عدد دونات برش خورده ، شکلات شیری ، بیسکویت لوتوس خورد شده و کامل ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:11:48.193Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:49:44.021Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731bccbc3c0100063e6e1be"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوتونی",
+ "description": "یک عدد دونات برش خورده ۸ تکه همراه با خامه و سس شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:14:03.341Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:34:08.582Z"
+ },
+ "__v": 0,
+ "image": "food_1733178810557.png"
+},
+{
+ "_id": {
+ "$oid": "6731bce3c3c0100063e6e1c8"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شوکوفال",
+ "description": "یک عدد دونات برش خورده 8 تکه ، شات شکلات شیرین ، شات خامه ، شات ژله ، شات اسمارتیز",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:14:27.228Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:51:08.455Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731bcfcc3c0100063e6e1d5"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فروتی نوتلا",
+ "description": "یک عدد دونات برش خورده 8 تکه ، موز ، توت فرنگی ، شکلات نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:14:52.249Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:52:27.906Z"
+ },
+ "__v": 0,
+ "image": "food_1733178833313.png"
+},
+{
+ "_id": {
+ "$oid": "6731bd15c3c0100063e6e1df"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل",
+ "description": "یک عدد دونات برش خورده ، کارامل ، خلال بادام ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b01ac3c0100063e6dedd"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:15:17.465Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:47:48.871Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731bd49c3c0100063e6e1f3"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شکلات پسته",
+ "description": "یک عدد دونات برش خورده ،شکلات شیرین، پودر پسته ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b030c3c0100063e6dee6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:16:09.572Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T11:13:08.980Z"
+ },
+ "__v": 0,
+ "image": "food_1733211567462.png"
+},
+{
+ "_id": {
+ "$oid": "6731bd68c3c0100063e6e1fd"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل فندق",
+ "description": "یک عدد دونات برش خورده ، کارامل ، فندوق آسیاب شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b030c3c0100063e6dee6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:16:40.041Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:44:16.062Z"
+ },
+ "__v": 0,
+ "image": "food_1733179996739.png"
+},
+{
+ "_id": {
+ "$oid": "6731bd82c3c0100063e6e207"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تگرال",
+ "description": "یک عدد دونات برش خورده ، شکلات شیری ، کیک شکلاتی پودر شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b030c3c0100063e6dee6"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:17:06.370Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:38:19.492Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6731bd96c3c0100063e6e211"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فروت",
+ "description": "یک عدد دونات برش خورده ، موز ، توت فرنگی ، شکلات شیرین",
+ "short_description": "",
+ "category": {
+ "$oid": "6731b030c3c0100063e6dee6"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-11T08:17:26.261Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:05:02.944Z"
+ },
+ "__v": 0,
+ "image": "food_1733179971176.png"
+},
+{
+ "_id": {
+ "$oid": "67333d51c3c0100063e70823"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا استیک",
+ "description": "ﻓﯿﻠﻪ \u0000گوﺳﺎﻟﻪ \u0000گرﯾﻞ ﺷﺪه",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731411277692.png",
+ "created_at": {
+ "$date": "2024-11-12T11:34:41.379Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:27:16.023Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333eb8c3c0100063e70866"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731411636704.png",
+ "created_at": {
+ "$date": "2024-11-12T11:40:40.809Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:27:00.916Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333f00c3c0100063e70870"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:41:52.856Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:26:34.090Z"
+ },
+ "__v": 0,
+ "image": "food_1731411735773.png"
+},
+{
+ "_id": {
+ "$oid": "67333f75c3c0100063e7088d"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا تاکو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731411826143.png",
+ "created_at": {
+ "$date": "2024-11-12T11:43:49.342Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:24:03.366Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67333fc5c3c0100063e7089a"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا سبزیجات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731411906820.png",
+ "created_at": {
+ "$date": "2024-11-12T11:45:09.863Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:23:42.981Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334019c3c0100063e708a7"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پپرونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338bec3c0100063e706d0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731411990084.png",
+ "created_at": {
+ "$date": "2024-11-12T11:46:33.951Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:23:20.299Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733407fc3c0100063e708cd"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731412092522.png",
+ "created_at": {
+ "$date": "2024-11-12T11:48:15.902Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:30:14.533Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673340b5c3c0100063e708e6"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قارچ برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731412145634.png",
+ "created_at": {
+ "$date": "2024-11-12T11:49:09.593Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:29:54.477Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334103c3c0100063e708f3"
+ },
+ "price": 4350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوبل برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731412222935.png",
+ "created_at": {
+ "$date": "2024-11-12T11:50:27.326Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:29:29.126Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733414bc3c0100063e7090b"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزبرگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731412297126.png",
+ "created_at": {
+ "$date": "2024-11-12T11:51:39.815Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:29:05.858Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334183c3c0100063e70915"
+ },
+ "price": 3600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رویال برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:52:35.073Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:28:19.021Z"
+ },
+ "__v": 0,
+ "image": "food_1731412378414.png"
+},
+{
+ "_id": {
+ "$oid": "67334216c3c0100063e7092f"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731412496429.png",
+ "created_at": {
+ "$date": "2024-11-12T11:55:02.134Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:27:59.429Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733423cc3c0100063e7093c"
+ },
+ "price": 2650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن برگر با قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673338dbc3c0100063e706e2"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:55:40.556Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:27:39.095Z"
+ },
+ "__v": 0,
+ "image": "food_1731412559712.png"
+},
+{
+ "_id": {
+ "$oid": "67334295c3c0100063e70956"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا پنه آلفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333909c3c0100063e706f7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:57:09.991Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:31:00.374Z"
+ },
+ "__v": 0,
+ "image": "food_1731412728968.png"
+},
+{
+ "_id": {
+ "$oid": "673342b6c3c0100063e70965"
+ },
+ "price": 2470000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا آرابیتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333909c3c0100063e706f7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T11:57:42.269Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:39:21.938Z"
+ },
+ "__v": 0,
+ "image": "food_1731412794164.png"
+},
+{
+ "_id": {
+ "$oid": "6733451cc3c0100063e70a01"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T12:07:56.577Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:50:39.708Z"
+ },
+ "__v": 0,
+ "image": "food_1732981239945.png"
+},
+{
+ "_id": {
+ "$oid": "67334563c3c0100063e70a1f"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب با قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413339741.png",
+ "created_at": {
+ "$date": "2024-11-12T12:09:07.373Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:51:25.867Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673345a3c3c0100063e70a35"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی ویژه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413407048.png",
+ "created_at": {
+ "$date": "2024-11-12T12:10:11.918Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:51:53.654Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673345e3c3c0100063e70a50"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با سس الفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413473719.png",
+ "created_at": {
+ "$date": "2024-11-12T12:11:15.638Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:32:33.114Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733461fc3c0100063e70a5a"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی با سس چدار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413532205.png",
+ "created_at": {
+ "$date": "2024-11-12T12:12:15.879Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:21:36.645Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6733464bc3c0100063e70a75"
+ },
+ "price": 2900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T12:12:59.210Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:31:56.196Z"
+ },
+ "__v": 0,
+ "image": "food_1732981174286.png"
+},
+{
+ "_id": {
+ "$oid": "67334681c3c0100063e70a85"
+ },
+ "price": 550000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کلم ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413627560.png",
+ "created_at": {
+ "$date": "2024-11-12T12:13:53.671Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-17T17:08:04.259Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673346e5c3c0100063e70aae"
+ },
+ "price": 3400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد شف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-12T12:15:33.085Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:53:19.940Z"
+ },
+ "__v": 0,
+ "image": "food_1732980912025.png"
+},
+{
+ "_id": {
+ "$oid": "67334712c3c0100063e70ab8"
+ },
+ "price": 385000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد فصل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413776749.png",
+ "created_at": {
+ "$date": "2024-11-12T12:16:18.731Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:17:55.093Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334754c3c0100063e70ada"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماست موسیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413843112.png",
+ "created_at": {
+ "$date": "2024-11-12T12:17:24.714Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:20:10.090Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334783c3c0100063e70ae7"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیتون شور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413888957.png",
+ "created_at": {
+ "$date": "2024-11-12T12:18:11.570Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:17:26.123Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673347a6c3c0100063e70af1"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیتون پرورده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413923790.png",
+ "created_at": {
+ "$date": "2024-11-12T12:18:46.005Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-17T17:11:29.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673347c9c3c0100063e70afb"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ژله بستنی ۴نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413957375.png",
+ "created_at": {
+ "$date": "2024-11-12T12:19:21.999Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-30T19:11:15.532Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673347f0c3c0100063e70b05"
+ },
+ "price": 440000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ژله بستنی تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731413996457.png",
+ "created_at": {
+ "$date": "2024-11-12T12:20:00.113Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-17T17:04:58.222Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673348b3c3c0100063e70b18"
+ },
+ "price": 428000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414193558.png",
+ "created_at": {
+ "$date": "2024-11-12T12:23:15.186Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:00:56.139Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673348c8c3c0100063e70b22"
+ },
+ "price": 428000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414213873.png",
+ "created_at": {
+ "$date": "2024-11-12T12:23:36.584Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:01:11.442Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673348e4c3c0100063e70b2c"
+ },
+ "price": 428000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414243110.png",
+ "created_at": {
+ "$date": "2024-11-12T12:24:04.735Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:01:29.249Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673348fcc3c0100063e70b36"
+ },
+ "price": 428000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیرو قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414267628.png",
+ "created_at": {
+ "$date": "2024-11-12T12:24:28.699Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:01:55.333Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334913c3c0100063e70b40"
+ },
+ "price": 221000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا بطری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414291175.png",
+ "created_at": {
+ "$date": "2024-11-12T12:24:51.663Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:02:40.715Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334928c3c0100063e70b4a"
+ },
+ "price": 221000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا بطری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414311705.png",
+ "created_at": {
+ "$date": "2024-11-12T12:25:12.662Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:04:27.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334940c3c0100063e70b54"
+ },
+ "price": 221000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت بطری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414334741.png",
+ "created_at": {
+ "$date": "2024-11-12T12:25:36.221Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:03:15.934Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334959c3c0100063e70b5e"
+ },
+ "price": 313000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر هلو قوطی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414358764.png",
+ "created_at": {
+ "$date": "2024-11-12T12:26:01.159Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:32:01.245Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334972c3c0100063e70b68"
+ },
+ "price": 344000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر قوطی لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414383446.png",
+ "created_at": {
+ "$date": "2024-11-12T12:26:26.494Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:31:28.997Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334992c3c0100063e70b72"
+ },
+ "price": 344000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر قوطی استوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414416539.png",
+ "created_at": {
+ "$date": "2024-11-12T12:26:58.608Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T17:31:05.069Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673349a9c3c0100063e70b7c"
+ },
+ "price": 240000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلستر قوطی اناناس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414437905.png",
+ "created_at": {
+ "$date": "2024-11-12T12:27:21.629Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-30T19:29:59.577Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673349bfc3c0100063e70b86"
+ },
+ "price": 340000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد شیشه ای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414461946.png",
+ "created_at": {
+ "$date": "2024-11-12T12:27:43.718Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:59:00.743Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673349ecc3c0100063e70b90"
+ },
+ "price": 270000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414507415.png",
+ "created_at": {
+ "$date": "2024-11-12T12:28:28.686Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:58:35.296Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334a00c3c0100063e70b9a"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب معدنی کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414527513.png",
+ "created_at": {
+ "$date": "2024-11-12T12:28:48.483Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:57:48.425Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67334a16c3c0100063e70ba4"
+ },
+ "price": 160000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب معدنی بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6733394bc3c0100063e7070f"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731414548792.png",
+ "created_at": {
+ "$date": "2024-11-12T12:29:10.455Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:57:31.904Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67337949c3c0100063e70efc"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "644e450498ff3c7414411176"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "image": "food_1731426631526.png",
+ "created_at": {
+ "$date": "2024-11-12T15:50:33.708Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T11:00:49.820Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67387217c3c0100063e7af26"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس چاکلت ",
+ "description": "شیر ، پودر شکلات ، یخ ، سیروپ نعنا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T10:21:11.239Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:46:24.071Z"
+ },
+ "__v": 0,
+ "image": "food_1731756734489.png"
+},
+{
+ "_id": {
+ "$oid": "673872aec3c0100063e7af37"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته فندق ",
+ "description": "شیر،اسپرسو 50/50 ، یخ ، سیروپ فندق ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305938c3c0100063e6bcc0"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T10:23:42.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:46:54.327Z"
+ },
+ "__v": 0,
+ "image": "food_1731760524883.png"
+},
+{
+ "_id": {
+ "$oid": "67387defc3c0100063e7b139"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات نوتلا",
+ "description": "یک عدد دونات رست شده ، موز ، نوتلا ، پودر فندق",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:11:43.462Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:42:05.702Z"
+ },
+ "__v": 0,
+ "image": "food_1733178896471.png"
+},
+{
+ "_id": {
+ "$oid": "67387e3ec3c0100063e7b15e"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات لوتوس",
+ "description": "یک عدد دونات شیری ، بیسکویت لوتوس",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:13:02.514Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:33:57.822Z"
+ },
+ "__v": 0,
+ "image": "food_1731757253386.png"
+},
+{
+ "_id": {
+ "$oid": "67387e7ac3c0100063e7b16c"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات دبل چاکلت",
+ "description": "یک عدد دونات تمام شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:14:02.850Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:24:08.865Z"
+ },
+ "__v": 0,
+ "image": "food_1733180317775.png"
+},
+{
+ "_id": {
+ "$oid": "67387ea9c3c0100063e7b176"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات موز",
+ "description": "یک عدد دونات با روکش شکلات موزی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:14:49.713Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:22:42.288Z"
+ },
+ "__v": 0,
+ "image": "food_1731757165838.png"
+},
+{
+ "_id": {
+ "$oid": "67387f0ac3c0100063e7b183"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیسکو بستنی",
+ "description": "بستنی وانیل ، پودر بیسکویت لوتوس ، خامه",
+ "short_description": "",
+ "category": {
+ "$oid": "673058c5c3c0100063e6bca5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:16:26.890Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:33:15.660Z"
+ },
+ "__v": 0,
+ "image": "food_1731785589735.png"
+},
+{
+ "_id": {
+ "$oid": "67387fdac3c0100063e7b19c"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات موکا",
+ "description": "یک عدد دونات دارک ، پودر قهوه فوری ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:19:54.683Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:22:00.280Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67387ffec3c0100063e7b1a9"
+ },
+ "price": 960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شوکودونات",
+ "description": "یک عدد دونات شکلات ، شوکورول",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af92c3c0100063e6deb0"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:20:30.868Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:21:16.052Z"
+ },
+ "__v": 0,
+ "image": "food_1731756902912.png"
+},
+{
+ "_id": {
+ "$oid": "6738803bc3c0100063e7b1b3"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "شیرپرچرب ، سیروپ شکلات ، اسپرسو 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:21:31.708Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:39:36.282Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6738806dc3c0100063e7b1c1"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو عربیکا",
+ "description": "یک شات اسپرسو ۱۰۰ درصد عربیکا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306405c3c0100063e6bf3f"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T11:22:21.239Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-02T18:37:04.941Z"
+ },
+ "__v": 0,
+ "image": "food_1733178537171.png"
+},
+{
+ "_id": {
+ "$oid": "67388436c3c0100063e7b288"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس",
+ "description": "3اسکوپ بستنی وانیل ، شیر پرچرب ، کرم لوتوس ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1731757109397.png",
+ "created_at": {
+ "$date": "2024-11-16T11:38:30.533Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:35:38.821Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67388ccdc3c0100063e7b327"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لقمه کره بادام زمینی همراه با آیس کافی ",
+ "description": "۲ جفت ، نان جو، کره بادام زمینی مرغوب ،موز، آیس کافی (دلخواه)",
+ "short_description": "",
+ "category": {
+ "$oid": "67388c44c3c0100063e7b31a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1731759308900.png",
+ "created_at": {
+ "$date": "2024-11-16T12:15:09.751Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-09T12:32:47.784Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67388d0dc3c0100063e7b334"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لقمه نوتلا همراه با آیس کافی",
+ "description": "۲ جفت ، نان جو، نوتلا ،موز، آیس کافی (دلخواه)",
+ "short_description": "",
+ "category": {
+ "$oid": "67388c44c3c0100063e7b31a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1731759372412.png",
+ "created_at": {
+ "$date": "2024-11-16T12:16:13.359Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-09T12:32:20.696Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67388ebbc3c0100063e7b3c9"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر خامه",
+ "description": "یک عدد دونات برش خورده ، خامه قنادی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T12:23:23.807Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:29:26.098Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6738f301c3c0100063e7c4cd"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز کارامل",
+ "description": "۳ اسکوپ بستنی وانیل ، موز تازه ، کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T19:31:13.676Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:34:59.451Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6738f44fc3c0100063e7c53f"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر بستنی",
+ "description": "دونات برش خورده ، بستنی شکلاتی ، سس شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T19:36:47.516Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:28:00.619Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6738f491c3c0100063e7c54c"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر بستنی لوتوس",
+ "description": "دونات برش خورده ، بستنی لوتوس ، بیسکویت لوتوس",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T19:37:53.456Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:26:04.549Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6738f4d1c3c0100063e7c559"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کندی دونات",
+ "description": "یک عدد دونات شکلات ، آبنبات چوبی ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af7fc3c0100063e6de9e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-16T19:38:57.623Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-04T09:34:08.323Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739ac8cc3c0100063e7ceb3"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:42:52.971Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:19:06.919Z"
+ },
+ "__v": 0,
+ "image": "food_1731839915863.png"
+},
+{
+ "_id": {
+ "$oid": "6739acb2c3c0100063e7cebd"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:43:30.429Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:18:47.858Z"
+ },
+ "__v": 0,
+ "image": "food_1731839980535.png"
+},
+{
+ "_id": {
+ "$oid": "6739acf0c3c0100063e7ced4"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:44:32.207Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:18:27.672Z"
+ },
+ "__v": 0,
+ "image": "food_1731840146230.png"
+},
+{
+ "_id": {
+ "$oid": "6739ad35c3c0100063e7cede"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:45:41.250Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:17:55.730Z"
+ },
+ "__v": 0,
+ "image": "food_1731840047857.png"
+},
+{
+ "_id": {
+ "$oid": "6739ad5cc3c0100063e7cee8"
+ },
+ "price": 1340000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "بابل آیس لته کاراملی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:46:20.492Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:17:31.359Z"
+ },
+ "__v": 0,
+ "image": "food_1731840082007.png"
+},
+{
+ "_id": {
+ "$oid": "6739ad80c3c0100063e7cef2"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کافه گلاسه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:46:56.362Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T10:41:55.371Z"
+ },
+ "__v": 0,
+ "image": "food_1731840114012.png"
+},
+{
+ "_id": {
+ "$oid": "6739adacc3c0100063e7cefc"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ماچا لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:47:40.453Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:16:52.680Z"
+ },
+ "__v": 0,
+ "image": "food_1731840179642.png"
+},
+{
+ "_id": {
+ "$oid": "6739adcec3c0100063e7cf0f"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339e4c3c0100063e70769"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-17T08:48:14.350Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:16:25.040Z"
+ },
+ "__v": 0,
+ "image": "food_1731840216807.png"
+},
+{
+ "_id": {
+ "$oid": "6739d1d4c3c0100063e7d381"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731842514051.png",
+ "created_at": {
+ "$date": "2024-11-17T11:21:56.024Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:28:40.023Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d21dc3c0100063e7d3a1"
+ },
+ "price": 780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731842589131.png",
+ "created_at": {
+ "$date": "2024-11-17T11:23:09.894Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:23:09.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d26cc3c0100063e7d3b8"
+ },
+ "price": 820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731842666471.png",
+ "created_at": {
+ "$date": "2024-11-17T11:24:28.322Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:24:28.322Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d2a4c3c0100063e7d3c5"
+ },
+ "price": 840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731842722244.png",
+ "created_at": {
+ "$date": "2024-11-17T11:25:24.220Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:25:24.220Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d327c3c0100063e7d3d8"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731842854030.png",
+ "created_at": {
+ "$date": "2024-11-17T11:27:35.686Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:27:35.686Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d4a3c3c0100063e7d3e8"
+ },
+ "price": 1190001,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731843233734.png",
+ "created_at": {
+ "$date": "2024-11-17T11:33:55.558Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:25:35.140Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d4d4c3c0100063e7d3f2"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه دمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731843283042.png",
+ "created_at": {
+ "$date": "2024-11-17T11:34:44.662Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:24:54.225Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d5e3c3c0100063e7d412"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نسکافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731843554862.png",
+ "created_at": {
+ "$date": "2024-11-17T11:39:15.892Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:29:49.893Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d73ec3c0100063e7d444"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ اضافه(نارگیل- وانیل- آیریش- فندق- کارامل- شکلات)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6739d6d7c3c0100063e7d422"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731843901508.png",
+ "created_at": {
+ "$date": "2024-11-17T11:45:02.675Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:45:02.675Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d7aac3c0100063e7d451"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر غیر لبنی( بادام- فندق- سویا- گاومیش- بدون لاکتوز)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6739d6d7c3c0100063e7d422"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844009732.png",
+ "created_at": {
+ "$date": "2024-11-17T11:46:50.835Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:46:50.835Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d800c3c0100063e7d464"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قهوه ۱۰۰ عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844095978.png",
+ "created_at": {
+ "$date": "2024-11-17T11:48:16.575Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:23:46.164Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d82ec3c0100063e7d471"
+ },
+ "price": 1100000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": false,
+ "name": "قهوه بدون کافئین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333983c3c0100063e7072e"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844139530.png",
+ "created_at": {
+ "$date": "2024-11-17T11:49:02.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:28:03.155Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d93bc3c0100063e7d49c"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قوری چای تی بگ دو نفره+ نبات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844409966.png",
+ "created_at": {
+ "$date": "2024-11-17T11:53:31.806Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-30T19:08:45.163Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d960c3c0100063e7d4a6"
+ },
+ "price": 250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قوری چای تی بگ دو نفره + قند",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844447354.png",
+ "created_at": {
+ "$date": "2024-11-17T11:54:08.973Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-30T19:08:17.292Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d98fc3c0100063e7d4bc"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قوری چای دمی تک نفره ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844493317.png",
+ "created_at": {
+ "$date": "2024-11-17T11:54:55.093Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:21:40.467Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d9aec3c0100063e7d4c9"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "قوری چای دمی دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844524655.png",
+ "created_at": {
+ "$date": "2024-11-17T11:55:26.226Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:21:22.564Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739d9dec3c0100063e7d4d3"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844572185.png",
+ "created_at": {
+ "$date": "2024-11-17T11:56:14.589Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:56:14.589Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739da03c3c0100063e7d4dd"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844608662.png",
+ "created_at": {
+ "$date": "2024-11-17T11:56:51.016Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:56:51.016Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739da24c3c0100063e7d4e7"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844642144.png",
+ "created_at": {
+ "$date": "2024-11-17T11:57:24.063Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:57:24.063Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739da47c3c0100063e7d4f4"
+ },
+ "price": 570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844677728.png",
+ "created_at": {
+ "$date": "2024-11-17T11:57:59.833Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:57:59.833Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739da6fc3c0100063e7d50a"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های ترش تک نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844716456.png",
+ "created_at": {
+ "$date": "2024-11-17T11:58:39.298Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:58:39.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739da97c3c0100063e7d514"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های ترش دونفره ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844756865.png",
+ "created_at": {
+ "$date": "2024-11-17T11:59:19.671Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:59:19.671Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739dabbc3c0100063e7d51e"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های شیرین تک نفره ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844791962.png",
+ "created_at": {
+ "$date": "2024-11-17T11:59:55.754Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-17T11:59:55.754Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739daebc3c0100063e7d534"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میوه های شیرین دونفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844840101.png",
+ "created_at": {
+ "$date": "2024-11-17T12:00:43.440Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:20:25.476Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739db0dc3c0100063e7d53e"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844875467.png",
+ "created_at": {
+ "$date": "2024-11-17T12:01:17.433Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:19:56.658Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739db2cc3c0100063e7d548"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333964c3c0100063e7071c"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731844907633.png",
+ "created_at": {
+ "$date": "2024-11-17T12:01:48.144Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:19:39.189Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739dd96c3c0100063e7d5a9"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339afc3c0100063e7074b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845522341.png",
+ "created_at": {
+ "$date": "2024-11-17T12:12:06.657Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:55:43.978Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739ddfac3c0100063e7d5e4"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339afc3c0100063e7074b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845623466.png",
+ "created_at": {
+ "$date": "2024-11-17T12:13:46.769Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:55:26.094Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739de1ac3c0100063e7d5f1"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت بهار نارنج ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339afc3c0100063e7074b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845654713.png",
+ "created_at": {
+ "$date": "2024-11-17T12:14:18.582Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:55:08.568Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739de3cc3c0100063e7d5fb"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673339afc3c0100063e7074b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845691173.png",
+ "created_at": {
+ "$date": "2024-11-17T12:14:52.834Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:54:21.753Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739dec5c3c0100063e7d613"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب هویج بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845826747.png",
+ "created_at": {
+ "$date": "2024-11-17T12:17:09.928Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:20:08.006Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739dee5c3c0100063e7d61d"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "طالبی بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845859178.png",
+ "created_at": {
+ "$date": "2024-11-17T12:17:41.172Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:19:42.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739df04c3c0100063e7d62a"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انبه بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845890478.png",
+ "created_at": {
+ "$date": "2024-11-17T12:18:12.008Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:19:06.136Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739df23c3c0100063e7d63d"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توت بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845921498.png",
+ "created_at": {
+ "$date": "2024-11-17T12:18:43.142Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:17:49.645Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739df50c3c0100063e7d64d"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شاتوت بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a14c3c0100063e70775"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731845967183.png",
+ "created_at": {
+ "$date": "2024-11-17T12:19:28.151Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:05:17.039Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e01ac3c0100063e7d657"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر موز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846168393.png",
+ "created_at": {
+ "$date": "2024-11-17T12:22:50.613Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:35:58.989Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e0a1c3c0100063e7d661"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846303557.png",
+ "created_at": {
+ "$date": "2024-11-17T12:25:05.052Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:35:17.143Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e0f2c3c0100063e7d66b"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر پسته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846384825.png",
+ "created_at": {
+ "$date": "2024-11-17T12:26:26.576Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:33:46.053Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e148c3c0100063e7d675"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر موز انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846470584.png",
+ "created_at": {
+ "$date": "2024-11-17T12:27:52.719Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:33:24.889Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e171c3c0100063e7d682"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر موز خرما",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846511022.png",
+ "created_at": {
+ "$date": "2024-11-17T12:28:33.341Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:21:40.772Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e1b7c3c0100063e7d68c"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر موز شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846579935.png",
+ "created_at": {
+ "$date": "2024-11-17T12:29:43.207Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:21:18.409Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6739e1fac3c0100063e7d69c"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر موز قهوه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a30c3c0100063e70787"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1731846648318.png",
+ "created_at": {
+ "$date": "2024-11-17T12:30:50.630Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:20:38.697Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673c9cb5c3c0100063e81e5d"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6693d234136cc10070469538"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "created_at": {
+ "$date": "2024-11-19T14:12:05.984Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-19T16:21:22.669Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9664c3c0100063e8383c"
+ },
+ "price": 400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب هویج",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732089438973.png",
+ "created_at": {
+ "$date": "2024-11-20T07:57:24.086Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T18:22:09.552Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9697c3c0100063e8384c"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب طالبی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732089491149.png",
+ "created_at": {
+ "$date": "2024-11-20T07:58:15.175Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-20T07:58:15.175Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d96cbc3c0100063e83856"
+ },
+ "price": 440000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب هندوانه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732089545598.png",
+ "created_at": {
+ "$date": "2024-11-20T07:59:07.843Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T18:20:57.290Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9aeac3c0100063e8389f"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب پرتقال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732090599736.png",
+ "created_at": {
+ "$date": "2024-11-20T08:16:42.344Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T18:20:01.443Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9b19c3c0100063e838af"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب انار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732090646560.png",
+ "created_at": {
+ "$date": "2024-11-20T08:17:29.490Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-18T18:19:40.669Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9b60c3c0100063e838bc"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب اناناس ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732090716302.png",
+ "created_at": {
+ "$date": "2024-11-20T08:18:40.227Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:48:23.040Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9b92c3c0100063e838d2"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732090768365.png",
+ "created_at": {
+ "$date": "2024-11-20T08:19:30.176Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:48:03.069Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9dbfc3c0100063e83942"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب شاتوت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091322530.png",
+ "created_at": {
+ "$date": "2024-11-20T08:28:47.448Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:46:43.287Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9dfac3c0100063e8394c"
+ },
+ "price": 880000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب سیب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333bbfc3c0100063e707cc"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091384413.png",
+ "created_at": {
+ "$date": "2024-11-20T08:29:46.457Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T15:48:43.697Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9e37c3c0100063e83962"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "انبه اناناس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091444892.png",
+ "created_at": {
+ "$date": "2024-11-20T08:30:47.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:15:29.781Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673d9fd2c3c0100063e83984"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موز انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091854953.png",
+ "created_at": {
+ "$date": "2024-11-20T08:37:38.133Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:15:06.672Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da01ec3c0100063e83991"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرتقال انار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091930952.png",
+ "created_at": {
+ "$date": "2024-11-20T08:38:54.653Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-20T08:38:54.653Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da042c3c0100063e8399e"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "توت شاتوت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732091967969.png",
+ "created_at": {
+ "$date": "2024-11-20T08:39:30.449Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-20T08:39:30.449Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da075c3c0100063e839a8"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اب انبه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092020362.png",
+ "created_at": {
+ "$date": "2024-11-20T08:40:21.829Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-19T16:14:32.184Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da0a6c3c0100063e839bb"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرتقال انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333c39c3c0100063e707d5"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092066831.png",
+ "created_at": {
+ "$date": "2024-11-20T08:41:10.642Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-20T08:41:10.642Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da0fbc3c0100063e839d7"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092152836.png",
+ "created_at": {
+ "$date": "2024-11-20T08:42:35.564Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:45:34.789Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da14cc3c0100063e839e8"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092233333.png",
+ "created_at": {
+ "$date": "2024-11-20T08:43:56.873Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:45:09.312Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da283c3c0100063e83a24"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092544878.png",
+ "created_at": {
+ "$date": "2024-11-20T08:49:07.676Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:44:38.979Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da2a7c3c0100063e83a2e"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک اورئو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092580168.png",
+ "created_at": {
+ "$date": "2024-11-20T08:49:43.138Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:37:30.909Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da2d8c3c0100063e83a38"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک انبه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092629927.png",
+ "created_at": {
+ "$date": "2024-11-20T08:50:32.227Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:36:51.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da334c3c0100063e83a5d"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس پک ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333a53c3c0100063e70790"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732092722313.png",
+ "created_at": {
+ "$date": "2024-11-20T08:52:05.020Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T18:36:25.671Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da480c3c0100063e83ac5"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da3fbc3c0100063e83a7a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T08:57:36.307Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-05T17:49:20.270Z"
+ },
+ "__v": 0,
+ "image": "food_1732980656070.png"
+},
+{
+ "_id": {
+ "$oid": "673da4a1c3c0100063e83ae4"
+ },
+ "price": 950000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک شکلاتی دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da3fbc3c0100063e83a7a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T08:58:09.940Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-17T16:57:44.077Z"
+ },
+ "__v": 0,
+ "image": "food_1732980434978.png"
+},
+{
+ "_id": {
+ "$oid": "673da4bbc3c0100063e83afa"
+ },
+ "price": 950000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک لوتوس دو نفره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da3fbc3c0100063e83a7a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T08:58:35.720Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-17T16:57:30.916Z"
+ },
+ "__v": 0,
+ "image": "food_1732979733603.png"
+},
+{
+ "_id": {
+ "$oid": "673da873c3c0100063e83bf8"
+ },
+ "price": 4650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک چنجه ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:14:27.006Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:22:50.016Z"
+ },
+ "__v": 0,
+ "image": "food_1732979580830.png"
+},
+{
+ "_id": {
+ "$oid": "673da8a9c3c0100063e83c05"
+ },
+ "price": 4450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک برگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094118572.png",
+ "created_at": {
+ "$date": "2024-11-20T09:15:21.939Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:22:16.193Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da8d2c3c0100063e83c0f"
+ },
+ "price": 5500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک سلطانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094158201.png",
+ "created_at": {
+ "$date": "2024-11-20T09:16:02.346Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:21:31.099Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da8f8c3c0100063e83c2b"
+ },
+ "price": 3450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک بختیاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094195105.png",
+ "created_at": {
+ "$date": "2024-11-20T09:16:40.324Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:21:00.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da91cc3c0100063e83c3b"
+ },
+ "price": 4800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094233214.png",
+ "created_at": {
+ "$date": "2024-11-20T09:17:16.042Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:20:34.366Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673da95dc3c0100063e83c59"
+ },
+ "price": 3300000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب نگینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:18:21.257Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:20:07.035Z"
+ },
+ "__v": 0,
+ "image": "food_1732974433427.png"
+},
+{
+ "_id": {
+ "$oid": "673da9a3c3c0100063e83c66"
+ },
+ "price": 2500000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب لبنانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:19:31.367Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:19:40.258Z"
+ },
+ "__v": 0,
+ "image": "food_1732974297311.png"
+},
+{
+ "_id": {
+ "$oid": "673da9c4c3c0100063e83c70"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کوبیده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:20:04.980Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:19:09.740Z"
+ },
+ "__v": 0,
+ "image": "food_1732974212826.png"
+},
+{
+ "_id": {
+ "$oid": "673da9e8c3c0100063e83c80"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب تک سیخ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094438499.png",
+ "created_at": {
+ "$date": "2024-11-20T09:20:40.661Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:18:46.840Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673daa13c3c0100063e83c96"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب سه سیخ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:21:23.653Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:18:23.009Z"
+ },
+ "__v": 0,
+ "image": "food_1732362637401.png"
+},
+{
+ "_id": {
+ "$oid": "673daa3dc3c0100063e83ca6"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک میکس ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094523215.png",
+ "created_at": {
+ "$date": "2024-11-20T09:22:05.540Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:17:43.403Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673daa63c3c0100063e83cc5"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک میکس مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094560339.png",
+ "created_at": {
+ "$date": "2024-11-20T09:22:43.532Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:17:08.754Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673daa8ec3c0100063e83cd8"
+ },
+ "price": 8250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک شیشلیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094603053.png",
+ "created_at": {
+ "$date": "2024-11-20T09:23:26.458Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:16:33.737Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673daaa3c3c0100063e83ce5"
+ },
+ "price": 2050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:23:47.706Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:15:49.653Z"
+ },
+ "__v": 0,
+ "image": "food_1732726476100.png"
+},
+{
+ "_id": {
+ "$oid": "673daabbc3c0100063e83cef"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:24:11.827Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:15:18.979Z"
+ },
+ "__v": 0,
+ "image": "food_1732726584156.png"
+},
+{
+ "_id": {
+ "$oid": "673daae5c3c0100063e83cf9"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه حلزونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094690877.png",
+ "created_at": {
+ "$date": "2024-11-20T09:24:53.136Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:14:55.301Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dab05c3c0100063e83d03"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه نارسیس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:25:25.266Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:14:34.027Z"
+ },
+ "__v": 0,
+ "image": "food_1732727015511.png"
+},
+{
+ "_id": {
+ "$oid": "673dab2bc3c0100063e83d1d"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه نگینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:26:03.556Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:14:01.768Z"
+ },
+ "__v": 0,
+ "image": "food_1732727091606.png"
+},
+{
+ "_id": {
+ "$oid": "673dab4bc3c0100063e83d39"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک ماهی کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732094792449.png",
+ "created_at": {
+ "$date": "2024-11-20T09:26:35.913Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:13:22.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dab6dc3c0100063e83d52"
+ },
+ "price": 3250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب شالتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:27:09.763Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:12:52.035Z"
+ },
+ "__v": 0,
+ "image": "food_1732973739516.png"
+},
+{
+ "_id": {
+ "$oid": "673dab8ac3c0100063e83d5c"
+ },
+ "price": 5550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک کباب مصری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 21,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:27:38.946Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:12:31.139Z"
+ },
+ "__v": 0,
+ "image": "food_1732973812554.png"
+},
+{
+ "_id": {
+ "$oid": "673dabb8c3c0100063e83d72"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کتف و بال زعفرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:28:24.574Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:11:39.188Z"
+ },
+ "__v": 0,
+ "image": "food_1732973881136.png"
+},
+{
+ "_id": {
+ "$oid": "673dabdcc3c0100063e83d7c"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه با استخوان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:29:00.866Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:11:18.067Z"
+ },
+ "__v": 0,
+ "image": "food_1732726005132.png"
+},
+{
+ "_id": {
+ "$oid": "673dabf7c3c0100063e83d89"
+ },
+ "price": 7300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک ماهیچه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 24,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:29:27.334Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:10:53.041Z"
+ },
+ "__v": 0,
+ "image": "food_1732363269121.png"
+},
+{
+ "_id": {
+ "$oid": "673dac1bc3c0100063e83d9f"
+ },
+ "price": 7700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک گردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 25,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:30:03.712Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:10:19.219Z"
+ },
+ "__v": 0,
+ "image": "food_1732099406737.png"
+},
+{
+ "_id": {
+ "$oid": "673dac45c3c0100063e83dac"
+ },
+ "price": 6000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 26,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:30:45.277Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:09:54.851Z"
+ },
+ "__v": 0,
+ "image": "food_1732099369819.png"
+},
+{
+ "_id": {
+ "$oid": "673dac74c3c0100063e83db9"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 27,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:31:32.583Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:09:14.936Z"
+ },
+ "__v": 0,
+ "image": "food_1732363192936.png"
+},
+{
+ "_id": {
+ "$oid": "673dac92c3c0100063e83dc3"
+ },
+ "price": 2550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه چینی ۲۰۰گرم فیله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 28,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:32:02.723Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:08:37.989Z"
+ },
+ "__v": 0,
+ "image": "food_1732362915343.png"
+},
+{
+ "_id": {
+ "$oid": "673db2ecc3c0100063e83ead"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز نوتلا",
+ "description": "بستنی وانیل ، شیر پرچرب ، موز ، نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2024-11-20T09:59:08.236Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:34:16.579Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dbbcec3c0100063e8400f"
+ },
+ "price": 2580000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": false,
+ "name": "ماهی سوخاری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 29,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T10:37:02.906Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:07:58.447Z"
+ },
+ "__v": 0,
+ "image": "food_1732099328269.png"
+},
+{
+ "_id": {
+ "$oid": "673dbc06c3c0100063e84029"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک اکبرجوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673da786c3c0100063e83bb8"
+ },
+ "index": 30,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T10:37:58.958Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:07:43.638Z"
+ },
+ "__v": 0,
+ "image": "food_1732362466605.png"
+},
+{
+ "_id": {
+ "$oid": "673dbc47c3c0100063e84051"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زرشک پلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 31,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732099137172.png",
+ "created_at": {
+ "$date": "2024-11-20T10:39:03.029Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:07:15.113Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dbc7ec3c0100063e84080"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برنج ساده ایرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 32,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732099192345.png",
+ "created_at": {
+ "$date": "2024-11-20T10:39:58.495Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:06:55.163Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dbcadc3c0100063e840a4"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقالی پلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 33,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732099243481.png",
+ "created_at": {
+ "$date": "2024-11-20T10:40:45.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:06:11.098Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dbda4c3c0100063e840ef"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67333928c3c0100063e70706"
+ },
+ "index": 34,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T10:44:52.144Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:05:56.541Z"
+ },
+ "__v": 0,
+ "image": "food_1732362358247.png"
+},
+{
+ "_id": {
+ "$oid": "673dc085c3c0100063e8417d"
+ },
+ "price": 3950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شوید پلو با ماهی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100319064.png",
+ "created_at": {
+ "$date": "2024-11-20T10:57:09.943Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:05:36.594Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc0cec3c0100063e84190"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقالی پلو با مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100297076.png",
+ "created_at": {
+ "$date": "2024-11-20T10:58:22.332Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:04:23.880Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc118c3c0100063e841b4"
+ },
+ "price": 2850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زرشک پلو با مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100371100.png",
+ "created_at": {
+ "$date": "2024-11-20T10:59:36.580Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:04:06.272Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc146c3c0100063e841cd"
+ },
+ "price": 8500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقالی پلو با ماهیچه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100418501.png",
+ "created_at": {
+ "$date": "2024-11-20T11:00:22.598Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:02:27.314Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc169c3c0100063e841e6"
+ },
+ "price": 8300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو ماهیچه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100453301.png",
+ "created_at": {
+ "$date": "2024-11-20T11:00:57.152Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:02:06.954Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc19ac3c0100063e841f3"
+ },
+ "price": 7000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100504110.png",
+ "created_at": {
+ "$date": "2024-11-20T11:01:46.984Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:01:52.557Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc1d6c3c0100063e841fd"
+ },
+ "price": 3050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو جوجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100561534.png",
+ "created_at": {
+ "$date": "2024-11-20T11:02:46.713Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:01:30.471Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc1f8c3c0100063e8420a"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو میکس ساده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100596151.png",
+ "created_at": {
+ "$date": "2024-11-20T11:03:20.951Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:00:59.009Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc221c3c0100063e8421f"
+ },
+ "price": 3250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو کباب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100637568.png",
+ "created_at": {
+ "$date": "2024-11-20T11:04:01.159Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:00:41.746Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc245c3c0100063e84235"
+ },
+ "price": 6500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو سلطانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100674202.png",
+ "created_at": {
+ "$date": "2024-11-20T11:04:37.968Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T09:00:14.017Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc26ac3c0100063e84242"
+ },
+ "price": 5450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو برگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100709573.png",
+ "created_at": {
+ "$date": "2024-11-20T11:05:14.324Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:59:43.754Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc28ec3c0100063e84252"
+ },
+ "price": 5650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو چنجه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100746067.png",
+ "created_at": {
+ "$date": "2024-11-20T11:05:50.568Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:59:17.511Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc2d4c3c0100063e8425c"
+ },
+ "price": 8900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "باقالی پلو با گردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "image": "food_1732100816942.png",
+ "created_at": {
+ "$date": "2024-11-20T11:07:00.633Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:58:52.787Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "673dc30ac3c0100063e84272"
+ },
+ "price": 8700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو گردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "673dc024c3c0100063e84164"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "created_at": {
+ "$date": "2024-11-20T11:07:54.744Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-01T08:58:37.069Z"
+ },
+ "__v": 0,
+ "image": "food_1732361682177.png"
+},
+{
+ "_id": {
+ "$oid": "674d78a2a4463c0057df134e"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب تنوری",
+ "description": "سیب تنوری، قارچ، ژامبون اسلایس، پنیر پیتزا، سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2024-12-02T09:06:42.496Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:11:56.984Z"
+ },
+ "__v": 0,
+ "image": "food_1733222900831.png"
+},
+{
+ "_id": {
+ "$oid": "674d7a45a4463c0057df1392"
+ },
+ "price": 4900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتوم",
+ "description": "گوشت رست بیف، مرغ طعم دار شده، پنیر گودا، پنیر پیتزا، قارچ، زیتون اسلایس",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2bb59383e8d754ef59b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2024-12-02T09:13:41.489Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:11:16.347Z"
+ },
+ "__v": 0,
+ "image": "food_1733221708079.png"
+},
+{
+ "_id": {
+ "$oid": "674d7affa4463c0057df13bb"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد موهیتو طبیعی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64edb2e659383e8d754ef5a4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2024-12-02T09:16:47.486Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:10:22.776Z"
+ },
+ "__v": 0,
+ "image": "food_1733222939222.png"
+},
+{
+ "_id": {
+ "$oid": "674dac61a4463c0057df1b01"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر موز نوتلا",
+ "description": "دونات برش خورده ، نوتلا ، موز ، خامه ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1733143644676.png",
+ "created_at": {
+ "$date": "2024-12-02T12:47:29.452Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:23:46.138Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "674daceba4463c0057df1b34"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "برلینر خامه توت فرنگی",
+ "description": "دونات برش خورده ، توت فرنگی تازه ، خامه ، شکلات توت فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "6731aff4c3c0100063e6decb"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1733143785931.png",
+ "created_at": {
+ "$date": "2024-12-02T12:49:47.756Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-02T12:49:47.756Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6750bbaca4463c0057df7207"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک روز ",
+ "description": "یک اسلایس چیز کیک شکلاتی روز ",
+ "short_description": "",
+ "category": {
+ "$oid": "645215c898ff3c74144161bc"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-12-04T20:29:32.709Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-04T20:36:04.715Z"
+ },
+ "__v": 0,
+ "image": "food_1733344545667.png"
+},
+{
+ "_id": {
+ "$oid": "6751c253a4463c0057df8852"
+ },
+ "price": 800000,
+ "stock": 0,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک اسنیکرز روز ",
+ "description": "یک اسلایس کیک اسنیکرز روز",
+ "short_description": "",
+ "category": {
+ "$oid": "645215c898ff3c74144161bc"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1733411402579.png",
+ "created_at": {
+ "$date": "2024-12-05T15:10:11.826Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-05T15:10:11.826Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6751c7cda4463c0057df8aa2"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویج کالباس سرد ",
+ "description": " نان ساندویچ، ورق کالباس، برگ کاهو، خیارشور و...",
+ "short_description": "",
+ "category": {
+ "$oid": "673e2e4ec3c0100063e85693"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-12-05T15:33:33.071Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-05T18:38:31.332Z"
+ },
+ "__v": 0,
+ "image": "food_1733423443280.png"
+},
+{
+ "_id": {
+ "$oid": "67521241a4463c0057dfa41b"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "اسپرسو، یک اسکوپ بستنی ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1733431869244.png",
+ "created_at": {
+ "$date": "2024-12-05T20:51:13.292Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T17:48:27.310Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "675212aca4463c0057dfa421"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارتینی",
+ "description": "اسپرسو، وانیل، دارچین، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67686ca8a4463c0057e1d2b4"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-12-05T20:53:00.634Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T17:48:07.636Z"
+ },
+ "__v": 0,
+ "image": "food_1733433123133.png"
+},
+{
+ "_id": {
+ "$oid": "6752189da4463c0057dfa46a"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینک چاکلت ",
+ "description": "توت فرنگی، شکلات سفید و شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2024-12-05T21:18:21.436Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T17:47:23.918Z"
+ },
+ "__v": 0,
+ "image": "food_1733433539453.png"
+},
+{
+ "_id": {
+ "$oid": "67521a65a4463c0057dfa4a5"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت ",
+ "description": "شیر، تکههای شکلات سفید، وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1733434215353.png",
+ "created_at": {
+ "$date": "2024-12-05T21:25:57.042Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T17:47:11.334Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67521d58a4463c0057dfa4cb"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت ",
+ "description": "شیر، شکلات تلخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffa2a4463c0057e4a32b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "image": "food_1733434710098.png",
+ "created_at": {
+ "$date": "2024-12-05T21:38:32.316Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T17:46:58.016Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d27cca4463c0057e3e554"
+ },
+ "price": 1880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وگن پلیت",
+ "description": "سبزیجات فصل ساته شده با سس صدف مش پوتیتو ",
+ "short_description": "",
+ "category": {
+ "$oid": "651971c059383e8d7551df47"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:10:36.380Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:10:36.380Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d299aa4463c0057e3e60a"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:18:18.868Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:18:18.868Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2c52a4463c0057e3e785"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ نارگیل",
+ "description": "نارگیل فندوق ایریش ",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:29:54.881Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:02:02.523Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2d73a4463c0057e3e7fd"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:34:43.396Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:34:43.396Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2d8ca4463c0057e3e80f"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته با شیر گیاهی",
+ "description": "قهوه-شیر گیاهی فندوق یا بادام",
+ "short_description": "",
+ "category": {
+ "$oid": "652a450f59383e8d75530491"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:35:08.562Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:35:08.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2dbda4463c0057e3e828"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای هل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:35:57.718Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:35:57.718Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2edaa4463c0057e3e89d"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچالاته",
+ "description": "ماچا دم شده-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:40:42.137Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:40:42.137Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2f3ca4463c0057e3e8bd"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "هل- زعفران-گل محمدی-دارچین-شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "652a46a959383e8d7553049a"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:42:20.431Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:42:20.431Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2f50a4463c0057e3e8c6"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لمون گرس",
+ "description": "امیزه ای از علف لیمو نعنا زنجبیل",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:42:40.646Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:42:40.646Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2f7ca4463c0057e3e8d4"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سرماخوردگی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:43:24.575Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:43:24.575Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d2fa0a4463c0057e3e8e0"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ارام بخش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:44:00.851Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:44:00.851Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d303fa4463c0057e3e90f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دیاموند",
+ "description": "به خشک شده , برگ گل محمدی , زعفران",
+ "short_description": "",
+ "category": {
+ "$oid": "65226e2d59383e8d75527b6a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:46:39.893Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:46:39.893Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3076a4463c0057e3e916"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بری سودا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a475659383e8d755304c6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:47:34.654Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:47:34.654Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d30aba4463c0057e3e942"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو سودا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a475659383e8d755304c6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:48:27.833Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:48:27.833Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d30cca4463c0057e3e961"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سان فروت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a475659383e8d755304c6"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-07T13:49:00.633Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T13:49:00.633Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d33eaa4463c0057e3eaea"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلاتی ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eff7759383e8d75524961"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:02:18.917Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:02:18.917Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3412a4463c0057e3eafd"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651eff7759383e8d75524961"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:02:58.745Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:02:58.745Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3813a4463c0057e3ebf5"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد والدروف",
+ "description": "کاهو رسمی , سینه مرغ پخته شدهبه همراه سیب و کرفس, گوجه گیلاسی , گردو کاراملایز , انگور , پارمزان سس ماست و ترخون",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:20:03.335Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:20:03.335Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d38b8a4463c0057e3ec38"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اکسترا فیلت",
+ "description": "120 گرم فیله گوساله",
+ "short_description": "",
+ "category": {
+ "$oid": "6519730759383e8d7551df92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:22:48.149Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:22:48.149Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3910a4463c0057e3ec59"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اکسترا فیله",
+ "description": "یک عدد فیله مرغ سوخاری شده",
+ "short_description": "",
+ "category": {
+ "$oid": "65219db959383e8d75527683"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:24:16.872Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:24:16.872Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3deea4463c0057e3ee49"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس اووکادو هات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:45:02.594Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-07T14:45:02.594Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3e24a4463c0057e3ee55"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس انتراکوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:45:56.564Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:35:52.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "677d3e3ca4463c0057e3ee5f"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سس سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6519819c59383e8d7551e1be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-01-07T14:46:20.191Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T14:35:37.618Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678136faa4463c0057e455f6"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پن چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:04:26.081Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:04:26.081Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813718a4463c0057e45603"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:04:56.644Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:04:56.644Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6781376fa4463c0057e45616"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیوب کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:06:23.529Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:06:23.529Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678137e0a4463c0057e45628"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "image": "food_1736521695625.png",
+ "created_at": {
+ "$date": "2025-01-10T15:08:16.789Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:08:16.789Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6781391da4463c0057e4567e"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی شکلات فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:13:33.382Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:13:33.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813942a4463c0057e4569d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو لیدی فینگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:14:10.167Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:14:10.167Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813961a4463c0057e456aa"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک نیویورکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:14:41.203Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:14:41.203Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813992a4463c0057e456b7"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک نوتلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:15:30.807Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:15:30.807Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678139bca4463c0057e456d3"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:16:12.033Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:16:12.033Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678139e2a4463c0057e456e6"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:16:50.105Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:16:50.105Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813a21a4463c0057e4571d"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:17:53.748Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:17:53.748Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813a46a4463c0057e45739"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب دارچین گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:18:30.318Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:18:30.318Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813ae8a4463c0057e4576d"
+ },
+ "price": 170000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی کره گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:21:12.380Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:21:12.380Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813b17a4463c0057e45795"
+ },
+ "price": 170000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:21:59.928Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:31:53.029Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813c2da4463c0057e45880"
+ },
+ "price": 190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی رد ولوت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:26:37.840Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:26:37.840Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813d09a4463c0057e458d3"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوف شکلات فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:30:17.160Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:30:17.160Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813d24a4463c0057e458dd"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوف اسنیکرز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:30:44.292Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:30:44.292Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813d4ba4463c0057e458e7"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی جاینت پسته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:31:23.622Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:31:23.622Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67813db0a4463c0057e45923"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موچی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "652a55ae59383e8d75530781"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "created_at": {
+ "$date": "2025-01-10T15:33:04.333Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-10T15:33:04.333Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678416baa4463c0057e4aa07"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکاچیلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:23:38.329Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:31:05.357Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67841716a4463c0057e4aa11"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلوشکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:25:10.704Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:32:13.980Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67841747a4463c0057e4aa1b"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیلوماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:25:59.946Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:27:20.514Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67841784a4463c0057e4aa28"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:27:00.374Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:27:31.861Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678417c1a4463c0057e4aa4c"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس استوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:28:01.084Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:34:09.587Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678417f7a4463c0057e4aa59"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس اوشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:28:55.931Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:34:25.422Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6784181ba4463c0057e4aa63"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ffeea4463c0057e4a367"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-12T19:29:31.412Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-12T19:34:37.190Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6786fddda4463c0057e4f4c9"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "غذا نداریم فعلا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6786fbfaa4463c0057e4f482"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6786f8aba4463c0057e4f42d"
+ },
+ "image": "food_1736900058889.png",
+ "created_at": {
+ "$date": "2025-01-15T00:14:21.017Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-15T00:14:21.017Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6788fb4ca4463c0057e52637"
+ },
+ "price": 3800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کرن بری بامرغ",
+ "description": "کرن بری /کاهو تازه فصل/میوه های تازه فصل /گردو /پنیر فتا /سس کره بادام زمینی /مرغ گریل شده",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac606626d2e0e4fbd9b45a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "image": "food_1737030471416.png",
+ "created_at": {
+ "$date": "2025-01-16T12:27:56.153Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:53:39.298Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "678cf71ea4463c0057e59a6b"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران",
+ "description": "چای ایرانی دمی ، زعفران دم شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "67306494c3c0100063e6bf64"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1737291548706.png",
+ "created_at": {
+ "$date": "2025-01-19T12:59:10.883Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-04T09:31:43.698Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6794ff9ca4463c0057e67b1c"
+ },
+ "price": 5150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ گود بیف new",
+ "description": "نان چیاباتا،فیله گوساله،فلفل دلمه ای،گوجه،کاهو،خیارشور،پیاز،پنیردیپ چدار،قارچ،سیب زمینی،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-01-25T15:13:32.238Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:38:37.986Z"
+ },
+ "__v": 0,
+ "image": "food_1739469717534.png"
+},
+{
+ "_id": {
+ "$oid": "6795019da4463c0057e67b9c"
+ },
+ "price": 3990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لازانیا new",
+ "description": "خمیر،گوشت چرخ کرده،قارچ،فلفل دلمه ای،پنیر میکس",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2421ee4b0270db4c40b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-01-25T15:22:05.965Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:38:47.979Z"
+ },
+ "__v": 0,
+ "image": "food_1739469613044.png"
+},
+{
+ "_id": {
+ "$oid": "67951037a4463c0057e67ddf"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا",
+ "description": "چایی سبز ژاپنی که یکی از غنیترین منابع آنتیاکسیدان بهشمار میآید. ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-25T16:24:23.315Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:29:36.413Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795107aa4463c0057e67e01"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچالاته ",
+ "description": "چای ماچا و شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-25T16:25:30.953Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:25:30.953Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67951164a4463c0057e67e32"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچالاته سرد",
+ "description": "چای ماچا، شیر، یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-25T16:29:24.825Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:44:55.437Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679511cda4463c0057e67e58"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا کاتو",
+ "description": "چای ماچا،یه اسکوپ بستنی",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-25T16:31:09.459Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:31:09.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67951282a4463c0057e67e87"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک ماچا",
+ "description": "چای ماچا، بستنی شیک شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6783ff4fa4463c0057e4a31f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "created_at": {
+ "$date": "2025-01-25T16:34:10.809Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T16:34:10.809Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ed31a4463c0057e68e12"
+ },
+ "price": 1940000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ماچا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:07:13.784Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:39:11.089Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795edd9a4463c0057e68e3d"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس آمریکانو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:10:01.954Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:11:14.742Z"
+ },
+ "__v": 0,
+ "image": "food_1741624882952.png"
+},
+{
+ "_id": {
+ "$oid": "6795ee0ca4463c0057e68e47"
+ },
+ "price": 2140000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:10:52.055Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:12:23.956Z"
+ },
+ "__v": 0,
+ "image": "food_1741624761374.png"
+},
+{
+ "_id": {
+ "$oid": "6795ee43a4463c0057e68e53"
+ },
+ "price": 2230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:11:47.347Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:41:03.902Z"
+ },
+ "__v": 0,
+ "image": "food_1741624724783.png"
+},
+{
+ "_id": {
+ "$oid": "6795ee66a4463c0057e68e5d"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:12:22.760Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:41:59.548Z"
+ },
+ "__v": 0,
+ "image": "food_1741624675083.png"
+},
+{
+ "_id": {
+ "$oid": "6795ee8ea4463c0057e68e67"
+ },
+ "price": 2430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ماچا بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:13:02.369Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:43:06.260Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795eeb4a4463c0057e68e71"
+ },
+ "price": 2560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو آیس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:13:40.426Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:43:36.868Z"
+ },
+ "__v": 0,
+ "image": "food_1741718046900.png"
+},
+{
+ "_id": {
+ "$oid": "6795eed6a4463c0057e68e7b"
+ },
+ "price": 2550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو آیس ماچا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:14:14.247Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:44:08.251Z"
+ },
+ "__v": 0,
+ "image": "food_1741718020809.png"
+},
+{
+ "_id": {
+ "$oid": "6795ef01a4463c0057e68e85"
+ },
+ "price": 2780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V60 کلمبیا هانی گیشا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:14:57.754Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:52:51.081Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ef2aa4463c0057e68e8f"
+ },
+ "price": 1280000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا دست ساز",
+ "description": "سیروپ کوکا، لیمو، سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:15:38.426Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:49:17.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ef46a4463c0057e68e9c"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "لیمو، سوئیت اند ساور، سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:16:06.109Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:48:55.871Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795ef62a4463c0057e68ea6"
+ },
+ "price": 1490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "لیمو، نعنا، سوئیت اند ساور، سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:16:34.385Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:48:38.504Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795efefa4463c0057e68ece"
+ },
+ "price": 1880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سینرجی",
+ "description": "پرتقال، زنجبیل، زردچوبه، عسل",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:18:55.408Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:49:39.955Z"
+ },
+ "__v": 0,
+ "image": "food_1741624348642.png"
+},
+{
+ "_id": {
+ "$oid": "6795f073a4463c0057e68eff"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونیتی",
+ "description": "اسپرولینا، توتفرنگی، نارگیل، هلو",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea56a4463c0057e68d43"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:21:07.413Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:58:44.476Z"
+ },
+ "__v": 0,
+ "image": "food_1741623784133.png"
+},
+{
+ "_id": {
+ "$oid": "6795f09aa4463c0057e68f09"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیید فلو",
+ "description": "شیر بادام، تخم کدو، انبه، موز",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea56a4463c0057e68d43"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:21:46.319Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:59:04.780Z"
+ },
+ "__v": 0,
+ "image": "food_1741623681207.png"
+},
+{
+ "_id": {
+ "$oid": "6795f0b9a4463c0057e68f13"
+ },
+ "price": 2760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میدنایت",
+ "description": "انجیر، گاناش، شاتوت، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea56a4463c0057e68d43"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:22:17.660Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:59:25.439Z"
+ },
+ "__v": 0,
+ "image": "food_1741623638099.png"
+},
+{
+ "_id": {
+ "$oid": "6795f0f2a4463c0057e68f27"
+ },
+ "price": 2740000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ناتی بری",
+ "description": "توتفرنگی، شاتوت، میکس بری، شیر بادام",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea56a4463c0057e68d43"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:23:14.256Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:59:49.944Z"
+ },
+ "__v": 0,
+ "image": "food_1741623561027.png"
+},
+{
+ "_id": {
+ "$oid": "6795f1e0a4463c0057e68f52"
+ },
+ "price": 1610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:27:12.539Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T08:17:08.254Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795f1f9a4463c0057e68f5c"
+ },
+ "price": 1670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:27:37.749Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T08:16:45.186Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795f213a4463c0057e68f66"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بری چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:28:03.992Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T08:16:21.305Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795f22ba4463c0057e68f70"
+ },
+ "price": 1610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا اسپایسی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:28:27.695Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-15T14:15:53.973Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795f247a4463c0057e68f7a"
+ },
+ "price": 1710000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 81,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:28:55.625Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T13:15:48.963Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6795f270a4463c0057e68f84"
+ },
+ "price": 4930000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ بیکن و پیاز کاراملی",
+ "description": "بیکن، پیاز کاراملی، پنیر چدار",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:29:36.711Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:13:22.642Z"
+ },
+ "__v": 0,
+ "image": "food_1741622808905.png"
+},
+{
+ "_id": {
+ "$oid": "6795f290a4463c0057e68f8e"
+ },
+ "price": 4830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ سوسیس و خردل",
+ "description": "سوسیس، سس خردل، پیکل پیاز",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:30:08.356Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:14:15.154Z"
+ },
+ "__v": 0,
+ "image": "food_1741622646582.png"
+},
+{
+ "_id": {
+ "$oid": "6795f2b5a4463c0057e68f98"
+ },
+ "price": 3770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ چیکن پارمسان",
+ "description": "مرغ، سس پارمسان، چیپس، گوجه مزهدار شده",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:30:45.459Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:15:25.261Z"
+ },
+ "__v": 0,
+ "image": "food_1741622576851.png"
+},
+{
+ "_id": {
+ "$oid": "6795f2d1a4463c0057e68fa2"
+ },
+ "price": 2930000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ سبزیجات",
+ "description": "بادمجان گریل، پاپریکا کبابی، اسفناج، کدو گریل، قارچ مزهدار شده، سس پنیر، گلیز بالزامیک",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:31:13.838Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:15:44.706Z"
+ },
+ "__v": 0,
+ "image": "food_1741622410069.png"
+},
+{
+ "_id": {
+ "$oid": "6795f2f7a4463c0057e68fac"
+ },
+ "price": 3570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ چیکن ملانزانا",
+ "description": "مرغ، بادمجان گریل، روکولا، گلیز بالزامیک، پستو روسو",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:31:51.318Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:16:07.614Z"
+ },
+ "__v": 0,
+ "image": "food_1741622230110.png"
+},
+{
+ "_id": {
+ "$oid": "6795f31da4463c0057e68fb6"
+ },
+ "price": 3550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ چیکن پستو",
+ "description": "مرغ، سس پستو ریحان، گوجه مزهدار شده، سس پنیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eb06a4463c0057e68d76"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:32:29.272Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:17:07.585Z"
+ },
+ "__v": 0,
+ "image": "food_1741622155566.png"
+},
+{
+ "_id": {
+ "$oid": "6795f3a7a4463c0057e68fd5"
+ },
+ "price": 2630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ چیکن هالوپینو",
+ "description": "مرغ، سس هالوپینو، گوجه مزهدار، پیازچه",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eb06a4463c0057e68d76"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T08:34:47.277Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-18T12:38:23.981Z"
+ },
+ "__v": 0,
+ "image": "food_1741621934158.png"
+},
+{
+ "_id": {
+ "$oid": "679616c0a4463c0057e695fa"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:04:32.508Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:22:18.569Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679616faa4463c0057e6960a"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:05:30.603Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:22:37.638Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67961828a4463c0057e6962e"
+ },
+ "price": 1320000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس تی کوکو گرین",
+ "description": "چای سبز سرددم، سیروپ نارگیل",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:10:32.662Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:21:58.908Z"
+ },
+ "__v": 0,
+ "image": "food_1741621829898.png"
+},
+{
+ "_id": {
+ "$oid": "67961913a4463c0057e69666"
+ },
+ "price": 1930000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرم بروله",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:14:27.016Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:57:21.591Z"
+ },
+ "__v": 0,
+ "image": "food_1741621763441.png"
+},
+{
+ "_id": {
+ "$oid": "67961988a4463c0057e69670"
+ },
+ "price": 2210000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موس شکلات و پرتقال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T11:16:24.528Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:57:43.785Z"
+ },
+ "__v": 0,
+ "image": "food_1741621732851.png"
+},
+{
+ "_id": {
+ "$oid": "67962c26a4463c0057e6998c"
+ },
+ "price": 2020000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته سیروپ",
+ "description": "سیروپ انتخابی (کارامل/شکلات/نارگیل/فندوق/وانیل/لوتوس)",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-26T12:35:50.787Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T08:00:47.171Z"
+ },
+ "__v": 0,
+ "image": "food_1741717242990.png"
+},
+{
+ "_id": {
+ "$oid": "6796d07aa4463c0057e6ab59"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات دوبی",
+ "description": "یک عدد دونات شکلات ، یک عدد (تکه ای) شکلات دوبی",
+ "short_description": "",
+ "category": {
+ "$oid": "6796cfa4a4463c0057e6ab4c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-01-27T00:16:58.244Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-14T23:31:22.362Z"
+ },
+ "__v": 0,
+ "image": "food_1743526505742.png"
+},
+{
+ "_id": {
+ "$oid": "6796d0c6a4463c0057e6ab6f"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات پسته دوبی ",
+ "description": "یک عدد دونات شکلات ، یک عدد ( تکه ای ) شکلات دوبی ، پودر پسته",
+ "short_description": "",
+ "category": {
+ "$oid": "6796cfa4a4463c0057e6ab4c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-01-27T00:18:14.970Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-14T23:30:57.644Z"
+ },
+ "__v": 0,
+ "image": "food_1738534628614.png"
+},
+{
+ "_id": {
+ "$oid": "67988fb8a4463c0057e6dabf"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:05:12.082Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:03:47.246Z"
+ },
+ "__v": 0,
+ "image": "food_1741717154499.png"
+},
+{
+ "_id": {
+ "$oid": "67988ff5a4463c0057e6dad2"
+ },
+ "price": 1740000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:06:13.151Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:04:15.929Z"
+ },
+ "__v": 0,
+ "image": "food_1741716889953.png"
+},
+{
+ "_id": {
+ "$oid": "67989025a4463c0057e6dae8"
+ },
+ "price": 1860000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو پیکولو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:07:01.707Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:04:42.220Z"
+ },
+ "__v": 0,
+ "image": "food_1741716997525.png"
+},
+{
+ "_id": {
+ "$oid": "6798904ba4463c0057e6dafb"
+ },
+ "price": 1960000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کورتادو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:07:39.555Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:06:19.259Z"
+ },
+ "__v": 0,
+ "image": "food_1741716966384.png"
+},
+{
+ "_id": {
+ "$oid": "67989070a4463c0057e6db05"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:08:16.573Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:08:35.486Z"
+ },
+ "__v": 0,
+ "image": "food_1741632315585.png"
+},
+{
+ "_id": {
+ "$oid": "67989091a4463c0057e6db0f"
+ },
+ "price": 2140000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:08:49.987Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:10:43.002Z"
+ },
+ "__v": 0,
+ "image": "food_1741716779814.png"
+},
+{
+ "_id": {
+ "$oid": "679890d8a4463c0057e6db29"
+ },
+ "price": 2080000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:10:00.361Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:09:08.839Z"
+ },
+ "__v": 0,
+ "image": "food_1741716756922.png"
+},
+{
+ "_id": {
+ "$oid": "679890faa4463c0057e6db33"
+ },
+ "price": 2080000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:10:34.912Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:09:57.964Z"
+ },
+ "__v": 0,
+ "image": "food_1741716693388.png"
+},
+{
+ "_id": {
+ "$oid": "67989124a4463c0057e6db3d"
+ },
+ "price": 2230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:11:16.384Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:38:51.595Z"
+ },
+ "__v": 0,
+ "image": "food_1741716616701.png"
+},
+{
+ "_id": {
+ "$oid": "6798914aa4463c0057e6db47"
+ },
+ "price": 2560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:11:54.311Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:40:29.742Z"
+ },
+ "__v": 0,
+ "image": "food_1741716569208.png"
+},
+{
+ "_id": {
+ "$oid": "67989168a4463c0057e6db51"
+ },
+ "price": 2550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:12:24.316Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:39:33.778Z"
+ },
+ "__v": 0,
+ "image": "food_1741716528276.png"
+},
+{
+ "_id": {
+ "$oid": "679893a5a4463c0057e6dc89"
+ },
+ "price": 2640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته سیروپ",
+ "description": "سیروپ انتخابی (کارامل/شکلات/نارگیل/فندوق/وانیل/لوتوس)",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-28T08:21:57.880Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T20:11:49.419Z"
+ },
+ "__v": 0,
+ "image": "food_1741717568965.png"
+},
+{
+ "_id": {
+ "$oid": "6798e559bd2ce20057144cb3"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک روز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-01-28T14:10:33.811Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-21T09:29:52.397Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6799d309bd2ce20057146af8"
+ },
+ "price": 3010000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته بابل تی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-29T07:04:41.427Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:44:54.666Z"
+ },
+ "__v": 0,
+ "image": "food_1741717726294.png"
+},
+{
+ "_id": {
+ "$oid": "6799d353bd2ce20057146b18"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس ماچا بابل تی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-29T07:05:55.787Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:47:05.907Z"
+ },
+ "__v": 0,
+ "image": "food_1741717765520.png"
+},
+{
+ "_id": {
+ "$oid": "6799d3bdbd2ce20057146b46"
+ },
+ "price": 3300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو سیروپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-29T07:07:41.167Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:42:22.735Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6799d3e5bd2ce20057146b50"
+ },
+ "price": 3040000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو بابل تی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9c5a4463c0057e68d28"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-29T07:08:21.331Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:47:25.823Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5ed3bd2ce20057147eb6"
+ },
+ "price": 640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو عربیکا",
+ "description": "عصاره دان قهوه عربیکا + شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:01:07.018Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:01:51.167Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a5f5dbd2ce20057147f06"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو کامرشیال",
+ "description": "عصاره دان قهوه ربوستا + شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:03:25.055Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:03:25.055Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a600cbd2ce20057147f79"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو عربیکا",
+ "description": "عصاره دان قهوه عربیکا +فوم شیر+ شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:06:20.426Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:06:20.426Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a608cbd2ce20057147fc8"
+ },
+ "price": 490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو کامرشیال",
+ "description": "عصاره دان قهوه ربوستا +فوم شیر+ شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:08:28.483Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:08:28.483Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a611ebd2ce20057148027"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن پانا عربیکا",
+ "description": "عصاره دان قهوه عربیکا +خامه+ شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:10:54.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:10:54.597Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a6258bd2ce2005714811b"
+ },
+ "price": 730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن پانا کامرشیال",
+ "description": "عصاره دان قهوه ربوستا +خامه+ شکلات + اب",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:16:08.757Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:16:08.757Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a62cabd2ce2005714814f"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو عربیکا",
+ "description": "عصاره دان قهوه عربیکا +اب جوش+ شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:18:02.578Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:18:02.578Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a6332bd2ce2005714816b"
+ },
+ "price": 510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو کامرشیال",
+ "description": "عصاره دان قهوه ربوستا +اب جوش + شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:19:46.667Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:19:46.667Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a638abd2ce200571481ab"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته عربیکا",
+ "description": "عصاره دان قهوه عربیکا +شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:21:14.765Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:21:14.765Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a63d4bd2ce200571481c7"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته کامرشیال",
+ "description": "عصاره دان قهوه ربوستا+شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:22:28.443Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:22:28.443Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a642ebd2ce200571481fe"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت عربیکا",
+ "description": "عصاره قهوه عربیکا +شیر فوم",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:23:58.311Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:35:49.824Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a6539bd2ce20057148270"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت وایت کامرشیال",
+ "description": "عصاره قهوه ربوستا+ شیر فوم",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:28:25.459Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:28:25.459Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a678fbd2ce20057148391"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو عربیکا",
+ "description": "عصاره قهوه عربیکا +شیر فوم",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:38:23.100Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:38:23.100Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a682dbd2ce20057148445"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو کامرشیال",
+ "description": "عصاره قهوه ربوستا+شیر فوم",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:41:01.551Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:41:01.551Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a68aabd2ce20057148479"
+ },
+ "price": 1090000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو عربیکا",
+ "description": "عصاره قهوه عربیکا +شیر فوم + سس کارامل + سیروپ کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:43:06.152Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:43:06.152Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a691dbd2ce2005714849a"
+ },
+ "price": 1010000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو کامرشیال",
+ "description": "عصاره قهوه ربوستا +شیر فوم + سس کارامل + سیروپ کارامل",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:45:01.721Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:45:01.721Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a6976bd2ce200571484d6"
+ },
+ "price": 1090000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا عربیکا",
+ "description": "عصاره قهوه عربیکا +شیر فوم + سس شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:46:30.976Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:46:30.976Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679a69b3bd2ce200571484f8"
+ },
+ "price": 1010000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا کامرشیال",
+ "description": "عصاره قهوه ربوستا +شیر فوم + سس شکلات",
+ "short_description": "",
+ "category": {
+ "$oid": "6798e8fabd2ce20057144d97"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "created_at": {
+ "$date": "2025-01-29T17:47:31.239Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T17:47:31.239Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679b5246bd2ce2005714936b"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمی دستگاهی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:19:50.739Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:20:24.589Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679b52afbd2ce20057149391"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو کلاسیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:21:35.835Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:50:13.378Z"
+ },
+ "__v": 0,
+ "image": "food_1741615796962.png"
+},
+{
+ "_id": {
+ "$oid": "679b52ccbd2ce200571493a4"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو پرشین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:22:04.566Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:55:43.534Z"
+ },
+ "__v": 0,
+ "image": "food_1741615745223.png"
+},
+{
+ "_id": {
+ "$oid": "679b52ebbd2ce200571493ba"
+ },
+ "price": 1780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو کوکو آچری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:22:35.650Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T19:22:12.325Z"
+ },
+ "__v": 0,
+ "image": "food_1741615718530.png"
+},
+{
+ "_id": {
+ "$oid": "679b5307bd2ce200571493c4"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو آیریش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:23:03.596Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T19:21:50.305Z"
+ },
+ "__v": 0,
+ "image": "food_1741615672755.png"
+},
+{
+ "_id": {
+ "$oid": "679b5496bd2ce2005714943a"
+ },
+ "price": 2580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تست اسفناج و قارچ",
+ "description": "نان خمیر ترش، اسفناج، قارچ کرهای، تخم مرغ(همراه با قهوه دمي/چای)",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:29:42.674Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-18T12:44:28.482Z"
+ },
+ "__v": 0,
+ "image": "food_1741615541780.png"
+},
+{
+ "_id": {
+ "$oid": "679b5517bd2ce20057149468"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن و نیمرو",
+ "description": "نان بریوش، قارچ، بیکن، نیمرو(همراه با قهوه دمي/چای)",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:31:51.834Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-18T12:45:12.649Z"
+ },
+ "__v": 0,
+ "image": "food_1741615479089.png"
+},
+{
+ "_id": {
+ "$oid": "679b5558bd2ce20057149496"
+ },
+ "price": 3510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس و اسکرامبل",
+ "description": "نان بریوش، سوسیس، سس خردل، اسکرامبل(همراه با قهوه دمي/چای)",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T10:32:56.256Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-22T09:14:23.444Z"
+ },
+ "__v": 0,
+ "image": "food_1741615422472.png"
+},
+{
+ "_id": {
+ "$oid": "679b62fbbd2ce2005714963d"
+ },
+ "price": 3230000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ مرغ و زیتون",
+ "description": "مرغ، زیتون، روکولا، ریحان ایتالیایی",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eb06a4463c0057e68d76"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-01-30T11:31:07.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:19:05.743Z"
+ },
+ "__v": 0,
+ "image": "food_1741615365988.png"
+},
+{
+ "_id": {
+ "$oid": "679b82afbd2ce20057149981"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "۷۰/۳۰",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-01-30T13:46:23.154Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:48:40.767Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679dfca6bd2ce2005714eb43"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاناکوتا انجیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-02-01T10:51:18.542Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:58:01.547Z"
+ },
+ "__v": 0,
+ "image": "food_1741608384524.png"
+},
+{
+ "_id": {
+ "$oid": "679f689cbd2ce20057150871"
+ },
+ "price": 3850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زینگر new",
+ "description": "نان برگر ،2عدد فیله سوخاری ،سس مخصوص،کاهو لوتوس،گوجه فرنگی،رلیش خیار، ساید سالاد و سیب زمینی(سرو سالن)",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2681ee4b0270db4c429"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-02-02T12:44:12.708Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:38:59.352Z"
+ },
+ "__v": 0,
+ "image": "food_1739469537281.png"
+},
+{
+ "_id": {
+ "$oid": "679fed0ebd2ce20057151eaa"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "معجون نوتلا",
+ "description": "بستنی معجون ، موز ، گردو ، پسته ، فندوق ، بادام هندی ، پودر نارگیل و پسته ، نوتلا (از هر مغز ۳ تا ۴ عدد)",
+ "short_description": "",
+ "category": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1738534156977.png",
+ "created_at": {
+ "$date": "2025-02-02T22:09:18.699Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-02T22:09:18.699Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679fee92bd2ce20057151f1f"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنک ژامبون مرغ",
+ "description": "یک جفت، ژامبون مرغ 90 درصد، فلفل دلمه ای، قارچ، پنیر پیتزا (مخلوط کاله و مطهر)، سس و ادویه مخصوص، همراه با سالاد کاهو",
+ "short_description": "",
+ "category": {
+ "$oid": "673db4bac3c0100063e83ef2"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1738534544438.png",
+ "created_at": {
+ "$date": "2025-02-02T22:15:46.405Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:17:14.195Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679fef4fbd2ce20057151f43"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنک پپرونی",
+ "description": "یک جفت، کالباس پپیرونی ، فلفل دلمه ای، قارچ، پنیر پیتزا (مخلوط کاله و مطهر)، سس و ادویه مخصوص، همراه با سالاد کاهو",
+ "short_description": "",
+ "category": {
+ "$oid": "673db4bac3c0100063e83ef2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1738534733565.png",
+ "created_at": {
+ "$date": "2025-02-02T22:18:55.487Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:16:46.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "679fef98bd2ce20057151f56"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنک ژامبون گوشت ",
+ "description": "یک جفت، ژامبون گوشت ۹۰ درصد ، فلفل دلمه ای، قارچ، پنیر پیتزا (مخلوط کاله و مطهر)، سس و ادویه مخصوص، همراه با سالاد کاهو",
+ "short_description": "",
+ "category": {
+ "$oid": "673db4bac3c0100063e83ef2"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1738534806343.png",
+ "created_at": {
+ "$date": "2025-02-02T22:20:08.295Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:16:23.064Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a0a839bd2ce200571529de"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی شکلات پرتقال",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-02-03T11:27:53.079Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:53:42.578Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a0a872bd2ce200571529f2"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی چاکلت چیپسی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-02-03T11:28:50.849Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:53:16.210Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b7a1bd2ce20057159458"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو",
+ "description": "آب + اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:34:57.656Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:24:42.582Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b7ecbd2ce20057159462"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو",
+ "description": "نسبت مساوی شیر و قهوه",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:36:12.267Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:24:56.696Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b85abd2ce20057159482"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "قهوه و شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:38:02.158Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:24:13.432Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b8c7bd2ce20057159492"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیسکولاته",
+ "description": "کرم لوتوس شیر و اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:39:51.561Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:23:20.185Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b992bd2ce200571594a8"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "شکلات اسپرسو شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:43:14.849Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:25:15.225Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5b9edbd2ce200571594b5"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "سیروپ کارامل شیر اسپرسو ",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:44:45.409Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-27T08:14:34.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bb0cbd2ce20057159509"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نسکافه",
+ "description": "پودر نسکافه شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:49:32.053Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:26:05.901Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bb51bd2ce20057159513"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "شیر اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:50:41.085Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:26:19.854Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bc21bd2ce2005715957f"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کن هیلو ",
+ "description": "اسپرسو یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:54:09.801Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:35:17.474Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bc68bd2ce2005715958f"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:55:20.452Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:26:56.188Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bcaebd2ce200571595a2"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس موکا",
+ "description": "شکلات اسپرسو شیر یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:56:30.075Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:27:27.894Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bcf7bd2ce200571595ae"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس لاته",
+ "description": "شیر اسپرسو یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T07:57:43.249Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T18:22:38.294Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bd86bd2ce200571595c5"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کارامل ماکیاتو",
+ "description": "سیروپ کارامل اسپرسو شیر یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:00:06.715Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-26T15:46:39.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bdf2bd2ce200571595e7"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آفوگاتو",
+ "description": "بستنی وانیل اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:01:54.935Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:02:15.963Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5be54bd2ce2005715960b"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس کوکولاته",
+ "description": "سیروپ نارگیل اسپرسو شیر یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:03:32.146Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-27T08:13:47.755Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5bec0bd2ce20057159627"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس لاته فندوق",
+ "description": "سیروپ فندوق اسپرسو شیر یخ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5bba6bd2ce20057159539"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:05:20.099Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-27T08:13:31.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c34dbd2ce2005715969c"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:24:45.810Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:12:19.087Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c38dbd2ce200571596a6"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:25:49.111Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:47:16.384Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c3edbd2ce200571596b0"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس تخم مرغ مخصوص",
+ "description": "سوسیس، تخم مرغ، رب، ادویه مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:27:25.890Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:46:46.542Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c4d9bd2ce200571596d0"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "املت ژامبون ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:31:21.727Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:14:59.404Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c518bd2ce200571596da"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت با قارچ و پنیر",
+ "description": "قارچ و پنیر رب و تخم مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c045bd2ce20057159653"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:32:24.571Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:45:17.155Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c70abd2ce2005715972a"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاسیک فرایز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c6b9bd2ce2005715971a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:40:42.316Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-07T08:40:42.316Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5c755bd2ce20057159740"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت فرایز",
+ "description": "سیب زمینی سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5c6b9bd2ce2005715971a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T08:41:57.289Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:45:56.527Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5cc66bd2ce20057159820"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه ساده",
+ "description": "فرنچ چای نبات ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:03:34.464Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:44:45.294Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5ccc2bd2ce20057159839"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای ویژه",
+ "description": "هل دارچین نبات ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:05:06.699Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:44:01.614Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5cdcebd2ce2005715986c"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای نعنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:09:34.451Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:43:33.749Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5cdfcbd2ce20057159876"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گل گاو زبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:10:20.365Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:42:26.468Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5ce7ebd2ce200571598a7"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرامش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:12:30.386Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:06:00.447Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5ced4bd2ce200571598bb"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T09:13:56.011Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:08:07.882Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5ff58bd2ce2005715a00b"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیموناد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T12:40:56.963Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-24T13:24:48.746Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a5ffcfbd2ce2005715a022"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T12:42:55.664Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-24T13:24:19.337Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a6035bbd2ce2005715a064"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلو لایم",
+ "description": "آب اناناس سیب سبز پرتقال سیروپ بلو کاراسائو",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T12:58:03.290Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:18:30.461Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a603d9bd2ce2005715a06e"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رد پلام ",
+ "description": "اب الو قرمز ابلیمو جز هندی سیروپ کرن بری",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:00:09.191Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:17:36.058Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60b6fbd2ce2005715a0fb"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک وانیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:32:31.590Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:16:24.745Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60baabd2ce2005715a105"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:33:30.504Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:15:37.408Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60c11bd2ce2005715a115"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لوتوس ",
+ "description": " بستنی وانیل کرم لوتوس ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:35:13.917Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:14:05.890Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60ccabd2ce2005715a12b"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی ",
+ "description": "بستنی کره بادام زمینی ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:38:18.908Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:13:17.524Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60d65bd2ce2005715a164"
+ },
+ "price": 1870000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک استرانوتلا",
+ "description": "بستنی توت فرنگی نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:40:53.349Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:11:43.191Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a60e32bd2ce2005715a1b7"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کوکو بنانا",
+ "description": "بستنی وانیل و شکلات نوتلا موز نارگیل ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a60565bd2ce2005715a0b6"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T13:44:18.726Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:10:40.783Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a619f5bd2ce2005715a3f8"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا چیکن آلفردو",
+ "description": "قارچ خامه پنه 150گرم فیله مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:34:29.062Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:09:03.537Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61a68bd2ce2005715a408"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا بیف آلفردو ",
+ "description": "قارچ خامه پنه 150گرم گوشت قرمز ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:36:24.206Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:08:21.174Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61af8bd2ce2005715a451"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استراگانوف",
+ "description": "قارچ خامه خلال سیب زمینی 150 گرم فیله مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:38:48.056Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:07:34.558Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61c83bd2ce2005715a581"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیف استراگانوف ",
+ "description": "قارچ خامه خلال سیب زمینی 150 گرم گوشت قرمز ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:45:23.772Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:02:38.522Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61de4bd2ce2005715a5c8"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کلاسیک برگر ",
+ "description": "نان برگر مخصوص 150گرم برگر 90 درصد ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:51:16.650Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:41:26.150Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61e73bd2ce2005715a5ed"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ماشروم برگر ",
+ "description": "سس قارچ نان مخصوص 150 گرم برگر 90 درصد گوشت ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:53:39.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:41:08.036Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67a61fa2bd2ce2005715a63c"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "چیز برگر ",
+ "description": "نان مخصوص پنیر گودا پنیر کاراملی 150 گرم برگر 90 درصد گوشت ",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-07T14:58:42.326Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:40:38.572Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b2538853628200621fd90e"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "هات چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:07:20.442Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:20:27.549Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b253c453628200621fd924"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "هات کوکونات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:08:20.166Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:19:51.256Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b253f853628200621fd92e"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "هات فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:09:12.488Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:19:27.565Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b2542653628200621fd938"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "دارک چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:09:58.238Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:20:57.422Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b2549c53628200621fd942"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:11:56.703Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:21:25.251Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b254c953628200621fd94c"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:12:41.584Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:22:49.306Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b254f453628200621fd95f"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیسکو ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:13:24.702Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:22:24.796Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b2558053628200621fd984"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ناتی ماسالا",
+ "description": "کره بادام زمینی ماسالا",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:15:44.290Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-12T14:22:00.253Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b255b553628200621fd99a"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:16:37.410Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:24:02.214Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b25b8b53628200621fda08"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:41:31.242Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-24T13:27:05.662Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b25be753628200621fda12"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نبات اضافه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-16T21:43:03.598Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T19:00:58.872Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67b36e9753628200621fed63"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ساندویچ ویژه",
+ "description": "هاتداگ مجاری، سس قارچ، ژامبون تنوری، نان چارکی",
+ "short_description": "",
+ "category": {
+ "$oid": "67a61944bd2ce2005715a3c7"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-02-17T17:15:03.915Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:22:40.678Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67bdaf85536282006220e4ba"
+ },
+ "price": 1690000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت لاگون",
+ "description": "آرمای دارچین در کنار طراوت میوه های استوایی",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a9671ee4b0270db4c72b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-02-25T11:54:45.869Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-27T11:18:34.259Z"
+ },
+ "__v": 0,
+ "image": "food_1740650953725.png"
+},
+{
+ "_id": {
+ "$oid": "67d31649536282006222b2b0"
+ },
+ "price": 1580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی رژیمی آجیلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-03-13T17:30:49.869Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:54:31.834Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67d83ce353628200622319f2"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماءالشعیرمخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "image": "food_1742224608597.png",
+ "created_at": {
+ "$date": "2025-03-17T15:16:51.311Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-02T16:35:07.528Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e97fc9536282006224d17e"
+ },
+ "price": 2550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بشقاب وافل بستنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "image": "food_1743355847058.png",
+ "created_at": {
+ "$date": "2025-03-30T17:30:49.162Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-30T17:30:49.162Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a0c6536282006224de64"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو70/30عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364293564.png",
+ "created_at": {
+ "$date": "2025-03-30T19:51:34.565Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:26:54.445Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a0f9536282006224de79"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364344906.png",
+ "created_at": {
+ "$date": "2025-03-30T19:52:25.877Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T10:03:35.884Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a134536282006224de88"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364403723.png",
+ "created_at": {
+ "$date": "2025-03-30T19:53:24.969Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:27:27.193Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a172536282006224de92"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کورتادو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364465048.png",
+ "created_at": {
+ "$date": "2025-03-30T19:54:26.095Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T09:37:24.554Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a199536282006224de9c"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364504072.png",
+ "created_at": {
+ "$date": "2025-03-30T19:55:05.376Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-07T09:36:30.893Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a1b8536282006224dea9"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364535455.png",
+ "created_at": {
+ "$date": "2025-03-30T19:55:36.681Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:28:22.325Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a1ea536282006224deb3"
+ },
+ "price": 1360000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاپوچینو",
+ "description": "شیر . قهوه 50/50",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364584676.png",
+ "created_at": {
+ "$date": "2025-03-30T19:56:26.012Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:29:33.142Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a241536282006224debd"
+ },
+ "price": 1580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364671908.png",
+ "created_at": {
+ "$date": "2025-03-30T19:57:53.069Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:43:28.347Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a26f536282006224deca"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سه شیر شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743364718345.png",
+ "created_at": {
+ "$date": "2025-03-30T19:58:39.411Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:40:18.531Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a2f3536282006224deda"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تارت وانیل توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1745075465530.png",
+ "created_at": {
+ "$date": "2025-03-30T20:00:51.274Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-30T11:34:36.734Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a312536282006224deea"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تارت شکلات توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:01:22.980Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-03T10:09:49.039Z"
+ },
+ "__v": 0,
+ "image": "food_1745075559489.png"
+},
+{
+ "_id": {
+ "$oid": "67e9a336536282006224def4"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تارت شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:01:58.568Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T14:23:31.114Z"
+ },
+ "__v": 0,
+ "image": "food_1745075535367.png"
+},
+{
+ "_id": {
+ "$oid": "67e9a367536282006224df01"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنیکرز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1745075435287.png",
+ "created_at": {
+ "$date": "2025-03-30T20:02:47.544Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:42:35.279Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a39e536282006224df0b"
+ },
+ "price": 1070000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزکیک نیویورکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1745075502061.png",
+ "created_at": {
+ "$date": "2025-03-30T20:03:42.314Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-05T12:41:46.516Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a3d2536282006224df15"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزکیک لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743365073647.png",
+ "created_at": {
+ "$date": "2025-03-30T20:04:34.961Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-24T14:11:54.536Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a3fe536282006224df25"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیزکیک سن سباستین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:05:18.137Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:37:30.486Z"
+ },
+ "__v": 0,
+ "image": "food_1745075798711.png"
+},
+{
+ "_id": {
+ "$oid": "67e9a43c536282006224df3d"
+ },
+ "price": 1030000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:06:20.492Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-05T12:40:26.873Z"
+ },
+ "__v": 0,
+ "image": "food_1745075898953.png"
+},
+{
+ "_id": {
+ "$oid": "67e9a466536282006224df4a"
+ },
+ "price": 630000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:07:02.071Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:53:10.873Z"
+ },
+ "__v": 0,
+ "image": "food_1766415189898.png"
+},
+{
+ "_id": {
+ "$oid": "67e9a48f536282006224df54"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رول دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99de8536282006224dc82"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:07:43.382Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-30T20:07:43.382Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a4b5536282006224df5e"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فلت کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99de8536282006224dc82"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:08:21.366Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-30T20:08:21.366Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a4e6536282006224df6b"
+ },
+ "price": 420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوییس برد",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99de8536282006224dc82"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:09:10.593Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-30T20:09:10.593Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67e9a51b536282006224df78"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیویورک رول",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99de8536282006224dc82"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-30T20:10:03.511Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-30T20:10:03.511Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8b18536282006224ee4c"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه لاهیجان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424279408.png",
+ "created_at": {
+ "$date": "2025-03-31T12:31:20.412Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:31:08.201Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8b3b536282006224ee65"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرچای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424314094.png",
+ "created_at": {
+ "$date": "2025-03-31T12:31:55.262Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:32:38.666Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8b5f536282006224ee6f"
+ },
+ "price": 1020000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش کاسکارا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424350103.png",
+ "created_at": {
+ "$date": "2025-03-31T12:32:31.122Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T12:32:31.122Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8b81536282006224ee7c"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش نعنای مراکشی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424384817.png",
+ "created_at": {
+ "$date": "2025-03-31T12:33:05.935Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:33:08.116Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8ba0536282006224ee89"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش جزمین ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424415786.png",
+ "created_at": {
+ "$date": "2025-03-31T12:33:36.890Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:33:48.123Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8bc0536282006224ee93"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوش لمون گرس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424447389.png",
+ "created_at": {
+ "$date": "2025-03-31T12:34:08.454Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:34:49.966Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8bdc536282006224eeaf"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش گل گاوزبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424474750.png",
+ "created_at": {
+ "$date": "2025-03-31T12:34:36.046Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:34:21.359Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8c03536282006224eece"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424513858.png",
+ "created_at": {
+ "$date": "2025-03-31T12:35:15.189Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:35:24.052Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8c20536282006224eed8"
+ },
+ "price": 830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش اویشن عسل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424543729.png",
+ "created_at": {
+ "$date": "2025-03-31T12:35:44.936Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:37:01.970Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8c59536282006224eee8"
+ },
+ "price": 760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش میکس",
+ "description": "گل گاو زبان رز چینی اویشن چای سبز عسل",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424600044.png",
+ "created_at": {
+ "$date": "2025-03-31T12:36:41.203Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:36:34.456Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8c70536282006224eef2"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای زعفران ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424623958.png",
+ "created_at": {
+ "$date": "2025-03-31T12:37:04.977Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:36:09.025Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8c8e536282006224eefc"
+ },
+ "price": 740000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424653130.png",
+ "created_at": {
+ "$date": "2025-03-31T12:37:34.283Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T12:37:34.283Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8ca8536282006224ef06"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424679613.png",
+ "created_at": {
+ "$date": "2025-03-31T12:38:00.909Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:39:01.532Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8cd3536282006224ef10"
+ },
+ "price": 1340000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424722177.png",
+ "created_at": {
+ "$date": "2025-03-31T12:38:43.275Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:32:47.977Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8cf7536282006224ef1d"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424758258.png",
+ "created_at": {
+ "$date": "2025-03-31T12:39:19.551Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:33:29.292Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8d16536282006224ef27"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424789295.png",
+ "created_at": {
+ "$date": "2025-03-31T12:39:50.782Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:33:59.923Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8d32536282006224ef31"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424816575.png",
+ "created_at": {
+ "$date": "2025-03-31T12:40:18.008Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:34:33.811Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8d4f536282006224ef3b"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس پشن اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424845982.png",
+ "created_at": {
+ "$date": "2025-03-31T12:40:47.426Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:35:24.252Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8d74536282006224ef45"
+ },
+ "price": 1160000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424882858.png",
+ "created_at": {
+ "$date": "2025-03-31T12:41:24.013Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:52:33.152Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8dbd536282006224ef52"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743424956422.png",
+ "created_at": {
+ "$date": "2025-03-31T12:42:37.712Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:35:50.858Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8e03536282006224ef62"
+ },
+ "price": 2030000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو بیسکوییت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425026117.png",
+ "created_at": {
+ "$date": "2025-03-31T12:43:47.371Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:36:25.324Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8e2b536282006224ef6c"
+ },
+ "price": 1880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو فندق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425066064.png",
+ "created_at": {
+ "$date": "2025-03-31T12:44:27.366Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:36:49.502Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8e52536282006224ef79"
+ },
+ "price": 1860000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فراپاچینو بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425105083.png",
+ "created_at": {
+ "$date": "2025-03-31T12:45:06.331Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:48:58.999Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8e79536282006224ef98"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وان پیس ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425142826.png",
+ "created_at": {
+ "$date": "2025-03-31T12:45:45.221Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:21:04.406Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8ea1536282006224efa8"
+ },
+ "price": 1060000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "منگوپل",
+ "description": "اناناس انبه سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425184464.png",
+ "created_at": {
+ "$date": "2025-03-31T12:46:25.682Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:21:24.287Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8ed2536282006224efc4"
+ },
+ "price": 710000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مانتیی",
+ "description": "کرن بری لیمو تریپل سک سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425233026.png",
+ "created_at": {
+ "$date": "2025-03-31T12:47:14.438Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:21:59.545Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8eff536282006224efe3"
+ },
+ "price": 1090000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مجیک مومنت",
+ "description": "پرتقال قرمز لیمو کرن بری تریپل سک سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425278366.png",
+ "created_at": {
+ "$date": "2025-03-31T12:47:59.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:22:36.437Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8f19536282006224eff6"
+ },
+ "price": 840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425304489.png",
+ "created_at": {
+ "$date": "2025-03-31T12:48:25.783Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:22:59.305Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8f3c536282006224f018"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425339605.png",
+ "created_at": {
+ "$date": "2025-03-31T12:49:00.806Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:50:55.525Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8f5c536282006224f02e"
+ },
+ "price": 1660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425371152.png",
+ "created_at": {
+ "$date": "2025-03-31T12:49:32.177Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:53:00.355Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8f73536282006224f038"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک وانیل ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425394027.png",
+ "created_at": {
+ "$date": "2025-03-31T12:49:55.447Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:52:23.078Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8f8f536282006224f04e"
+ },
+ "price": 1820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بادام زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425422246.png",
+ "created_at": {
+ "$date": "2025-03-31T12:50:23.928Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:51:48.677Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8fb6536282006224f058"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت کوچک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425461105.png",
+ "created_at": {
+ "$date": "2025-03-31T12:51:02.180Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:37:49.363Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8fce536282006224f065"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات چاکلت بزرگ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425485315.png",
+ "created_at": {
+ "$date": "2025-03-31T12:51:26.364Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:45:00.525Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea8fed536282006224f06f"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99dbf536282006224dc58"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425516799.png",
+ "created_at": {
+ "$date": "2025-03-31T12:51:57.812Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:42:39.971Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea900f536282006224f085"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرعسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99dbf536282006224dc58"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425550396.png",
+ "created_at": {
+ "$date": "2025-03-31T12:52:31.468Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:44:50.192Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea9048536282006224f08f"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر عسل دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99dbf536282006224dc58"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425607248.png",
+ "created_at": {
+ "$date": "2025-03-31T12:53:28.507Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:46:45.849Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea90e9536282006224f0c6"
+ },
+ "price": 1210000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاب گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99e00536282006224dc91"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425767434.png",
+ "created_at": {
+ "$date": "2025-03-31T12:56:09.187Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T15:41:43.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea9103536282006224f0d1"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاب مرغ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99e00536282006224dc91"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425794235.png",
+ "created_at": {
+ "$date": "2025-03-31T12:56:35.782Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T15:41:24.517Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea912b536282006224f0e9"
+ },
+ "price": 1430000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلاب بوقلمون",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99e00536282006224dc91"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1743425833967.png",
+ "created_at": {
+ "$date": "2025-03-31T12:57:15.540Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T15:41:07.994Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea914c536282006224f0fc"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99e11536282006224dc9a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-31T12:57:48.647Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T12:57:48.647Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea9162536282006224f112"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد ماکارانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99e11536282006224dc9a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-31T12:58:10.061Z"
+ },
+ "updated_at": {
+ "$date": "2025-03-31T12:58:10.061Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ea9e19536282006224f5a1"
+ },
+ "price": 980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-31T13:52:25.374Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:47:47.034Z"
+ },
+ "__v": 0,
+ "image": "food_1745075310765.png"
+},
+{
+ "_id": {
+ "$oid": "67ea9e33536282006224f5ab"
+ },
+ "price": 790000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-03-31T13:52:51.496Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-05T12:37:54.119Z"
+ },
+ "__v": 0,
+ "image": "food_1745075289490.png"
+},
+{
+ "_id": {
+ "$oid": "67f517f7f43a0a007b471920"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "آویشن عسل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-04-08T12:35:03.149Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:20:33.842Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa078f43a0a007b479979"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنک مخصوص",
+ "description": "یک جفت، ترکیب ژامبون مرغ و گوشت ۹۰%، پنیر پیتزا ترکیبی (مخلوط کاله و مطهر) قارچ، فلفل دلمه ای، سس مخصوص، ادویه اویشن فلفل، پنیر گودا، چیپس خلال، سالاد کاهو",
+ "short_description": "",
+ "category": {
+ "$oid": "673db4bac3c0100063e83ef2"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-04-12T17:18:48.396Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-24T18:17:48.989Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa768f43a0a007b479b7e"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یونانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6522a77659383e8d75527f18"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480103541.png",
+ "created_at": {
+ "$date": "2025-04-12T17:48:24.897Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:15:44.550Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa79df43a0a007b479ba5"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا شنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6522a77659383e8d75527f18"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T17:49:17.977Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:14:48.623Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa837f43a0a007b479c0e"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پشن لایف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6527fce059383e8d7552d4be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480310105.png",
+ "created_at": {
+ "$date": "2025-04-12T17:51:51.575Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:58:36.652Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa884f43a0a007b479c3f"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارابیچ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480386774.png",
+ "created_at": {
+ "$date": "2025-04-12T17:53:08.131Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:54:51.127Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa8cbf43a0a007b479c5a"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرن دریم",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480458800.png",
+ "created_at": {
+ "$date": "2025-04-12T17:54:19.867Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:54:19.867Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa930f43a0a007b479c7f"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گرین گاردن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480557853.png",
+ "created_at": {
+ "$date": "2025-04-12T17:56:00.420Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:56:00.420Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faa972f43a0a007b479c97"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بری موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744480625767.png",
+ "created_at": {
+ "$date": "2025-04-12T17:57:06.828Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:21:47.716Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaabcf43a0a007b479d0c"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ کارامل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:02:36.911Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T16:51:45.404Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaad6f43a0a007b479d24"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ کوکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:03:02.907Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T16:51:26.118Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaafff43a0a007b479d31"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ پاپکورن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:03:43.010Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T16:51:09.697Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faab1ef43a0a007b479d3e"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ فندوق",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ee00e59383e8d75523c4e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:04:14.545Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T16:50:49.684Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaf06f43a0a007b479efc"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لیدی کیس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67faae25f43a0a007b479eaa"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744482053233.png",
+ "created_at": {
+ "$date": "2025-04-12T18:20:54.475Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:20:54.475Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaf2af43a0a007b479f0c"
+ },
+ "price": 2990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هوراکان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67faae25f43a0a007b479eaa"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744482088578.png",
+ "created_at": {
+ "$date": "2025-04-12T18:21:30.846Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:21:30.846Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaf54f43a0a007b479f2e"
+ },
+ "price": 2890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "واینکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67faae25f43a0a007b479eaa"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "image": "food_1744482131071.png",
+ "created_at": {
+ "$date": "2025-04-12T18:22:12.288Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:22:12.288Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67faaf71f43a0a007b479f38"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ارسیسا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67faae25f43a0a007b479eaa"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-12T18:22:41.867Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T18:22:41.867Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67fbec15c4a0d20062ba154a"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک استرابری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef0b759383e8d7552437a"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-13T16:53:41.186Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-13T16:53:41.186Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67fc02dec4a0d20062ba1e7e"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "کیک شکلات",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67fc02bbc4a0d20062ba1e6c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-04-13T18:30:54.576Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:22:21.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67fc032dc4a0d20062ba1ea6"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سن سباستین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67fc02bbc4a0d20062ba1e6c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-04-13T18:32:13.904Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:22:01.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67fc035ec4a0d20062ba1ebc"
+ },
+ "price": 150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "ترافل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67fc02bbc4a0d20062ba1e6c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-04-13T18:33:02.828Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:21:46.353Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "67ffbbe7c4a0d20062ba68c1"
+ },
+ "price": 1880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک کوکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1744813029366.png",
+ "created_at": {
+ "$date": "2025-04-16T14:17:11.314Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:51:20.695Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6801535ac4a0d20062baa655"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ویرجین کولادا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "651ef22159383e8d75524416"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "created_at": {
+ "$date": "2025-04-17T19:15:38.543Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-29T14:22:23.149Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6803bcc7c4a0d20062baeade"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سه شیر وانیلی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1745075397924.png",
+ "created_at": {
+ "$date": "2025-04-19T15:09:59.227Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:39:34.942Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "680610567383a10062ca101b"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کروسان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1e0fc1eece3d762639b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-04-21T09:31:02.224Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-21T09:31:02.224Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "680818727383a10062ca4be0"
+ },
+ "price": 100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "tetA",
+ "description": "tst",
+ "short_description": "",
+ "category": {
+ "$oid": "680816f77383a10062ca4ba5"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "678922c2a4463c0057e52bde"
+ },
+ "image": "food_1745361100953.png",
+ "created_at": {
+ "$date": "2025-04-22T22:30:10.288Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-22T22:55:20.735Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6814fbb4f114460057d0c7a2"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-05-02T17:07:00.119Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-02T17:07:00.119Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "681730c4f114460057d0ff56"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پای سیب",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1746350274914.png",
+ "created_at": {
+ "$date": "2025-05-04T09:17:56.790Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-05T12:37:08.018Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "681730e6f114460057d0ff60"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پای توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1746350309090.png",
+ "created_at": {
+ "$date": "2025-05-04T09:18:30.617Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-05T12:36:43.603Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "681736f3f114460057d10017"
+ },
+ "price": 5450000,
+ "stock": 3,
+ "static_discount": 0,
+ "active": true,
+ "name": "گارلیک چیکن/ Garlick chicken",
+ "description": "دیپ قارچ و پنیر/ترکیب پنیر معطر/تکه های مرغ مزه دار شده بر پایه سیر/فلفل دلمه ای/ریحان ایتالیایی/اورگانو",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-05-04T09:44:19.286Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-04T11:21:22.178Z"
+ },
+ "__v": 0,
+ "image": "food_1761750232870.png"
+},
+{
+ "_id": {
+ "$oid": "6818a396f114460057d12863"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاریس برست",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1746445205213.png",
+ "created_at": {
+ "$date": "2025-05-05T11:40:06.786Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-03T10:12:15.109Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682edc5ff114460057d36ab4"
+ },
+ "price": 1820000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ۱۰۰ برزیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:12:15.852Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T13:24:27.907Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682edc92f114460057d36abe"
+ },
+ "price": 1980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ۱۰۰ ال سالوادور",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:13:06.972Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T13:25:36.538Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee1bdf114460057d36d3e"
+ },
+ "price": 1780000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو کولا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:35:09.959Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T19:21:28.084Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee2dcf114460057d36dfd"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر شات انار",
+ "description": "آب انار، زنجبیل",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:39:56.523Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T19:32:31.182Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee69af114460057d36f85"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی شکلات گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:55:54.293Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:52:32.969Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee6b4f114460057d36f97"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی دبل چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:56:20.300Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:48:13.082Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee6d0f114460057d36fa9"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی رژیمی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:56:48.271Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:48:37.247Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "682ee6e7f114460057d36fb3"
+ },
+ "price": 1120000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی بادامزمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-05-22T08:57:11.143Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:47:55.144Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68319f98f114460057d3c836"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بری - berry milkshake",
+ "description": "توت فرنگی / شاتوت / وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a1befc1eece3d7626390"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-05-24T10:29:44.453Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:53:15.483Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6831a091f114460057d3c85f"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موکا توت فرنگی - Strawberry mocha",
+ "description": "توت فرنگی / شکلات / قهوه / شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "64a6937598ff3c741447ce92"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-05-24T10:33:53.881Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-24T10:33:53.881Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68416f60f114460057d567f3"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یارا...yara",
+ "description": "بیدمشک /خاکشیر/سرددم چای ترش",
+ "short_description": "",
+ "category": {
+ "$oid": "663a58217d6ac20062299ee4"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-06-05T10:20:16.293Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:58:35.625Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68472d9df114460057d611bd"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نوشابه لیوانی ",
+ "description": "کوکا/فانتا/ اسپرایت/ آب سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-06-09T18:53:17.850Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-29T11:29:16.437Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6847c70ef114460057d617ee"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا آلفردو",
+ "description": "پاستا تازه،سس آلفردو، قارچ بلانچ شده،پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-10T05:47:58.838Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:22:01.276Z"
+ },
+ "__v": 0,
+ "image": "food_1760984472872.png"
+},
+{
+ "_id": {
+ "$oid": "68486256f114460057d626cf"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سیاه لاهیجان 3کاپ",
+ "description": "برگ دستچین شده مزارع لاهیجان،همراه با تاپینگ دارچین، زعفران یا هل",
+ "short_description": "",
+ "category": {
+ "$oid": "6207a2ee1ee4b0270db4c44f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "image": "food_1749574230701.png",
+ "created_at": {
+ "$date": "2025-06-10T16:50:31.006Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:51:46.384Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684ad37bf114460057d65c12"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک استرابلا",
+ "description": "بستنی، شیر، نوتلا، توتفرنگی، پورهی توتفرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "684ad2a6f114460057d65be3"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-06-12T13:17:47.913Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:00:10.472Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "684ad3acf114460057d65c1d"
+ },
+ "price": 2110000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک پیناتی",
+ "description": "بستنی، شیر، موز، بادامزمینی، سس کاراملنمکی",
+ "short_description": "",
+ "category": {
+ "$oid": "684ad2a6f114460057d65be3"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-06-12T13:18:36.897Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:00:37.176Z"
+ },
+ "__v": 0,
+ "image": "food_1753793881494.png"
+},
+{
+ "_id": {
+ "$oid": "684ad3d5f114460057d65c29"
+ },
+ "price": 2060000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک فروتی",
+ "description": "بستنی، شیر، شاتوت، توتفرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "684ad2a6f114460057d65be3"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-06-12T13:19:17.768Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:09:59.427Z"
+ },
+ "__v": 0,
+ "image": "food_1753793899891.png"
+},
+{
+ "_id": {
+ "$oid": "684ad409f114460057d65c33"
+ },
+ "price": 2510000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک ماچانگو",
+ "description": "بستنی، شیر نارگیل، سیروپ نارگیل، انبه، ماچا",
+ "short_description": "",
+ "category": {
+ "$oid": "684ad2a6f114460057d65be3"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-06-12T13:20:09.211Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:10:17.756Z"
+ },
+ "__v": 0,
+ "image": "food_1753793935719.png"
+},
+{
+ "_id": {
+ "$oid": "684be542f114460057d67a53"
+ },
+ "price": 3290000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا ریحان و پسته ",
+ "description": "پاستا تازه ،سس کرم ریحان، مغز پسته،پنیر پارمسان،سیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:45:54.803Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:39:41.356Z"
+ },
+ "__v": 0,
+ "image": "food_1760981977562.png"
+},
+{
+ "_id": {
+ "$oid": "684be570f114460057d67a60"
+ },
+ "price": 3480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا گود کرما",
+ "description": "پاستا تازه ، سس گود کرما(ترکیب خامه و پنیر گودا)،مغز گردو ، پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:46:40.644Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:36:58.247Z"
+ },
+ "__v": 0,
+ "image": "food_1760981814392.png"
+},
+{
+ "_id": {
+ "$oid": "684be5adf114460057d67a80"
+ },
+ "price": 3490000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا چدارلا",
+ "description": "پاستا تازه،سس چدار ،پنیر موزارلا،مغز بادام هندی",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:47:41.781Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:35:54.637Z"
+ },
+ "__v": 0,
+ "image": "food_1760981750380.png"
+},
+{
+ "_id": {
+ "$oid": "684be5f0f114460057d67a92"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاساتا پلاس",
+ "description": "پاستا تازه،سس تمیتو فرش، گوجه گیلاسی،سبزیجات معطر،پنیر ،بادام هندی و گردو،پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:48:48.452Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:31:09.118Z"
+ },
+ "__v": 0,
+ "image": "food_1760981465649.png"
+},
+{
+ "_id": {
+ "$oid": "684be62ff114460057d67ab5"
+ },
+ "price": 2550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هاتینو پاستا(تند)",
+ "description": "پاستا تازه، سس چیلی ،فلفل،گوجه گیلاسی، سبزیجات معطر، پنیر پارمسان",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:49:51.894Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:29:56.383Z"
+ },
+ "__v": 0,
+ "image": "food_1760981392033.png"
+},
+{
+ "_id": {
+ "$oid": "684be667f114460057d67abf"
+ },
+ "price": 3800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "راویولی پنیر و مرغ ( روزهای دوشنبه و سه شنبه )",
+ "description": "پاستای تازه ،مرغ طعم دار شده ،پنیر ،بلوچیز،سیر، سس ماشروم کرم",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3cff114460057d679ed"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:50:47.312Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:58:42.336Z"
+ },
+ "__v": 0,
+ "image": "food_1760893100067.png"
+},
+{
+ "_id": {
+ "$oid": "684be7b9f114460057d67adb"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "راگو",
+ "description": "گوشت گردن گوساله آرام پز شده،سس باربیکی",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:56:25.348Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:56:09.553Z"
+ },
+ "__v": 0,
+ "image": "food_1760892964603.png"
+},
+{
+ "_id": {
+ "$oid": "684be7dff114460057d67ae5"
+ },
+ "price": 990000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن",
+ "description": "۱۵۰ گرم فیله مرغ طعم دار شده",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:57:03.221Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:54:28.986Z"
+ },
+ "__v": 0,
+ "image": "food_1760892860513.png"
+},
+{
+ "_id": {
+ "$oid": "684be7fff114460057d67aef"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میگو",
+ "description": "میگو طعم دار شده،سس سس گامباس،سبزیجات معطر",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:57:35.647Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:53:20.644Z"
+ },
+ "__v": 0,
+ "image": "food_1760892744593.png"
+},
+{
+ "_id": {
+ "$oid": "684be822f114460057d67af9"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن استیک",
+ "description": "۱۵۰ گرم فیله مرغ طعم دار شده با سس ماشروم کرم",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:58:10.376Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:51:12.506Z"
+ },
+ "__v": 0,
+ "image": "food_1760892668573.png"
+},
+{
+ "_id": {
+ "$oid": "684be83df114460057d67b03"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکن گوشت و مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:58:37.694Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T17:16:35.416Z"
+ },
+ "__v": 0,
+ "image": "food_1760892529571.png"
+},
+{
+ "_id": {
+ "$oid": "684be85af114460057d67b0d"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بادمجان",
+ "description": " بادمجان سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T08:59:06.371Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:47:13.848Z"
+ },
+ "__v": 0,
+ "image": "food_1760892427936.png"
+},
+{
+ "_id": {
+ "$oid": "684be984f114460057d67b35"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیاز کاراملی",
+ "description": "پیاز سفید ، کره ",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:04:04.551Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:43:48.646Z"
+ },
+ "__v": 0,
+ "image": "food_1760892187306.png"
+},
+{
+ "_id": {
+ "$oid": "684be9b0f114460057d67b3f"
+ },
+ "price": 890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وگن استار",
+ "description": "بادمجان ، گوجه گیلاسی، ذرت، قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:04:48.598Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:41:37.175Z"
+ },
+ "__v": 0,
+ "image": "food_1760892091585.png"
+},
+{
+ "_id": {
+ "$oid": "684be9def114460057d67b55"
+ },
+ "price": 4190000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "راگوسفردو",
+ "description": "نان چیاباتا،گوشت گردن آرام پز شده ، سس ماشروم کرم ،پیاز کاراملی،وجه",
+ "short_description": "",
+ "category": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:05:34.189Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:01:59.938Z"
+ },
+ "__v": 0,
+ "image": "food_1760983316509.png"
+},
+{
+ "_id": {
+ "$oid": "684be9fff114460057d67b6b"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکناتا",
+ "description": "فیله مرغ طعم داره ، سس ماشروم کرم ، پنیر گودا ، وجه",
+ "short_description": "",
+ "category": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:06:07.597Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:24:49.468Z"
+ },
+ "__v": 0,
+ "image": "food_1760984684653.png"
+},
+{
+ "_id": {
+ "$oid": "684bea1bf114460057d67b75"
+ },
+ "price": 3550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بیکندویچ",
+ "description": "بیکن گوشت ،سس پستو،پنیر پستو و موزرلا، قارچ بلانچ، وجه",
+ "short_description": "",
+ "category": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:06:35.878Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:23:30.095Z"
+ },
+ "__v": 0,
+ "image": "food_1760984608997.png"
+},
+{
+ "_id": {
+ "$oid": "684bea35f114460057d67b8e"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:07:01.130Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:11:44.920Z"
+ },
+ "__v": 0,
+ "image": "food_1760890300457.png"
+},
+{
+ "_id": {
+ "$oid": "684bea56f114460057d67ba2"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فانتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:07:34.843Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:13:43.628Z"
+ },
+ "__v": 0,
+ "image": "food_1760890421825.png"
+},
+{
+ "_id": {
+ "$oid": "684bea6af114460057d67bac"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:07:54.956Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:15:06.371Z"
+ },
+ "__v": 0,
+ "image": "food_1760890505141.png"
+},
+{
+ "_id": {
+ "$oid": "684bea7ff114460057d67bc2"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاکتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:08:15.812Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:23:47.483Z"
+ },
+ "__v": 0,
+ "image": "food_1760890822242.png"
+},
+{
+ "_id": {
+ "$oid": "684beaa8f114460057d67bdf"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکا زیرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:08:56.337Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:19:34.132Z"
+ },
+ "__v": 0,
+ "image": "food_1760890772796.png"
+},
+{
+ "_id": {
+ "$oid": "684beab9f114460057d67bf2"
+ },
+ "price": 110000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب معدنی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-06-13T09:09:13.551Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T16:17:19.857Z"
+ },
+ "__v": 0,
+ "image": "food_1760890584189.png"
+},
+{
+ "_id": {
+ "$oid": "684c0702f114460057d67e52"
+ },
+ "price": 300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آب سودا ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac60cdabb1b20239abe5bd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-06-13T11:09:54.663Z"
+ },
+ "updated_at": {
+ "$date": "2025-06-13T11:09:54.663Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "686102819086300011bdf82c"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش رشته کشک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T09:08:17.473Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:08:15.809Z"
+ },
+ "__v": 0,
+ "image": "food_1751458394662.png"
+},
+{
+ "_id": {
+ "$oid": "68611d9ea67e8f0012d55c38"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش رشته ترشی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:03:58.075Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:07:56.937Z"
+ },
+ "__v": 0,
+ "image": "food_1751458332627.png"
+},
+{
+ "_id": {
+ "$oid": "6861202aa67e8f0012d55c93"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش جو بدون سیرابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:14:50.692Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:07:28.787Z"
+ },
+ "__v": 0,
+ "image": "food_1751458284386.png"
+},
+{
+ "_id": {
+ "$oid": "686122c0a67e8f0012d55cdf"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش جو با سیرابی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:25:52.546Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:07:02.008Z"
+ },
+ "__v": 0,
+ "image": "food_1751458241590.png"
+},
+{
+ "_id": {
+ "$oid": "686122dfa67e8f0012d55cf3"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آش ترخینه",
+ "description": "ترخینه دست ساز خودم پز،سبزی آش و حبوبات، نعناداغ و پیازداغ",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:26:23.033Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:09:58.705Z"
+ },
+ "__v": 0,
+ "image": "food_1751458054499.png"
+},
+{
+ "_id": {
+ "$oid": "6861231ba67e8f0012d55d00"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کاله جوش",
+ "description": "کشک،گردو،سیر داغ،و نعنا داغ+دورچین پیاز",
+ "short_description": "",
+ "category": {
+ "$oid": "6861026c9086300011bdf813"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T11:27:23.040Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:06:30.773Z"
+ },
+ "__v": 0,
+ "image": "food_1751457990529.png"
+},
+{
+ "_id": {
+ "$oid": "68612c65a67e8f0012d55dc8"
+ },
+ "price": 4000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جغور بغور",
+ "description": "۲۵۰ گرم ترکیب جگر گوسفندی و جگر سفید+پیازداغ و چاشنی و دورچین سیب سرخ کرده",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:07:01.475Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:04:54.205Z"
+ },
+ "__v": 0,
+ "image": "food_1751457914487.png"
+},
+{
+ "_id": {
+ "$oid": "68612c90a67e8f0012d55ddb"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پلو خورشت فسنجان ",
+ "description": "یک پرس برنج ایرانی،گردو،رب انار،گوشت گرم چرخکرده،",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:07:44.658Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:05:20.382Z"
+ },
+ "__v": 0,
+ "image": "food_1751457659186.png"
+},
+{
+ "_id": {
+ "$oid": "68612cbaa67e8f0012d55de8"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پلو خورشت قورمه سبزی",
+ "description": "برنج ایرانی،گوشت گرم",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:08:26.126Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:03:51.929Z"
+ },
+ "__v": 0,
+ "image": "food_1751457555463.png"
+},
+{
+ "_id": {
+ "$oid": "68612d0ca67e8f0012d55df5"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پلو خورشت قیمه",
+ "description": "برنج ایرانی،گوشت گرم",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:09:48.487Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:03:28.724Z"
+ },
+ "__v": 0,
+ "image": "food_1751457401903.png"
+},
+{
+ "_id": {
+ "$oid": "68612d36a67e8f0012d55e02"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چلو کره",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:10:30.227Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T17:51:59.299Z"
+ },
+ "__v": 0,
+ "image": "food_1751457361220.png"
+},
+{
+ "_id": {
+ "$oid": "68612e2ca67e8f0012d55e4e"
+ },
+ "price": 2400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دلمه ",
+ "description": "برنج ایرانی،لپه،گوشت گرم،،،،،با چاشنی سرکه شکر",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:14:36.051Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:03:07.709Z"
+ },
+ "__v": 0,
+ "image": "food_1751457305461.png"
+},
+{
+ "_id": {
+ "$oid": "68612e47a67e8f0012d55e5b"
+ },
+ "price": 2800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوفته",
+ "description": "برنج ایرانی،لپه،گوشت گرم+سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:15:03.310Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:02:39.108Z"
+ },
+ "__v": 0,
+ "image": "food_1751457265694.png"
+},
+{
+ "_id": {
+ "$oid": "68612e80a67e8f0012d55e68"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوبیا پلو ",
+ "description": "برنج ایرانی،گوشت گرم،لوبیاسبز،زعفران",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:16:00.466Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-30T17:56:10.047Z"
+ },
+ "__v": 0,
+ "image": "food_1751457204685.png"
+},
+{
+ "_id": {
+ "$oid": "68612e8da67e8f0012d55e72"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماکارونی ",
+ "description": "گوشت گرم چرخکرده،دورچین خیارشور",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:16:13.524Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:01:24.393Z"
+ },
+ "__v": 0,
+ "image": "food_1751457166583.png"
+},
+{
+ "_id": {
+ "$oid": "68612e9ba67e8f0012d55e7c"
+ },
+ "price": 0,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو یا کتلت",
+ "description": "موجود نیست",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:16:27.705Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-17T18:25:39.601Z"
+ },
+ "__v": 0,
+ "image": "food_1751457113713.png"
+},
+{
+ "_id": {
+ "$oid": "68612fb2a67e8f0012d55e8c"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "عدسی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:21:06.763Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:49:58.864Z"
+ },
+ "__v": 0,
+ "image": "food_1751456994471.png"
+},
+{
+ "_id": {
+ "$oid": "68612ff0a67e8f0012d55e96"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لوبیا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:22:08.902Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:01:56.487Z"
+ },
+ "__v": 0,
+ "image": "food_1751456924636.png"
+},
+{
+ "_id": {
+ "$oid": "68613044a67e8f0012d55ea3"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:23:32.724Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:15:26.768Z"
+ },
+ "__v": 0,
+ "image": "food_1751456890468.png"
+},
+{
+ "_id": {
+ "$oid": "68613056a67e8f0012d55ead"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت شاپوری",
+ "description": "املت+لوبیا چیتی",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:23:50.218Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:00:43.586Z"
+ },
+ "__v": 0,
+ "image": "food_1751456837633.png"
+},
+{
+ "_id": {
+ "$oid": "68613081a67e8f0012d55eb7"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس تخم مرغ ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:24:33.491Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T13:00:15.003Z"
+ },
+ "__v": 0,
+ "image": "food_1751456795641.png"
+},
+{
+ "_id": {
+ "$oid": "68613096a67e8f0012d55ec1"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خاگینه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:24:54.104Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:59:52.941Z"
+ },
+ "__v": 0,
+ "image": "food_1751456757455.png"
+},
+{
+ "_id": {
+ "$oid": "686130b6a67e8f0012d55ece"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:25:26.160Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:45:14.863Z"
+ },
+ "__v": 0,
+ "image": "food_1751456712560.png"
+},
+{
+ "_id": {
+ "$oid": "686130cca67e8f0012d55edb"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "صبحانه ایرانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "686123c3a67e8f0012d55d3c"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:25:48.855Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:59:26.037Z"
+ },
+ "__v": 0,
+ "image": "food_1751456668824.png"
+},
+{
+ "_id": {
+ "$oid": "686130e4a67e8f0012d55ee5"
+ },
+ "price": 350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:26:12.242Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:58:55.119Z"
+ },
+ "__v": 0,
+ "image": "food_1751456591727.png"
+},
+{
+ "_id": {
+ "$oid": "686130f7a67e8f0012d55eef"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای مخصوص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:26:31.345Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:41:25.949Z"
+ },
+ "__v": 0,
+ "image": "food_1751456482433.png"
+},
+{
+ "_id": {
+ "$oid": "6861310ba67e8f0012d55efc"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آویشن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:26:51.848Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:57:47.738Z"
+ },
+ "__v": 0,
+ "image": "food_1751456436613.png"
+},
+{
+ "_id": {
+ "$oid": "68613124a67e8f0012d55f09"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش چای ترش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:27:16.179Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:57:15.899Z"
+ },
+ "__v": 0,
+ "image": "food_1751456360232.png"
+},
+{
+ "_id": {
+ "$oid": "68613137a67e8f0012d55f13"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرام بخش",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:27:35.205Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:56:53.861Z"
+ },
+ "__v": 0,
+ "image": "food_1751456209480.png"
+},
+{
+ "_id": {
+ "$oid": "68613147a67e8f0012d55f1d"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش،گل گاو زبان",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:27:51.072Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:56:24.661Z"
+ },
+ "__v": 0,
+ "image": "food_1751456113962.png"
+},
+{
+ "_id": {
+ "$oid": "68613168a67e8f0012d55f37"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوغ سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T12:28:24.976Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:33:58.103Z"
+ },
+ "__v": 0,
+ "image": "food_1751456034461.png"
+},
+{
+ "_id": {
+ "$oid": "6861564076ec130012b3a7d3"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شربت سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:05:36.194Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:32:06.488Z"
+ },
+ "__v": 0,
+ "image": "food_1751455922149.png"
+},
+{
+ "_id": {
+ "$oid": "68615b4a76ec130012b3a8d6"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کباب تابه ای",
+ "description": "۱۳۵ گرم گوشت گرم و تازه،یک عدد گوجه،سیب زمینی سرخ شده",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:27:06.780Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:55:36.928Z"
+ },
+ "__v": 0,
+ "image": "food_1753715784744.png"
+},
+{
+ "_id": {
+ "$oid": "68615bde76ec130012b3a903"
+ },
+ "price": 3800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پلو مرغ ویژه",
+ "description": "یک عدد ران،مخلفات،برنج ایرانی",
+ "short_description": "",
+ "category": {
+ "$oid": "686123a8a67e8f0012d55d33"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:29:34.753Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:02:59.924Z"
+ },
+ "__v": 0,
+ "image": "food_1751455810504.png"
+},
+{
+ "_id": {
+ "$oid": "68615eec76ec130012b3a9ea"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شله زرد",
+ "description": "برنج ایرانی،زعفران،هل و گلاب،شکر،خلال بادام",
+ "short_description": "",
+ "category": {
+ "$oid": "68615cf876ec130012b3a953"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:42:36.429Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:02:32.228Z"
+ },
+ "__v": 0,
+ "image": "food_1751455743435.png"
+},
+{
+ "_id": {
+ "$oid": "68615f3676ec130012b3a9fe"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "حلوا",
+ "description": "آرد،شکر،روغن،هل و گلاب و زعفران",
+ "short_description": "",
+ "category": {
+ "$oid": "68615cf876ec130012b3a953"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:43:50.958Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:03:51.049Z"
+ },
+ "__v": 0,
+ "image": "food_1751455702434.png"
+},
+{
+ "_id": {
+ "$oid": "68615f7c76ec130012b3aa0b"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "زیره جوش",
+ "description": "آرد،روغن حیوانی،پودر نبات،زیره و زردچوبه",
+ "short_description": "",
+ "category": {
+ "$oid": "68615cf876ec130012b3a953"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:45:00.481Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:02:05.066Z"
+ },
+ "__v": 0,
+ "image": "food_1751455541519.png"
+},
+{
+ "_id": {
+ "$oid": "68615fc976ec130012b3aa1f"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی پنیری",
+ "description": "سیب زمینی سزخکرده،پنیر،پودر آویشن",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:46:17.784Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:01:39.646Z"
+ },
+ "__v": 0,
+ "image": "food_1751455318661.png"
+},
+{
+ "_id": {
+ "$oid": "6861605f76ec130012b3aa65"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی سرخ کرده",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-29T15:48:47.594Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:04:15.754Z"
+ },
+ "__v": 0,
+ "image": "food_1751455184309.png"
+},
+{
+ "_id": {
+ "$oid": "686277db76ec130012b3c5b5"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک و بادمجان",
+ "description": "بادمجان سرخشده، کشک،نعنا و پیازداغ",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:41:15.818Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:01:16.556Z"
+ },
+ "__v": 0,
+ "image": "food_1751455143526.png"
+},
+{
+ "_id": {
+ "$oid": "6862781976ec130012b3c5c2"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میرزا قاسمی",
+ "description": "بادمجان کبابی،سیر،پوره گوجه،تخم مرغ",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:42:17.655Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:00:47.754Z"
+ },
+ "__v": 0,
+ "image": "food_1751455054797.png"
+},
+{
+ "_id": {
+ "$oid": "6862786076ec130012b3c5cf"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک بندری",
+ "description": "سوسیس،پیاز،رب،و سیبزمینی سرخ شده با دورچین ",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:43:28.447Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T12:00:22.380Z"
+ },
+ "__v": 0,
+ "image": "food_1751454996470.png"
+},
+{
+ "_id": {
+ "$oid": "6862789d76ec130012b3c5df"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آبدوغ خیار",
+ "description": "خیار،سبزی،کشمش،گردو،ماست ودوغ",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:44:29.903Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:15:42.062Z"
+ },
+ "__v": 0,
+ "image": "food_1751454938256.png"
+},
+{
+ "_id": {
+ "$oid": "686278be76ec130012b3c5f5"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد ماکارونی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:45:02.452Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-25T11:59:44.578Z"
+ },
+ "__v": 0,
+ "image": "food_1751454495145.png"
+},
+{
+ "_id": {
+ "$oid": "686278e676ec130012b3c5ff"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بورانی اسفناج",
+ "description": "ماست،اسفناج،ادویه",
+ "short_description": "",
+ "category": {
+ "$oid": "68615ca976ec130012b3a94a"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-06-30T11:45:42.462Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-02T11:07:04.470Z"
+ },
+ "__v": 0,
+ "image": "food_1751454418603.png"
+},
+{
+ "_id": {
+ "$oid": "6873a800029023001173cdce"
+ },
+ "price": 2950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوسی لوسی برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-13T12:35:12.927Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:35:12.927Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6873a821029023001173cdd8"
+ },
+ "price": 3350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دوبل برگر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4372045700b0061064bbb"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-13T12:35:45.790Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-13T12:35:45.790Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687625c7555acb0012cfd79f"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو 70/30",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T09:56:23.586Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:08:52.160Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762610555acb0012cfd7d6"
+ },
+ "price": 760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو عربیکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T09:57:36.012Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:08:27.165Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762631555acb0012cfd7e7"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو پرتقالی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T09:58:09.195Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:08:16.342Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687627dc555acb0012cfd923"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 70/30",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:05:16.150Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:08:05.016Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687628dd555acb0012cfd9b2"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس امریکانو 50/50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:09:33.551Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:09:33.551Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687628f3555acb0012cfd9bc"
+ },
+ "price": 850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:09:55.153Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:09:55.153Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762909555acb0012cfd9c6"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس موکا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:10:17.447Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:10:17.447Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762923555acb0012cfd9d0"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس کارامل ماکیاتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6876285f555acb0012cfd958"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:10:43.302Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:10:43.302Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6876293e555acb0012cfd9e4"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس چاکلت ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:11:10.065Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:11:10.065Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762958555acb0012cfd9ee"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:11:36.426Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:11:36.426Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762986555acb0012cfda1b"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک لمون بری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:12:22.079Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:12:22.079Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6876299a555acb0012cfda28"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک افتر ایت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f436ef45700b0061064ba6"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:12:42.144Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:12:42.144Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687629d6555acb0012cfda45"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیتروس بلو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:13:42.694Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:13:42.694Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687629eb555acb0012cfda6f"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو منگو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4370745700b0061064baf"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:14:03.794Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:14:03.794Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762a40555acb0012cfdab6"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:15:28.492Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:15:28.492Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762a55555acb0012cfdac3"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پینک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:15:49.910Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:15:49.910Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762b6f555acb0012cfdae7"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "وایت چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:20:31.661Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:20:31.661Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762b8e555acb0012cfdafb"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "فندوق چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:21:02.790Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:21:02.790Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762ba3555acb0012cfdb05"
+ },
+ "price": 750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نارگیل چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:21:23.353Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:21:23.353Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762bba555acb0012cfdb0f"
+ },
+ "price": 700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:21:46.011Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:21:46.011Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762bd9555acb0012cfdb19"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نارگیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:22:17.122Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:22:17.122Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762beb555acb0012cfdb23"
+ },
+ "price": 650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:22:35.737Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:22:35.737Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762c02555acb0012cfdb2d"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای لاته ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65ef0b823ad722005756bb1e"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:22:58.379Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:22:58.379Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762c40555acb0012cfdb38"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنه چیکن پستو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:24:00.780Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:24:00.780Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762c6d555acb0012cfdb50"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا ارابیاتا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:24:45.676Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:24:45.676Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762c88555acb0012cfdb5e"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاستا دیپ چیز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "664626607d6ac200622a915c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:25:12.156Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:25:12.156Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762cb2555acb0012cfdb6c"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس المانی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:25:54.233Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:25:54.233Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762ccb555acb0012cfdb76"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سوسیس المانی با قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:26:19.747Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:26:19.747Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762cdf555acb0012cfdb80"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بندری",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:26:39.414Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:26:39.414Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762cfb555acb0012cfdb8a"
+ },
+ "price": 1500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بندری با قارچ و پنیر",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4375845700b0061064bd0"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:27:07.271Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:27:07.271Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762d36555acb0012cfdb99"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ فیله گریل ( بزرگ )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:28:06.201Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:32:26.244Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762d54555acb0012cfdba3"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ فیله گریل ( کوچک)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:28:36.167Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:32:11.799Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762d73555acb0012cfdbb0"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ الفردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:29:07.408Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:29:07.408Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762d89555acb0012cfdbba"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات داگ دیپ چیز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4373d45700b0061064bc7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:29:29.959Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:29:29.959Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762da6555acb0012cfdbc4"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد سزار گریل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "667865cc7d6ac200622ec08b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:29:58.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:29:58.923Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762e55555acb0012cfdc10"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ دنر گوشت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:32:53.866Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:32:53.866Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762e69555acb0012cfdc1a"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ دنر مرغ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:33:13.500Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:33:13.500Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762e7d555acb0012cfdc2a"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ دنر میکس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:33:33.337Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:33:33.337Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762eb3555acb0012cfdc3a"
+ },
+ "price": 2750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرس فیله گریل ۵ تیکه + سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:34:27.802Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:35:29.682Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762ede555acb0012cfdc44"
+ },
+ "price": 3100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرس فیله گریل ۷ تیکه + سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4377d45700b0061064be5"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:35:10.159Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:35:41.398Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762f16555acb0012cfdc74"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ مرغ پستو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:36:06.678Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:36:06.678Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762f2b555acb0012cfdc7e"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پوره سیب زمینی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:36:27.285Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:36:27.285Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762f53555acb0012cfdc8b"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ ژامبون سرد (بزرگ)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:37:07.136Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:37:07.136Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762f6e555acb0012cfdc95"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ ژامبون سرد ( کوچیک)",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:37:34.394Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:37:57.369Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762fa1555acb0012cfdcb1"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ رست بیف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762dfc555acb0012cfdbe2"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:38:25.994Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:38:25.994Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762fc1555acb0012cfdcbb"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالو فرایز ( بزرگ) ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:38:57.612Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:38:57.612Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68762fe4555acb0012cfdcc9"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هالو فرایز ( متوسط )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:39:32.131Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:39:32.131Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68763017555acb0012cfdcd4"
+ },
+ "price": 2350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن فرایز ( بزرگ )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:40:23.085Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:40:23.085Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68763034555acb0012cfdce1"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن فرایز ( متوسط )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:40:52.192Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:40:52.192Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6876306a555acb0012cfdceb"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی قارچ و پنیر ( بزرگ )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:41:46.124Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:41:46.124Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68763083555acb0012cfdcf5"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب زمینی قارچ و پنیر ( متوسط )",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "65f4379045700b0061064bee"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:42:11.247Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:42:11.247Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68763273555acb0012cfde10"
+ },
+ "price": 660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو 50/50 ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:50:27.182Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:50:27.182Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6876328e555acb0012cfde1a"
+ },
+ "price": 610000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو 70/30 ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68762813555acb0012cfd937"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "created_at": {
+ "$date": "2025-07-15T10:50:54.072Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T10:50:54.072Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687b994d49fd7200124fb606"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لمون بری",
+ "description": "پرتقال، پوره توتفرنگی، لیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-19T13:10:37.313Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:50:27.707Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687b998049fd7200124fb616"
+ },
+ "price": 1770000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ملو",
+ "description": "هندوانه، شاتوت، سوئیت اند ساور",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-19T13:11:28.459Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T10:50:00.555Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687b9a2949fd7200124fb648"
+ },
+ "price": 1420000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس تی رد وانیل",
+ "description": "چای ترش سرددم، زعفران، سیروپ وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-19T13:14:17.094Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-27T16:41:07.637Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "687b9cc749fd7200124fb6af"
+ },
+ "price": 4760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ بوقلمون",
+ "description": "سینه بوقلمون، کاهو فرانسه، زیتون، ریحان ایتالیایی، سس پستو، گوجه خشک، پنیر خامهای، پنیر موزارلا",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eb06a4463c0057e68d76"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-19T13:25:27.603Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:19:29.821Z"
+ },
+ "__v": 0,
+ "image": "food_1753185176937.png"
+},
+{
+ "_id": {
+ "$oid": "6883794a8d476b0011f66acf"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسموکی چیکن ",
+ "description": "150 گرم فیله مرغ دودی ",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:32:10.284Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T17:09:17.515Z"
+ },
+ "__v": 0,
+ "image": "food_1760893752111.png"
+},
+{
+ "_id": {
+ "$oid": "688379d78d476b0011f66b0a"
+ },
+ "price": 1400000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات پرو ",
+ "description": "پپرونی ، هالوپینو ، سس هالوپی ",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:34:31.939Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T17:07:41.223Z"
+ },
+ "__v": 0,
+ "image": "food_1760893651025.png"
+},
+{
+ "_id": {
+ "$oid": "68837a2d8d476b0011f66b26"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استاف چیکن ",
+ "description": "فیله مرغ با پنیر و سوِيیت چیلی",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3fdf114460057d679fd"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:35:57.535Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-19T17:12:58.542Z"
+ },
+ "__v": 0,
+ "image": "food_1760893974847.png"
+},
+{
+ "_id": {
+ "$oid": "68837abb8d476b0011f66b51"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات پرونی ",
+ "description": "نان چیاباتا، پپرونی، بیکن بوقلمون، سس هالوپی، هالوپینو، وجه، پنیرسفید",
+ "short_description": "",
+ "category": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:38:19.156Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:43:30.999Z"
+ },
+ "__v": 0,
+ "image": "food_1760982156044.png"
+},
+{
+ "_id": {
+ "$oid": "68837b248d476b0011f66b61"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن اسموکی ",
+ "description": "نان چیاباتا، فیله مرغ دودی، پنیر و اسفناج، سويیت چیلی، پنیر گودا، وجه، سس باربیکی",
+ "short_description": "",
+ "category": {
+ "$oid": "684be428f114460057d67a06"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:40:04.209Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:49:24.137Z"
+ },
+ "__v": 0,
+ "image": "food_1760982559459.png"
+},
+{
+ "_id": {
+ "$oid": "68837b748d476b0011f66b89"
+ },
+ "price": 3550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خامه و خردل ",
+ "description": "پاستا تازه، سس خامه و خردل، سیر، قارچ بلانچ، پنیر پارمسان، مغز گردو ",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:41:24.016Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:28:22.462Z"
+ },
+ "__v": 0,
+ "image": "food_1760981298852.png"
+},
+{
+ "_id": {
+ "$oid": "68837bfc8d476b0011f66b9f"
+ },
+ "price": 3550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کرم ماشرومه ",
+ "description": "پاستا تازه، سس ماشرومه، قارچ کلاسیک استایل، پنیر پارمسان، جز هندی",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:43:40.444Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:27:04.464Z"
+ },
+ "__v": 0,
+ "image": "food_1760981202234.png"
+},
+{
+ "_id": {
+ "$oid": "68837c6f8d476b0011f66bbe"
+ },
+ "price": 3750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز فتوچینی ",
+ "description": "پاستا تازه، سس پنیر، قارچ بلانچ، پارمسان، پچد",
+ "short_description": "",
+ "category": {
+ "$oid": "6847c6f5f114460057d617e1"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:45:35.823Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:26:08.740Z"
+ },
+ "__v": 0,
+ "image": "food_1760981163990.png"
+},
+{
+ "_id": {
+ "$oid": "68837d438d476b0011f66c13"
+ },
+ "price": 3900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپیرولینا پاستا ( روزهای شنبه و یکشنبه )",
+ "description": "پاستای تازه، سس کرم اسپیرولینا، بلوبری، کاکتوس، مغز گردو کارامالایز",
+ "short_description": "",
+ "category": {
+ "$oid": "684be3cff114460057d679ed"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-07-25T12:49:07.645Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T17:46:00.505Z"
+ },
+ "__v": 0,
+ "image": "food_1760982358410.png"
+},
+{
+ "_id": {
+ "$oid": "6885fe5b9f7e1300117f8cc8"
+ },
+ "price": 920000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پشن لایت ",
+ "description": "بلو کارسایو اب سیب اب لیمو سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d66536282006224dc1f"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-07-27T10:24:27.185Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-27T10:24:27.185Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6888bd09c9c1e300120cb004"
+ },
+ "price": 2570000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد مدیترانهای",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67960d18a4463c0057e693be"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-29T12:22:33.861Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:10:35.337Z"
+ },
+ "__v": 0,
+ "image": "food_1753792542995.png"
+},
+{
+ "_id": {
+ "$oid": "6888bdacc9c1e300120cb028"
+ },
+ "price": 2110000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پنیر برشته",
+ "description": "تخم مرغ، پنیر فتا، سبزی شوید",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-29T12:25:16.904Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:48:48.359Z"
+ },
+ "__v": 0,
+ "image": "food_1753793163992.png"
+},
+{
+ "_id": {
+ "$oid": "6888beedc9c1e300120cb092"
+ },
+ "price": 5240000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ساندویچ استیک",
+ "description": "گوشت راسته گوساله، سیبزمینی سرخ شده، پیاز کاراملی، روکولا، پنیر چدار، سس خردل عسل، نان چاباتا",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-29T12:30:37.199Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:16:23.388Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6888c211c9c1e300120cb1df"
+ },
+ "price": 3180000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "حمص",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67960d18a4463c0057e693be"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-29T12:44:01.531Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:12:30.743Z"
+ },
+ "__v": 0,
+ "image": "food_1753795504991.png"
+},
+{
+ "_id": {
+ "$oid": "6888c315c9c1e300120cb212"
+ },
+ "price": 2560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیکن رپ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eae6a4463c0057e68d61"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "image": "food_1753793299396.png",
+ "created_at": {
+ "$date": "2025-07-29T12:48:21.184Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:16:41.892Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6888c424c9c1e300120cb221"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-07-29T12:52:52.331Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-18T12:47:02.781Z"
+ },
+ "__v": 0,
+ "image": "food_1753793605530.png"
+},
+{
+ "_id": {
+ "$oid": "6888c47dc9c1e300120cb23e"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "املت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "679b535bbd2ce200571493da"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "image": "food_1753793659160.png",
+ "created_at": {
+ "$date": "2025-07-29T12:54:21.577Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-18T12:47:52.266Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6891ce208315560011d07a73"
+ },
+ "price": 1840000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست سیبزمینی و قارچ",
+ "description": "رست سیبزمینی، سس قارچ",
+ "short_description": "",
+ "category": {
+ "$oid": "67960d18a4463c0057e693be"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-08-05T09:25:52.245Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:10:53.464Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6891ce818315560011d07a98"
+ },
+ "price": 2710000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست سیبزمینی و بیکن",
+ "description": "رست سیبزمینی، بیکن، پنیر چدار",
+ "short_description": "",
+ "category": {
+ "$oid": "67960d18a4463c0057e693be"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-08-05T09:27:29.931Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T14:11:13.080Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689767875d963d00117b1d00"
+ },
+ "price": 680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754752902259.png",
+ "created_at": {
+ "$date": "2025-08-09T15:21:43.566Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-09T15:21:43.566Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689767b55d963d00117b1d0e"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز گل سرخ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754752948593.png",
+ "created_at": {
+ "$date": "2025-08-09T15:22:29.697Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-09T15:22:29.697Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689767dc5d963d00117b1d3a"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز و گل یاسمن",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754752987903.png",
+ "created_at": {
+ "$date": "2025-08-09T15:23:08.978Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-09T15:23:08.978Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689768285d963d00117b1d44"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سبز لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754753062762.png",
+ "created_at": {
+ "$date": "2025-08-09T15:24:24.063Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-09T15:24:24.063Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689768ce5d963d00117b1d6d"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سفید نخدی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 18,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754753229195.png",
+ "created_at": {
+ "$date": "2025-08-09T15:27:10.488Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-24T16:16:56.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689768f75d963d00117b1d90"
+ },
+ "price": 720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای سفید مخملی",
+ "description": "شیرین و ملایم",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d36536282006224dc0d"
+ },
+ "index": 19,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1754753270649.png",
+ "created_at": {
+ "$date": "2025-08-09T15:27:51.765Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-09T15:30:41.369Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689b4e9e9aa1f30012879e4f"
+ },
+ "price": 1470000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "میت درینک",
+ "description": "سیروپ بلو کاراسائو، سیروپ نارگیل، آب انبه، آب پرتقال، آلوئه ورا، آبلیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-08-12T14:24:30.409Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T18:59:28.404Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689b4ee69aa1f30012879e59"
+ },
+ "price": 1250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "بلک پشن",
+ "description": "سیروپ کرن بری، سیروپ پشن فروت، آبلیمو، آب پرتقال، کربن فعال",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-08-12T14:25:42.034Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T18:58:53.724Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689b4f379aa1f30012879e73"
+ },
+ "price": 1200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اوشن بلو",
+ "description": "سیروپ بلو کاراسائو، سیروپ کرن بری، سیروپ نعنا، آبلیمو، نمک، سودا",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5fee4bd2ce20057159ffe"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-08-12T14:27:03.258Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T18:58:34.913Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "689b4f649aa1f30012879e89"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "استمر",
+ "description": "سیروپ وانیل، بادام درختی، شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-08-12T14:27:48.138Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:20:58.637Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68a1c60de3a6650011ccabcb"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس ماچا توت فرنگی",
+ "description": "ماچا شیر یخ پوره توت فرنگی سیروپ توت فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-08-17T12:07:41.837Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:52:05.388Z"
+ },
+ "__v": 0,
+ "image": "food_1755436714685.png"
+},
+{
+ "_id": {
+ "$oid": "68a1c66de3a6650011ccabde"
+ },
+ "price": 1360000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس ماچا انبه",
+ "description": "ماچا شیر یخ سیروپ انبه",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-08-17T12:09:17.085Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:51:37.396Z"
+ },
+ "__v": 0,
+ "image": "food_1755436648303.png"
+},
+{
+ "_id": {
+ "$oid": "68a1c918e3a6650011ccabf2"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس ماچا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-08-17T12:20:40.814Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:51:16.778Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68a1cf46e3a6650011ccac36"
+ },
+ "price": 1310000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس تی توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-08-17T12:47:02.845Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:50:59.584Z"
+ },
+ "__v": 0,
+ "image": "food_1755436593841.png"
+},
+{
+ "_id": {
+ "$oid": "68a1d337e3a6650011ccac8a"
+ },
+ "price": 880000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس تی لیمو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-08-17T13:03:51.050Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T14:50:42.377Z"
+ },
+ "__v": 0,
+ "image": "food_1755436507683.png"
+},
+{
+ "_id": {
+ "$oid": "68a4370be3a6650011cce904"
+ },
+ "price": 1900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز فرایز مدیوم",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6225095ca03b80e0a44ef756"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2025-08-19T08:34:19.938Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T09:10:57.169Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68a439fbe3a6650011ccea03"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لونا",
+ "description": "آب آلبالو +آب انبه+لیموتازه+سیروپ",
+ "short_description": "",
+ "category": {
+ "$oid": "62811f18d65610bd301c5a4b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "created_at": {
+ "$date": "2025-08-19T08:46:51.777Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:46:51.777Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68af240dfac0b8001288f47d"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سالاد کلم",
+ "description": "کلم،ذرت،ژامبون،ادویه مخصوص،سس مخصوص",
+ "short_description": "",
+ "category": {
+ "$oid": "64b4e68898ff3c741448df04"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "created_at": {
+ "$date": "2025-08-27T15:28:13.247Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-27T15:29:13.516Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68b81cbc2fd5a600120077e5"
+ },
+ "price": 1850000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آیس پسته",
+ "description": "3 اسکوپ بستنی وانیل پسته ، موز خورد شده ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064e6c3c0100063e6bf76"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-09-03T10:47:24.635Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T11:12:32.067Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68b993eb49f83f001267cdaf"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "سبله توت فرنگی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1756992490158.png",
+ "created_at": {
+ "$date": "2025-09-04T13:28:11.713Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-27T11:45:49.384Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bc562e49f83f0012681be5"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو 50/50",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1757173293195.png",
+ "created_at": {
+ "$date": "2025-09-06T15:41:34.851Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:53:13.116Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bcbaa449f83f0012683061"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "مارشمالو چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67b2531153628200621fd8f7"
+ },
+ "index": 77,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-09-06T22:50:12.174Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:50:12.174Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bcbaf749f83f001268307d"
+ },
+ "price": 670000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای لته",
+ "description": "شیر چای",
+ "short_description": "",
+ "category": {
+ "$oid": "67a5cbf3bd2ce20057159807"
+ },
+ "index": 78,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-09-06T22:51:35.260Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:51:35.260Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bcbb7849f83f0012683090"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو ماکیاتو",
+ "description": "لکه شیر اسپرسو",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 79,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-09-06T22:53:44.040Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:53:44.040Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bcbbc149f83f00126830a2"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رومانو ",
+ "description": "اسپرسو لیمو ",
+ "short_description": "",
+ "category": {
+ "$oid": "679b8217bd2ce20057149938"
+ },
+ "index": 80,
+ "storeId": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "created_at": {
+ "$date": "2025-09-06T22:54:57.137Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T22:54:57.137Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68bec6be49f83f0012685b09"
+ },
+ "price": 730000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکی نیویورکی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-09-08T12:06:22.568Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-22T14:55:51.341Z"
+ },
+ "__v": 0,
+ "image": "food_1766415350354.png"
+},
+{
+ "_id": {
+ "$oid": "68c06621b2e223001253df7e"
+ },
+ "price": 1560000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پامکین لاته",
+ "description": "سیروپ کدو حلوایی / پیشنهاد میشه ",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1757439519150.png",
+ "created_at": {
+ "$date": "2025-09-09T17:38:41.666Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:29:54.113Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c066a6b2e223001253dfa3"
+ },
+ "price": 2040000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ایس پامکین لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d4f536282006224dc16"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1757439652703.png",
+ "created_at": {
+ "$date": "2025-09-09T17:40:54.554Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-04T13:30:55.432Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c915e503c3c700124a249c"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سنگک سنتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68c9154003c3c700124a2481"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-09-16T07:46:45.187Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T07:46:45.187Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c9163503c3c700124a24ab"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کشک اضافه",
+ "description": "یک پیاله کوچک کشک غلیظ اعلا",
+ "short_description": "",
+ "category": {
+ "$oid": "68c9154003c3c700124a2481"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-09-16T07:48:05.523Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T07:50:24.441Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c916ad03c3c700124a24c1"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نعنا داغ یا پیاز داغ ",
+ "description": "یک پیاله کوچک نعنا داغ یا پیاز داغ اضافه",
+ "short_description": "",
+ "category": {
+ "$oid": "68c9154003c3c700124a2481"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-09-16T07:50:05.499Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T07:50:05.499Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c917b903c3c700124a251d"
+ },
+ "price": 200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سبزی خوردن تازه",
+ "description": "یک سبد سبزی خوردن تازه ",
+ "short_description": "",
+ "category": {
+ "$oid": "68c9154003c3c700124a2481"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-09-16T07:54:33.438Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T07:54:33.438Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c93c7c03c3c700124a2a93"
+ },
+ "price": 900000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیرانبه",
+ "description": "شیرتازه روز ، 150 گرم میوه انبه ",
+ "short_description": "",
+ "category": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-09-16T10:31:24.121Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:31:24.121Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68c93e3703c3c700124a2ad6"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نارگیل",
+ "description": "شیر تازه پرچرب ، نارگیل 3 پیمانه ، بستنی نارگیل 1 اسکوپ ، بدون هیچگونه افزودنی",
+ "short_description": "",
+ "category": {
+ "$oid": "673064fdc3c0100063e6bf7f"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-09-16T10:38:47.182Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T10:39:56.895Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68cac2d703c3c700124a5471"
+ },
+ "price": 540000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": false,
+ "name": "اکلر قهوه کارامل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 16,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-09-17T14:16:55.066Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:59:11.580Z"
+ },
+ "__v": 0,
+ "image": "food_1759326002631.png"
+},
+{
+ "_id": {
+ "$oid": "68da622fed9f6a001294b28e"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استرابری کیس - Strawberry kiss",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:40:47.482Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:40:47.482Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68da6252ed9f6a001294b2a3"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افسون afsoon",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:41:22.059Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:41:22.059Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68da6271ed9f6a001294b2ad"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "یناکولادا pina colada",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:41:53.566Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T10:41:53.566Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68da628eed9f6a001294b2b7"
+ },
+ "price": 1300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " آب میوه طبیعی natural fruit juice",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:42:22.460Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-03T19:24:09.949Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68da62cbed9f6a001294b2c1"
+ },
+ "price": 1100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": " پتر piter",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68da61cbed9f6a001294b26b"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-09-29T10:43:23.315Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-29T11:14:40.390Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68e4fbf36c387f001283b3a4"
+ },
+ "price": 1650000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چیز کیک شکلاتی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6208a93b1ee4b0270db4c715"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "image": "food_1759837170128.png",
+ "created_at": {
+ "$date": "2025-10-07T11:39:31.818Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-07T11:39:31.818Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f38b910895bf0012680ab8"
+ },
+ "price": 2740000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تیرامیسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-18T12:44:01.034Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:58:23.566Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f632a39b37ad00121a9052"
+ },
+ "price": 1520000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش به",
+ "description": "چای به, چوب دارچین, زنجبیل تازه",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-20T13:01:23.900Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:26:57.260Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f6330d9b37ad00121a9072"
+ },
+ "price": 1580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش گل گاو زبان",
+ "description": "گل گاو زبان, به لیمو, بهارنارنج",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-20T13:03:09.387Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:27:22.121Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f67ece9b37ad00121a9f69"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیب کیوی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "created_at": {
+ "$date": "2025-10-20T18:26:22.634Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:26:40.831Z"
+ },
+ "__v": 0,
+ "image": "food_1760984798612.png"
+},
+{
+ "_id": {
+ "$oid": "68f67fb49b37ad00121a9fbd"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "موهیتو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "image": "food_1760985010771.png",
+ "created_at": {
+ "$date": "2025-10-20T18:30:12.530Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:30:12.530Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f680079b37ad00121a9fdb"
+ },
+ "price": 550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "684be447f114460057d67a0f"
+ },
+ "index": 17,
+ "storeId": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "image": "food_1760985092729.png",
+ "created_at": {
+ "$date": "2025-10-20T18:31:35.651Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:31:35.651Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f68c369b37ad00121aa222"
+ },
+ "price": 1920000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کوکو هات چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-20T19:23:34.843Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T19:23:34.843Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68f68c749b37ad00121aa23f"
+ },
+ "price": 1940000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-20T19:24:36.327Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-15T14:16:39.504Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff7c12685b61001121b5bf"
+ },
+ "price": 1830000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسنس",
+ "description": "آب انار، آب لبو, سماق",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T14:05:06.867Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:05:06.867Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8481685b61001121b774"
+ },
+ "price": 1660000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش بری",
+ "description": "ترکیب کرن بری, توت فرنگی و زرشک",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T14:41:05.769Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:41:05.769Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8516685b61001121b787"
+ },
+ "price": 1680000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش انبه",
+ "description": "لوندر, بابونه, انبه",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 7,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T14:43:34.084Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:43:34.084Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8567685b61001121b7ac"
+ },
+ "price": 1620000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش سیب",
+ "description": "سیب, هل و استویا",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T14:44:55.639Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T14:44:55.639Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8bc0685b61001121ba11"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک هویج گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 20,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:12:00.376Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:54:47.959Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8be6685b61001121ba1b"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک سیب دارچین",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 21,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:12:38.982Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:55:27.543Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8c0b685b61001121ba25"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک کدو حلوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 22,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:13:15.338Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:55:07.966Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8c42685b61001121ba2f"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کیک کشمش گردو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67961856a4463c0057e6963e"
+ },
+ "index": 23,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:14:10.962Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-23T13:56:45.681Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff8fbb685b61001121bacf"
+ },
+ "price": 1600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کلدبرو ۷۰/۳۰",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 11,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:28:59.980Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:49:50.643Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff9157685b61001121bbdc"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ کارامل نمکی دست ساز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:35:51.985Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:35:51.985Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff9179685b61001121bbf8"
+ },
+ "price": 500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ گاناش شکلات دست ساز",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:36:25.379Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:36:25.379Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff9258685b61001121bc4d"
+ },
+ "price": 450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "سیروپ",
+ "description": "نارگیل/ فندوق/ لوتوس/ وانیل",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:40:08.147Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:40:08.147Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff92bd685b61001121bc63"
+ },
+ "price": 590000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر بادام گیاهی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:41:49.351Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:41:49.351Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff9328685b61001121bc8a"
+ },
+ "price": 380000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیر نارگیل",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T15:43:36.195Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T15:43:36.195Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ff9ea8685b61001121bf7f"
+ },
+ "price": 480000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "تاپینگ خامه",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68ff8ead685b61001121ba9b"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T16:32:40.871Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T16:32:40.871Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ffc83e685b61001121ccaa"
+ },
+ "price": 2180000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پامکین لاته",
+ "description": "پوره کدو حلوایی, اسپرسو 7030, شیر",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 15,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T19:30:06.738Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T19:30:06.738Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ffc8b3685b61001121cce8"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر شات لبو",
+ "description": "آب لبو, لیمو, زنجبیل",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T19:32:03.562Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T19:32:03.562Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "68ffc900685b61001121cd07"
+ },
+ "price": 1150000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جینجر شات پرتقال",
+ "description": "آب پرتقال, لیمو, زنجبیل",
+ "short_description": "",
+ "category": {
+ "$oid": "6795ea3aa4463c0057e68d3a"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-10-27T19:33:20.823Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-27T19:33:20.823Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "690113a7685b61001121e6cd"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو بیکن (تند)",
+ "description": "تخم مرغ، بیکن گوشت، هالوپین، دورچین به همراه نان",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-10-28T19:04:07.037Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:01:42.564Z"
+ },
+ "__v": 0,
+ "image": "food_1765281700365.png"
+},
+{
+ "_id": {
+ "$oid": "690113d7685b61001121e6d7"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیمرو بیف",
+ "description": "تخم مرغ، گوشت رست بیف، پنیر پیتزا، دورچین به همراه نان",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-10-28T19:04:55.105Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:00:15.560Z"
+ },
+ "__v": 0,
+ "image": "food_1765281612636.png"
+},
+{
+ "_id": {
+ "$oid": "69011496685b61001121e715"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرشین برک",
+ "description": "انتخابی (املت ساده، نیمرو، سوسیس تخم مرغ) دورچین به همراه نان",
+ "short_description": "",
+ "category": {
+ "$oid": "62deac91faacb066e12087e7"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "created_at": {
+ "$date": "2025-10-28T19:08:06.027Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-13T11:52:30.664Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6909e00e2d486c0012858937"
+ },
+ "price": 1800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "شیک موز پسته ",
+ "description": "4 اسکوپ بستنی وانیل ، موز تازه ، پودر پسته",
+ "short_description": "",
+ "category": {
+ "$oid": "67305804c3c0100063e6bc62"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-11-04T11:14:22.105Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T11:14:22.105Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "690a53af2d486c0012859df8"
+ },
+ "price": 1580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آرامش",
+ "description": "گل گاو زبان, سنبل الطیب, لیموعمانی",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-04T19:27:43.571Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-04T19:27:43.571Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "690df7a92d486c001285e75f"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "جوجه کباب سیخ چوبی",
+ "description": "۳۶۰ گرم فیله مرغ+برنج ایرانی ودورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-11-07T13:44:09.085Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-09T08:02:08.640Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "690f36c12d486c0012860990"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پای کدو حلوایی",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99b4c536282006224db80"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1762604734494.png",
+ "created_at": {
+ "$date": "2025-11-08T12:25:37.903Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-08T12:25:37.903Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69104ce02d486c0012861973"
+ },
+ "price": 2500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "خوراک جوجه ",
+ "description": "۳۶۰ گرم فیله مرغ +دورچین",
+ "short_description": "",
+ "category": {
+ "$oid": "68612389a67e8f0012d55d2a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-11-09T08:12:16.923Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-09T08:12:16.923Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69188a61b2d2da00122f7052"
+ },
+ "price": 1640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دارک چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-15T14:12:49.266Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-15T14:12:49.266Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69188a7fb2d2da00122f705f"
+ },
+ "price": 1720000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-15T14:13:19.377Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-15T14:17:06.601Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69188abbb2d2da00122f706c"
+ },
+ "price": 1640000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ناتی چاکلت",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795eaa0a4463c0057e68d58"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-15T14:14:19.232Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-15T14:14:19.232Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "691b3c7022cbfe001218b9ca"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "چای کرک زعفرانی",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-11-17T15:17:04.480Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-17T15:17:04.480Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "691b3c9522cbfe001218b9d4"
+ },
+ "price": 600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "68612462a67e8f0012d55d48"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "created_at": {
+ "$date": "2025-11-17T15:17:41.505Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-17T15:17:41.505Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925aeedb781ca001170a6f7"
+ },
+ "price": 4260000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا سیر استیک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T13:28:13.507Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:28:13.507Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925af6fb781ca001170a704"
+ },
+ "price": 4370000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا رست بیف",
+ "description": "راسته گوساله 100گرم . پنیرمزرلا . سس خامه . و.... ",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T13:30:23.839Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:31:11.802Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925b092b781ca001170a73f"
+ },
+ "price": 2700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا پولو",
+ "description": "فیله مرغ 120 گرم . پنیر مزرلا . قارچ . سس مارینارا و...",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T13:35:14.609Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-06T13:51:43.441Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925b136b781ca001170a74d"
+ },
+ "price": 3910000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا میکس",
+ "description": "فیله گوساله 40 گرم . فیله مرغ 60 گرم . قارچ . پنیرمزرلا . و....",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T13:37:58.848Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:37:58.848Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925b16db781ca001170a75a"
+ },
+ "price": 1950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نان سیر ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T13:38:53.065Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:38:53.065Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925ec13b781ca001170b232"
+ },
+ "price": 1760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپرسو دی کف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T17:49:07.658Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:49:07.658Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925ec44b781ca001170b245"
+ },
+ "price": 1760000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "آمریکانو دی کف",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e956a4463c0057e68d0c"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T17:49:56.422Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T17:49:56.422Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "6925ecd9b781ca001170b291"
+ },
+ "price": 2580000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "V60 کلمبیا بیبی گیشا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-25T17:52:25.461Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:53:38.472Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69287f48b781ca001170ed5b"
+ },
+ "price": 1550000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دمنوش آویشن",
+ "description": "آویشن, زنجبیل, لیموعمانی, بهلیمو",
+ "short_description": "",
+ "category": {
+ "$oid": "679615c6a4463c0057e695b4"
+ },
+ "index": 10,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-11-27T16:41:44.696Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-27T16:41:44.696Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eeae6a74f3300133ce6ff"
+ },
+ "price": 1000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "چای کرک",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:34:30.143Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:35:52.789Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eeb14a74f3300133ce714"
+ },
+ "price": 950000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماسالا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:35:16.103Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:38:27.230Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eebe9a74f3300133ce751"
+ },
+ "price": 1350000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پاور شات",
+ "description": "اسپرسو و کره",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 8,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:38:49.241Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:39:47.475Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eee7ca74f3300133ce814"
+ },
+ "price": 2100000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:49:48.651Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:49:48.651Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eeef9a74f3300133ce833"
+ },
+ "price": 2250000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته پسته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:51:53.271Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:51:53.271Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692eefdba74f3300133ce871"
+ },
+ "price": 800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "گلدن میلک",
+ "description": "زرد چوبه و شیر انتی اکسیدان بالا ضد التهاب درمان درد و خشکی مفاصل",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99dbf536282006224dc58"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T13:55:39.993Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T13:55:39.993Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692ef0eaa74f3300133ce8db"
+ },
+ "price": 2000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پرشین لاته",
+ "description": "قهوه . شیر .هل .کره پسته .گلاب . زعفران ",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T14:00:10.277Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:00:10.277Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692ef1a1a74f3300133ce90c"
+ },
+ "price": 1450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "ماچا لاته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T14:03:13.664Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:03:13.664Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692ef21ea74f3300133ce92c"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو پسته",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T14:05:18.745Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:50:07.710Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692ef538a74f3300133ce9a1"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو شکلات ",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T14:18:32.144Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:48:36.889Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "692ef6dba74f3300133cea10"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "افوگاتو لوتوس",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d78536282006224dc28"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-02T14:25:31.269Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-02T14:49:18.850Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693435728fbedb001284c4f8"
+ },
+ "price": 3700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا سزار",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6925a5d9b781ca001170a50d"
+ },
+ "index": 6,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-06T13:53:54.196Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-06T13:53:54.196Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69381c08eddcc100126d662c"
+ },
+ "price": 1980000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "v60 اتیوپی وامنا",
+ "description": "",
+ "short_description": "",
+ "category": {
+ "$oid": "6795e9f3a4463c0057e68d31"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "created_at": {
+ "$date": "2025-12-09T12:54:32.817Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-09T12:54:32.817Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bd66e95816d0012b73b70"
+ },
+ "price": 1050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "رست نات چوبی نوتلا",
+ "description": "یک عدد دونات رست شده همراه با شکلات نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "6731afdfc3c0100063e6dec2"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T08:46:38.696Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T08:46:38.696Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bda0495816d0012b73bc7"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پک 4 عددی شکلات",
+ "description": "4 عدد دونات شکلات ",
+ "short_description": "",
+ "category": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "index": 1,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:01:56.096Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:01:56.096Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bda4195816d0012b73bd1"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پک 4 عددی دارک",
+ "description": "4 عدد دونات دارک ",
+ "short_description": "",
+ "category": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:02:57.348Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:02:57.348Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bda6e95816d0012b73bdb"
+ },
+ "price": 3500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پک 4 عددی نوتلا ",
+ "description": "4 عدد دونات نوتلا ",
+ "short_description": "",
+ "category": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:03:42.377Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:03:42.377Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bdac595816d0012b73be5"
+ },
+ "price": 3000000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پک خانواده ",
+ "description": "1 عدد دونات شکلات ، 1 عدد دونات نوتلا ، 1 عدد دونات لاولی ، 1 عدد دونات توت فرنگی",
+ "short_description": "",
+ "category": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:05:09.531Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:05:09.531Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bdb2f95816d0012b73bef"
+ },
+ "price": 2450000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پک نوستالژی",
+ "description": "1 عدد دونات شکری ، 1 عدد دونات دارچین ، 1 عدد دونات هل ، 1 عدد دونات کنجد",
+ "short_description": "",
+ "category": {
+ "$oid": "693bd9a195816d0012b73bb0"
+ },
+ "index": 5,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "created_at": {
+ "$date": "2025-12-12T09:06:55.186Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:06:55.186Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693bdc0e95816d0012b73c0b"
+ },
+ "price": 2300000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "دونات تخم مرغ شانسی کیندر",
+ "description": "1 عدد دونات شکلاتی همراه با ترافل ، 1 عدد دونات تخم مرغ شانسی کیندر",
+ "short_description": "",
+ "category": {
+ "$oid": "6731af5ac3c0100063e6de8c"
+ },
+ "index": 14,
+ "storeId": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "image": "food_1765530634407.png",
+ "created_at": {
+ "$date": "2025-12-12T09:10:38.634Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-12T09:10:38.634Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "693d36a1eb83510011b1163e"
+ },
+ "price": 10500000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "استیک میلانو ",
+ "description": "150گرم شنسل مرغ/150 گرم فیله گوساله/سس قارچ/دورچین سبزیجات وصیفی جات بخار پز/",
+ "short_description": "",
+ "category": {
+ "$oid": "61ac5f9b26d2e0e4fbd9b3fe"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-12-13T09:49:21.088Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-13T10:27:04.292Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69417f0d5d516700119184f8"
+ },
+ "price": 1700000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "امریکانو شیر عسلی",
+ "description": "اسپرسو شیرعسلی اب جوش",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 9,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1765900043529.png",
+ "created_at": {
+ "$date": "2025-12-16T15:47:25.469Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-16T15:50:45.326Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69417f3d5d51670011918503"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "لاته عسل دارچین",
+ "description": "اسپرسو عسل طبیعی دارچین شیر فوم شبر",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 12,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1765900091502.png",
+ "created_at": {
+ "$date": "2025-12-16T15:48:13.208Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-16T15:50:12.661Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69417f7f5d5167001191850d"
+ },
+ "price": 1890000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "اسپنیش لته",
+ "description": "اسپرسو شیر فوم شیر.شیرعسلی",
+ "short_description": "",
+ "category": {
+ "$oid": "67e990e0536282006224d7be"
+ },
+ "index": 13,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "image": "food_1765900157490.png",
+ "created_at": {
+ "$date": "2025-12-16T15:49:19.018Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-16T15:49:19.018Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "694181015d5167001191856f"
+ },
+ "price": 2600000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات پسته",
+ "description": "شیر کره پسته تکه های پسته",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-16T15:55:45.146Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-16T15:55:45.146Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "694181375d51670011918585"
+ },
+ "price": 2200000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "هات لوتوس ",
+ "description": "کرم لوتوس شیر فوم شیر ",
+ "short_description": "",
+ "category": {
+ "$oid": "67e99d92536282006224dc4c"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "created_at": {
+ "$date": "2025-12-16T15:56:39.703Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-16T15:56:39.703Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69425a765d51670011919383"
+ },
+ "price": 5800000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "پیتزا نیویورکی HOT",
+ "description": "سس مخصوص مکزیکی , مرغ طعم دار شده, فلفل دلمه ای , فلفل هالوپینو ",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba45b1d86dbbc7d60676a"
+ },
+ "index": 2,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-12-17T07:23:34.134Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-17T09:42:52.054Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69425ae85d51670011919392"
+ },
+ "price": 5050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیویورکی آمریکایی تک نفره HOT ",
+ "description": "سس مخصوص مکزیکی , مرغ مزه دار شده , فلفل دلمه ای , فلفل هالوپینو ",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 3,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-12-17T07:25:28.768Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-17T07:25:28.768Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "69425b205d5167001191939c"
+ },
+ "price": 7050000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "نیویورکی آمریکایی دو نفره HOT",
+ "description": "سس مخصوص مکزیکی , مرغ مزه دار شده , فلفل دلمه ای , فلفل هالوپینو ",
+ "short_description": "",
+ "category": {
+ "$oid": "61aba4711d86dbbc7d606777"
+ },
+ "index": 4,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-12-17T07:26:24.857Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-17T09:43:26.597Z"
+ },
+ "__v": 0
+},
+{
+ "_id": {
+ "$oid": "694faf20235ae700126f52cc"
+ },
+ "price": 1750000,
+ "stock": 1,
+ "static_discount": 0,
+ "active": true,
+ "name": "کارامل ماکیاتو ",
+ "description": "شیر/ کارامل / قهوه ",
+ "short_description": "",
+ "category": {
+ "$oid": "61b1a16afc1eece3d7626360"
+ },
+ "index": 0,
+ "storeId": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "created_at": {
+ "$date": "2025-12-27T10:04:16.583Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-27T10:04:16.583Z"
+ },
+ "__v": 0
+}]
\ No newline at end of file
diff --git a/dump/dmenu_db.storeinfos.json b/dump/dmenu_db.storeinfos.json
new file mode 100644
index 0000000..0f2ae5d
--- /dev/null
+++ b/dump/dmenu_db.storeinfos.json
@@ -0,0 +1,1892 @@
+[
+ {
+ "_id": {
+ "$oid": "61a3661f37a0d33354a6d210"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://whatsapp.com",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "urlRouter": "zhivan",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "danakId": "619a8bd42d952a12c0674fdd",
+ "serviceId": "619b4c2371acdd1694d2316a",
+ "title": "ژیوان",
+ "caption": "",
+ "email": "as@as.com",
+ "tel": "123",
+ "address": "sada",
+ "colorTheme": "#1069BF",
+ "created_at": {
+ "$date": "2021-11-28T11:21:03.135Z"
+ },
+ "updated_at": {
+ "$date": "2025-12-17T07:20:45.453Z"
+ },
+ "__v": 0,
+ "logo": "store_1638870352717_61a3661f37a0d33354a6d210.png",
+ "showAd": true,
+ "getData": true,
+ "theme": false,
+ "message": "لبخند خود را با جهانیان به اشتراک بگذارید. \nاین نمادی از دوستی و صلح است🏳️😉",
+ "showMessage": true,
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "61d2b72b2e8bd97126a70b5f"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/coffee_sepanta",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "urlRouter": "sepanta",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "showAd": true,
+ "danakId": "61d2b3b16a546e336810a027",
+ "title": "سپنتا",
+ "caption": "",
+ "email": "sepanta@gmail.com",
+ "tel": "0863",
+ "address": "میدان نماز - ابتدای خ مصطفی خمینی - جنب کترینگ 47",
+ "colorTheme": "#9A7136",
+ "created_at": {
+ "$date": "2022-01-03T08:43:23.505Z"
+ },
+ "updated_at": {
+ "$date": "2022-01-03T09:47:13.029Z"
+ },
+ "__v": 0,
+ "logo": "store_1641199914860_61d2b72b2e8bd97126a70b5f.png",
+ "serviceId": "61d2b403c1858764d9578360",
+ "theme": false
+ },
+ {
+ "_id": {
+ "$oid": "61e509141601c7c7d9141989"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/ocafe.arak?utm_medium=copy_link",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "urlRouter": "ocafe",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "danakId": "61e507e030f1ec064832e2d3",
+ "serviceId": "61e50897c1858764d95798a0",
+ "title": "اکافه",
+ "caption": "*مهمان گرامی ضمن عرض خوش آمد به شما دوست عزیز،لطفا برای فراخوان ویترها از پیجرهای تعبیه شده روی میز خود استفاده کنید .\r\n*تسویه صورتحساب سر میز شما انجام میگردد.\r\n*تمامی آیتم ها با بهترین متریال موجود در بازار و به صورت روزانه تهیه و آماده سازی میشوند ،تمامی برگرها حاوی 100% گوشت خالص به صورت روزانه و از گوشت گرم استفاده میگردد.",
+ "email": "info@ocafe.com",
+ "tel": "1",
+ "address": "اراک ، ابتدای بلوار جهلن پناه ، برج میلاد(اساتید)",
+ "colorTheme": "#000000",
+ "created_at": {
+ "$date": "2021-11-28T11:21:03.135Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-02T14:03:17.768Z"
+ },
+ "__v": 0,
+ "logo": "store_1643274757715_61e509141601c7c7d9141989.png",
+ "showAd": true,
+ "getData": true,
+ "theme": false
+ },
+ {
+ "_id": {
+ "$oid": "6202562b1ee4b0270db4ae58"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6202562bedcac34637f77a4d",
+ "urlRouter": "easydizy",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "620254caedcac34637f77a24",
+ "title": "رستوران ایزی دیزی",
+ "created_at": {
+ "$date": "2022-02-08T11:38:19.358Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-08T12:55:42.630Z"
+ },
+ "__v": 0,
+ "address": "",
+ "caption": "",
+ "colorTheme": "#A0522D",
+ "email": "info@easydizy.com",
+ "logo": "store_1644324825827_6202562b1ee4b0270db4ae58.png",
+ "tel": "undefined",
+ "theme": false
+ },
+ {
+ "_id": {
+ "$oid": "62076fa71ee4b0270db4c32d"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/boote.restaurant?utm_medium=copy_link",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "62076fa7edcac34637f77fd5",
+ "urlRouter": "boote",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": false,
+ "danakId": "620767e6edcac34637f77faf",
+ "title": "کافه رستوران بوته",
+ "created_at": {
+ "$date": "2022-02-12T08:28:23.714Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-19T11:05:50.171Z"
+ },
+ "__v": 0,
+ "address": "اراک-خیابان شریعتی- مابین میدان راه آهن و فرمانداری",
+ "caption": "",
+ "colorTheme": "#DC7F54",
+ "email": "info@boote.com",
+ "logo": "store_1644655737806_62076fa71ee4b0270db4c32d.png",
+ "tel": "08634021212",
+ "merchant_id": "",
+ "theme": false,
+ "showMessage": true,
+ "message": "... همه روزه از ساعت 08:30 صبح با منو صبحانه در خدمت شما هستیم ..."
+ },
+ {
+ "_id": {
+ "$oid": "6207b1211ee4b0270db4c4ae"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "cafee_life",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6207b121edcac34637f78125",
+ "urlRouter": "life",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "6207a456edcac34637f780f4",
+ "title": "کافه لایف",
+ "created_at": {
+ "$date": "2022-02-12T13:07:45.407Z"
+ },
+ "updated_at": {
+ "$date": "2022-02-16T13:12:12.930Z"
+ },
+ "__v": 0,
+ "address": "اراک خیابان ملک کوچه رضوان",
+ "caption": "",
+ "colorTheme": "#000000",
+ "email": "info@life.com",
+ "tel": "09369663486",
+ "logo": "store_1644838482386_6207b1211ee4b0270db4c4ae.png",
+ "theme": false
+ },
+ {
+ "_id": {
+ "$oid": "6210b063adf126141b26173d"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/hotel_food_court?utm_medium=copy_link",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6210b063113bfedc4a502574",
+ "urlRouter": "foodcourt",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "6210ae15113bfedc4a5024f8",
+ "title": "ninja park",
+ "created_at": {
+ "$date": "2022-02-19T08:54:59.938Z"
+ },
+ "updated_at": {
+ "$date": "2025-08-19T08:08:55.915Z"
+ },
+ "__v": 0,
+ "address": "هتل امیر کبیر جنب استخر",
+ "caption": "",
+ "colorTheme": "#FF8C00",
+ "email": "info@foodcourt.com",
+ "tel": "09120861022",
+ "logo": "store_1725286063770_6210b063adf126141b26173d.png",
+ "merchant_id": "undefined",
+ "theme": false,
+ "message": "1403/03/29",
+ "showMessage": true
+ },
+ {
+ "_id": {
+ "$oid": "622dccbda03b80e0a44f1d3a"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "622dccbcde4119e96e83a327",
+ "urlRouter": "banicho",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "622dcc1cde4119e96e83a300",
+ "title": "هیزم",
+ "created_at": {
+ "$date": "2022-03-13T10:51:41.022Z"
+ },
+ "updated_at": {
+ "$date": "2023-11-18T07:01:47.975Z"
+ },
+ "__v": 0,
+ "address": "اراک-خیابان شریعتی-نبش کوچه صنوبر",
+ "caption": "",
+ "colorTheme": "#1E90FF",
+ "email": "info@banicho.com",
+ "logo": "store_1699722686770_622dccbda03b80e0a44f1d3a.png",
+ "tel": "086-34222234",
+ "merchant_id": "",
+ "theme": true,
+ "message": "جهت ثبت نام در باشگاه مشتریان و استفاده از امتیازات خود شماره خود را به صندوق بدهید",
+ "showMessage": true
+ },
+ {
+ "_id": {
+ "$oid": "62378f6bc1bb048b321cd949"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/blacksugar.ir?utm_medium=copy_link",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "62378f6b7c3bcf5392f746c0",
+ "urlRouter": "blacksugar",
+ "timezone": "Asia/Tehran",
+ "active": true,
+ "getData": true,
+ "showAd": false,
+ "danakId": "623780357c3bcf5392f74664",
+ "title": "بلک شوگر",
+ "created_at": {
+ "$date": "2022-03-20T20:32:43.749Z"
+ },
+ "updated_at": {
+ "$date": "2022-03-20T20:52:45.818Z"
+ },
+ "__v": 0,
+ "address": "اراک-خیابان شهید رجایی - نبش کوچه واثق",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "shayan.karami69@gmail.com",
+ "logo": "store_1647809564910_62378f6bc1bb048b321cd949.png",
+ "tel": "09190211676",
+ "theme": false
+ },
+ {
+ "_id": {
+ "$oid": "627e3d972353df2fe6512c8f"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://www.instagram.com/piano_coffe/",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "627e3d97531f6bf1ab6f4f7b",
+ "urlRouter": "Piano",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "627e3d5a531f6bf1ab6f4f65",
+ "title": "پیانو",
+ "created_at": {
+ "$date": "2022-05-13T11:14:31.818Z"
+ },
+ "updated_at": {
+ "$date": "2022-05-13T21:13:10.230Z"
+ },
+ "__v": 0,
+ "address": "اراک خیابان شریعتی حدفاصل میدان فرمانداری",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "piano@piano.com",
+ "logo": "store_1652476386948_627e3d972353df2fe6512c8f.png",
+ "tel": "۳۲۲۴۷۶۸۴"
+ },
+ {
+ "_id": {
+ "$oid": "62a9cff7128ed6fd013332dc"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/saadat_complex_arak",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "62a9cff75f1bdafd1a445e6e",
+ "urlRouter": "saadat",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "62a9cfbb5f1bdafd1a445e4a",
+ "title": "سعادت",
+ "created_at": {
+ "$date": "2022-06-15T12:26:31.510Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-24T11:19:27.464Z"
+ },
+ "__v": 0,
+ "address": "اراک - نظم آباد",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "info@saadat.com",
+ "tel": "09126850744",
+ "logo": "store_1655296406771_62a9cff7128ed6fd013332dc.png",
+ "merchant_id": "undefined",
+ "message": "مجتمع گردشگری سعادت : حس خوب زندگی",
+ "showMessage": true
+ },
+ {
+ "_id": {
+ "$oid": "62c157f3fbc4ea222a499088"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "62c157f3f8953b363396184b",
+ "urlRouter": "Haftkhan",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "danakId": "62c15791f8953b3633961831",
+ "title": "هفت خوان",
+ "created_at": {
+ "$date": "2022-07-03T08:48:51.501Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-03T08:48:51.501Z"
+ },
+ "__v": 0
+ },
+ {
+ "_id": {
+ "$oid": "62cea8d47400250986c70a07"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "Ehsan_haaftkhaan",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "62cea8d4801d5ed020f372ea",
+ "urlRouter": "Haaft khaan",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "danakId": "62cea884801d5ed020f372c6",
+ "title": "سفره خانه و باغ رستوران هفت خوان",
+ "created_at": {
+ "$date": "2022-07-13T11:13:24.852Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-13T12:51:39.442Z"
+ },
+ "__v": 0,
+ "address": "گلپایگان _پارک جنگی ",
+ "caption": "",
+ "colorTheme": "#00CED1",
+ "email": "Te.mobile913@yahoo.com",
+ "logo": "store_1657711159036_62cea8d47400250986c70a07.png",
+ "tel": "09133710111",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "62dd3bf3faacb066e1206279"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "1972.cafe",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "62dd3bf3801d5ed020f3fddc",
+ "urlRouter": "1972Cafe",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "هستیم در خدمتتون از ساعت 15:00____24:00 ",
+ "danakId": "62dd3add801d5ed020f3fd8b",
+ "title": "1972",
+ "created_at": {
+ "$date": "2022-07-24T12:32:51.603Z"
+ },
+ "updated_at": {
+ "$date": "2023-12-02T16:10:13.760Z"
+ },
+ "__v": 0,
+ "address": "خیابان علم الهدی پلاک ۲۰",
+ "caption": "",
+ "colorTheme": "#869D88",
+ "email": "vahidfaraji915@gmail.com",
+ "logo": "store_1658666648415_62dd3bf3faacb066e1206279.png",
+ "tel": "09124161536",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "62e3ff5e96be484852cba3c3"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/lounge",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "62e3ff5e801d5ed020f44503",
+ "urlRouter": "lounge1",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "62e3ff0c801d5ed020f444de",
+ "title": "لانژ",
+ "created_at": {
+ "$date": "2022-07-29T15:40:14.401Z"
+ },
+ "updated_at": {
+ "$date": "2022-07-29T15:44:53.322Z"
+ },
+ "__v": 0,
+ "address": "تهران - نیاوران",
+ "caption": "",
+ "colorTheme": "#FF8C00",
+ "email": "info@lounge.com",
+ "logo": "store_1659109491707_62e3ff5e96be484852cba3c3.png",
+ "tel": "02132223555"
+ },
+ {
+ "_id": {
+ "$oid": "63131c3d96be484852d0a9ed"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "honarcoffeee",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "63131c3d801d5ed020f60dc6",
+ "urlRouter": "Honar",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "در هنر لحظه ای شاد بنوش",
+ "danakId": "63130d17801d5ed020f60c7c",
+ "title": "کافه رستوران هنر",
+ "created_at": {
+ "$date": "2022-09-03T09:19:57.618Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-04T13:22:14.025Z"
+ },
+ "__v": 0,
+ "address": "اراک\r\nخیابان ملک - ابتدای خیابان جنت - کافه رستوران هنر",
+ "caption": "۹ صبح تا ۱۱ شب",
+ "colorTheme": "#0067A5",
+ "email": "honarcafee@gmail.com",
+ "logo": "store_1662296508840_63131c3d96be484852d0a9ed.png",
+ "tel": "09387797169",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "631f0484e410c5322752c409"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "Vanilla_.home",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "631f0483801d5ed020f67af9",
+ "urlRouter": "Vanilla",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "محصولات خانگی ",
+ "danakId": "631f0431801d5ed020f67ade",
+ "title": "خانه وانیلی",
+ "created_at": {
+ "$date": "2022-09-12T10:05:56.050Z"
+ },
+ "updated_at": {
+ "$date": "2022-09-12T10:12:00.029Z"
+ },
+ "__v": 0,
+ "address": "خیابان امام سجاد ",
+ "caption": "پذیرش سفارش انواع نان و شیرینی \r\nکیک عصرانه ، کافی شاپی و خامه ای",
+ "colorTheme": "#EDCA0E",
+ "email": "reyhaneaghaei@yahoo.com",
+ "logo": "store_1662977478952_631f0484e410c5322752c409.png",
+ "tel": "09301604007"
+ },
+ {
+ "_id": {
+ "$oid": "63a9c15f82d7fc8d726b8b2f"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "63a9c15fa1ab0cf026fb1d52",
+ "urlRouter": "1972",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "62dd3add801d5ed020f3fd8b",
+ "title": "1972",
+ "created_at": {
+ "$date": "2022-12-26T15:44:31.343Z"
+ },
+ "updated_at": {
+ "$date": "2022-12-26T16:22:48.249Z"
+ },
+ "__v": 0,
+ "address": "arak",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "vahidfaraji4179202@gmail.com",
+ "logo": "store_1672070842973_63a9c15f82d7fc8d726b8b2f.png",
+ "tel": "09039844606"
+ },
+ {
+ "_id": {
+ "$oid": "6426a42be9ad5f14dee9cb74"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6426a42bd27073186ccc5495",
+ "urlRouter": "Narcis",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "6426a3f2d27073186ccc5477",
+ "title": "نارسیس",
+ "created_at": {
+ "$date": "2023-03-31T09:13:15.299Z"
+ },
+ "updated_at": {
+ "$date": "2023-03-31T09:14:16.955Z"
+ },
+ "__v": 0,
+ "address": "گلپایگا",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "Lord22.mm@gmail.com",
+ "tel": "09210740267"
+ },
+ {
+ "_id": {
+ "$oid": "6450aa9a98ff3c7414414230"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "@Cafe-sepanj",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "6450aa9abddf4c7783af8b8d",
+ "urlRouter": "cafe_sepanj",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "6450a9d0bddf4c7783af8b74",
+ "title": "کافه سپنج",
+ "created_at": {
+ "$date": "2023-05-02T06:15:54.405Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-25T14:47:35.240Z"
+ },
+ "__v": 0,
+ "address": "شهر صنعتی خیابان بنفشه سر پارکینگ سوم ",
+ "caption": "",
+ "colorTheme": "#FF0000",
+ "email": "darkoobadv.ir@gmail.com",
+ "logo": "store_1683113201780_6450aa9a98ff3c7414414230.png",
+ "tel": "08633135117",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "6450d97a98ff3c7414414999"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "instagram.com/munichcoffee_",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "6450d97abddf4c7783af902d",
+ "urlRouter": "monikh",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "6450d948bddf4c7783af900a",
+ "title": "مونیخ",
+ "created_at": {
+ "$date": "2023-05-02T09:35:54.133Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-25T15:50:52.725Z"
+ },
+ "__v": 1,
+ "address": "خیابان امام ، جنب کبابی ملی",
+ "caption": "Feel Good For hours",
+ "colorTheme": "#00604F",
+ "email": "info@munich.com",
+ "logo": "store_1737820250944_6450d97a98ff3c7414414999.png",
+ "tel": "09385434474",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "6465ff4d98ff3c741442d56a"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/ocafe.arak",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6465ff4dbddf4c7783b02f32",
+ "urlRouter": "o-cafe",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "شب و روزتون پر از حال خوب ...",
+ "danakId": "61fa73c0edcac34637f76c70",
+ "title": "اُ کافه",
+ "created_at": {
+ "$date": "2023-05-18T10:34:53.833Z"
+ },
+ "updated_at": {
+ "$date": "2023-05-19T17:39:08.540Z"
+ },
+ "__v": 0,
+ "address": "اراک - ابتدای بلوار جهان پناه - زیر برج میلاد",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "info@o-cafe.com",
+ "logo": "store_1684406222541_6465ff4d98ff3c741442d56a.png",
+ "tel": "08622222222"
+ },
+ {
+ "_id": {
+ "$oid": "64b3d17d98ff3c741448cccd"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/yummyburger.arak",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "64b3d17d07943f7ca0920a3b",
+ "urlRouter": "yummyburger",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": false,
+ "showAd": false,
+ "showMessage": false,
+ "message": "",
+ "danakId": "64b2ce273559924aec695d33",
+ "title": "یامی برگر",
+ "created_at": {
+ "$date": "2023-07-16T11:16:13.797Z"
+ },
+ "updated_at": {
+ "$date": "2024-12-02T09:15:18.691Z"
+ },
+ "__v": 1,
+ "colorTheme": "#F10F0F",
+ "address": "اراک - خیابان جهان پناه - ابتدای بلوار علم الهدی",
+ "caption": "undefined",
+ "email": "yami@yami.com",
+ "merchant_id": "undefined",
+ "tel": "34223300",
+ "logo": "store_1689594902563_64b3d17d98ff3c741448cccd.png"
+ },
+ {
+ "_id": {
+ "$oid": "64bad3b698ff3c741449521e"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "Mahtab_cafe",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "64bad3b607943f7ca0923d96",
+ "urlRouter": "mahtabgarden",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "64bad33a07943f7ca0923d72",
+ "title": "کافه رستوران مهتاب",
+ "created_at": {
+ "$date": "2023-07-21T18:51:34.476Z"
+ },
+ "updated_at": {
+ "$date": "2023-07-22T19:22:35.133Z"
+ },
+ "__v": 0,
+ "address": "اراک - پل برق - اوایل خیابان فتح شیاکوه (نمکوریها) روبروی مسجد نبش کوچه اکبرزاده - باغ رستوران مهتاب",
+ "caption": "کافه آش مهتاب یک رستوران سنتی می باشد که در سال 1400 در محیطی سرسبز و رویایی با فضای باز و مسقف جهت ارایه انواع نوشیدنی و غذاهای متنوع شامل انواع آش ، کافه ، انواع غذاهای سنتی ، سوخاری و ... تاسیس گردیده است",
+ "colorTheme": "#453030",
+ "email": "ahmadadiban27@gmail.com",
+ "logo": "store_1689965802684_64bad3b698ff3c741449521e.png",
+ "tel": "08632771771-09120681032",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "64d9e2b979f54f6403d7e0be"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "64d9e2b852b4d75759964e51",
+ "urlRouter": "dream",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "64d2184352b4d7575996186c",
+ "title": "dream",
+ "created_at": {
+ "$date": "2023-08-14T08:15:53.016Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-11T16:03:38.247Z"
+ },
+ "__v": 0,
+ "address": "اراک",
+ "caption": "",
+ "colorTheme": "#EA8598",
+ "email": "dream@dream.com",
+ "logo": "store_1692001432499_64d9e2b979f54f6403d7e0be.png",
+ "tel": "0862222222"
+ },
+ {
+ "_id": {
+ "$oid": "650823be59383e8d7550ccb5"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "lanka_cafe_restaurant",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "650823be9dc0f99b4cca88eb",
+ "urlRouter": "lanka",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "",
+ "danakId": "6508236e9dc0f99b4cca88be",
+ "title": "لانکا",
+ "created_at": {
+ "$date": "2023-09-18T10:17:34.836Z"
+ },
+ "updated_at": {
+ "$date": "2025-04-12T17:19:07.282Z"
+ },
+ "__v": 0,
+ "address": "نظم آباد",
+ "caption": "",
+ "colorTheme": "#23173B",
+ "email": "me@me.com",
+ "logo": "store_1695032652234_650823be59383e8d7550ccb5.png",
+ "tel": "09381535372",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "651a7ffe59383e8d7551eebf"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "@thisispariaaa",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "651a7ffe9dc0f99b4ccaf8f1",
+ "urlRouter": "123",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "....",
+ "danakId": "651a558e9dc0f99b4ccaf82c",
+ "title": "123",
+ "created_at": {
+ "$date": "2023-10-02T08:31:58.131Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-07T10:56:13.717Z"
+ },
+ "__v": 0,
+ "address": "123",
+ "caption": "",
+ "colorTheme": "#47236C",
+ "email": "paria.shrfn@gmail.com",
+ "tel": "09184916933",
+ "logo": "store_1696240982921_651a7ffe59383e8d7551eebf.png"
+ },
+ {
+ "_id": {
+ "$oid": "651ad03159383e8d7551f3be"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ],
+ "type": "Point"
+ },
+ "serviceId": "651ad0319dc0f99b4ccafbae",
+ "urlRouter": "LIAN",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": false,
+ "showAd": false,
+ "showMessage": false,
+ "message": "",
+ "danakId": "651acfd19dc0f99b4ccafb8b",
+ "title": "لیان",
+ "created_at": {
+ "$date": "2023-10-02T14:14:09.973Z"
+ },
+ "updated_at": {
+ "$date": "2024-05-28T12:08:54.960Z"
+ },
+ "__v": 1,
+ "address": "اراک،شهرصنعتی،میدان اطلسی ۴",
+ "caption": "undefined",
+ "colorTheme": "#FF8C00",
+ "email": "llian@lian.com",
+ "logo": "store_1701608905866_651ad03159383e8d7551f3be.png",
+ "merchant_id": "fc0b7503-bba5-40d1-9f9d-dae52ac02eef",
+ "tel": "08633333333"
+ },
+ {
+ "_id": {
+ "$oid": "6533b63559383e8d7553aec6"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6533b6359dc0f99b4ccbb34c",
+ "urlRouter": "Lanka",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "6508236e9dc0f99b4cca88be",
+ "title": "کافه رستوران لانکا",
+ "created_at": {
+ "$date": "2023-10-21T11:29:57.574Z"
+ },
+ "updated_at": {
+ "$date": "2023-10-21T11:29:57.574Z"
+ },
+ "__v": 0
+ },
+ {
+ "_id": {
+ "$oid": "65ef0b1d3ad722005756bb0f"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "Milco_plus",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ],
+ "type": "Point"
+ },
+ "serviceId": "65ef0b1de67d710057f81e77",
+ "urlRouter": "milco-pilco",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "65ef092be67d710057f81e4c",
+ "title": "میلکو پلاس",
+ "created_at": {
+ "$date": "2024-03-11T13:46:05.472Z"
+ },
+ "updated_at": {
+ "$date": "2025-07-15T09:32:13.296Z"
+ },
+ "__v": 1,
+ "address": "شهر صنعتی میدان شهدای نظم اباد منطقه ۷ پارکینگ پنجم خیابان شقایق",
+ "caption": "اراک",
+ "colorTheme": "#EA6608",
+ "email": "info@milcopilco.com",
+ "logo": "store_1710166978715_65ef0b1d3ad722005756bb0f.png",
+ "merchant_id": "undefined",
+ "tel": "08634133149"
+ },
+ {
+ "_id": {
+ "$oid": "65ef1a093ad722005756bc8e"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "65ef1a09e67d710057f820c2",
+ "urlRouter": "lama",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "65ef1506e67d710057f81f5a",
+ "title": "لاما",
+ "created_at": {
+ "$date": "2024-03-11T14:49:45.667Z"
+ },
+ "updated_at": {
+ "$date": "2024-03-13T12:32:58.282Z"
+ },
+ "__v": 0,
+ "address": "اراک",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "info@lama.com",
+ "logo": "store_1710333176537_65ef1a093ad722005756bc8e.png",
+ "tel": "22222222"
+ },
+ {
+ "_id": {
+ "$oid": "6693d0cc136cc10070469510"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "kaj.foodhall",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "6693d0cc43c1a700614f41e0",
+ "urlRouter": "kaj.foodhall",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "6693cc2543c1a700614f417f",
+ "title": "کاج",
+ "created_at": {
+ "$date": "2024-07-14T13:21:16.523Z"
+ },
+ "updated_at": {
+ "$date": "2024-07-14T13:27:57.601Z"
+ },
+ "__v": 0,
+ "address": "اراک",
+ "caption": "کاج",
+ "colorTheme": "#208C3E",
+ "email": "kaj@kaj.com",
+ "logo": "store_1720963586174_6693d0cc136cc10070469510.png",
+ "tel": "08691009001",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "671c9c58c3c0100063e4d1a9"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "671c9c58ac67310056d186e3",
+ "urlRouter": "hamid",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "به کافه رستوران حمیدخان خوش امدید",
+ "danakId": "671c9189ac67310056d18694",
+ "title": "حمید",
+ "created_at": {
+ "$date": "2024-10-26T07:38:00.757Z"
+ },
+ "updated_at": {
+ "$date": "2024-10-26T08:01:08.157Z"
+ },
+ "__v": 0,
+ "address": "اراک",
+ "caption": "",
+ "colorTheme": "#C71585",
+ "email": "tesst@mail.com",
+ "logo": "store_1729929522774_671c9c58c3c0100063e4d1a9.png",
+ "tel": "09017149865",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "672f3c9bc3c0100063e6a526"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://www.instagram.com/donutfactory.arak?igsh=MWllMXZwZWQ2dGp4Nw==",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "672f3c9bac67310056d288dd",
+ "urlRouter": "donat-factory",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "672f136bac67310056d2870d",
+ "title": "دونات فکتوری",
+ "created_at": {
+ "$date": "2024-11-09T10:42:35.586Z"
+ },
+ "updated_at": {
+ "$date": "2024-11-14T20:01:37.175Z"
+ },
+ "__v": 0,
+ "address": "اراک",
+ "caption": "",
+ "colorTheme": "#694512",
+ "email": "donat@donat.com",
+ "logo": "store_1731152090639_672f3c9bc3c0100063e6a526.png",
+ "tel": "0935 816 7043",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "6731c2b9c3c0100063e6e2ae"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "narciss_garden",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6731c2b9ac67310056d2ada6",
+ "urlRouter": "narsis",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": false,
+ "showMessage": true,
+ "message": "قابل توجه مشتریان گرامی \nقیمت های منو نارسیس قدیمی هست \nلطفابرای اطلاعات بیشتر به صندوق مراجعه کنید",
+ "danakId": "6731c097ac67310056d2ad59",
+ "title": "نارسیس",
+ "created_at": {
+ "$date": "2024-11-11T08:39:21.930Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-16T19:04:48.718Z"
+ },
+ "__v": 0,
+ "address": "ادرس",
+ "caption": "",
+ "colorTheme": "#4D8C6B",
+ "email": "narsis@narsis.com",
+ "logo": "store_1731314427492_6731c2b9c3c0100063e6e2ae.png",
+ "tel": "0121111111",
+ "merchant_id": "ZP.2844766"
+ },
+ {
+ "_id": {
+ "$oid": "677ab9f9a4463c0057e3ac5d"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "677ab9f9bc315300703f4902",
+ "urlRouter": "Theory",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "",
+ "danakId": "677ab972bc315300703f48cf",
+ "title": "تئوری",
+ "created_at": {
+ "$date": "2025-01-05T16:57:29.725Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-14T15:24:12.007Z"
+ },
+ "__v": 0,
+ "address": "کریمخان-ایرانشهر-پلاک ۲۳۹",
+ "caption": "تئوری",
+ "colorTheme": "#2D5443",
+ "email": "teory@teory.com",
+ "logo": "store_1736665730887_677ab9f9a4463c0057e3ac5d.png",
+ "tel": "021 8881 0144",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "6786f839a4463c0057e4f429"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6786f839bddf7e007d9bc1c6",
+ "urlRouter": "testmenu",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "67859882bc315300703fdc18",
+ "title": "testmenu",
+ "created_at": {
+ "$date": "2025-01-14T23:50:17.976Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-14T23:50:17.976Z"
+ },
+ "__v": 0
+ },
+ {
+ "_id": {
+ "$oid": "6798e6aabd2ce20057144cfb"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "ahr_cafe",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "6798e6aa31110e0057c1b0d4",
+ "urlRouter": "ahr_cofe",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "believe in your self",
+ "danakId": "6798d37231110e0057c1aefc",
+ "title": "ahr_cafe",
+ "created_at": {
+ "$date": "2025-01-28T14:16:10.503Z"
+ },
+ "updated_at": {
+ "$date": "2025-01-29T16:37:28.640Z"
+ },
+ "__v": 0,
+ "address": "اراک شهرصنعتی منطقه 3 پامچال 2",
+ "caption": "test",
+ "colorTheme": "#453030",
+ "email": "rezamobarak47@gmail.com",
+ "tel": "09183623730",
+ "logo": "store_1738074249830_6798e6aabd2ce20057144cfb.png"
+ },
+ {
+ "_id": {
+ "$oid": "679b7fe7bd2ce200571498a8"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "@Cafe_meat",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "679b7fe731110e0057c1d877",
+ "urlRouter": "cafe_meat",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "welcome to meat",
+ "danakId": "679b7c9e31110e0057c1d77d",
+ "title": "cafe_meat",
+ "created_at": {
+ "$date": "2025-01-30T13:34:31.463Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-06T18:56:58.382Z"
+ },
+ "__v": 0,
+ "address": "اراک باغ ملی نبش کوچه مرغی ها جنب در دوم پاساژ فردوسی",
+ "caption": "اینجا یک کافه معمولی نیست",
+ "colorTheme": "#453030",
+ "email": "Barbodmahdavi57@gmail.com",
+ "logo": "store_1739868881926_679b7fe7bd2ce200571498a8.png",
+ "tel": "09308241024",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "67bd773f536282006220de43"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "67bd773f25eec500570d281e",
+ "urlRouter": "KFP",
+ "timezone": "Asia/Tehran",
+ "theme": true,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "67bd76d225eec500570d27f7",
+ "title": "پیتزا خانواده",
+ "created_at": {
+ "$date": "2025-02-25T07:54:39.174Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-25T07:57:23.628Z"
+ },
+ "__v": 0,
+ "address": "کرج میدان توحید ابتدای بلوار بلال ",
+ "caption": "",
+ "colorTheme": "#453030",
+ "email": "Alisasani83@gmail.com",
+ "logo": "store_1740470240551_67bd773f536282006220de43.png",
+ "tel": "09109898433 "
+ },
+ {
+ "_id": {
+ "$oid": "67bd785a536282006220de93"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "67bd785a25eec500570d2885",
+ "urlRouter": "KFP ",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "67bd76d225eec500570d27f7",
+ "title": "پیتزا خانواده ",
+ "created_at": {
+ "$date": "2025-02-25T07:59:22.683Z"
+ },
+ "updated_at": {
+ "$date": "2025-02-25T07:59:22.683Z"
+ },
+ "__v": 0
+ },
+ {
+ "_id": {
+ "$oid": "67e93f9e536282006224c40d"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "https://instagram.com/THEMOONCAFFE",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "67e93f9e25eec500570f3f76",
+ "urlRouter": "Moon",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "alone but still shine",
+ "danakId": "67e93d2125eec500570f3f0e",
+ "title": "Themoon",
+ "created_at": {
+ "$date": "2025-03-30T12:57:02.818Z"
+ },
+ "updated_at": {
+ "$date": "2025-11-25T13:10:09.296Z"
+ },
+ "__v": 0,
+ "address": "اراک - شهر صنعتی - منطقه 9",
+ "caption": "کافه مون بر این اساس شکل گرفته تا لحظه های خوشی را براتون به یادگار بگذارد",
+ "colorTheme": "#453030",
+ "email": "themooncaffe@gmail.com",
+ "logo": "store_1743347876393_67e93f9e536282006224c40d.png",
+ "tel": "09100333360",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "681b2e34f114460057d16354"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "681b2e34fd81710074d28d93",
+ "urlRouter": "zparty",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": false,
+ "getData": false,
+ "showAd": true,
+ "showMessage": false,
+ "message": "",
+ "danakId": "681b2d8bfd81710074d28cee",
+ "title": "زپارتی",
+ "created_at": {
+ "$date": "2025-05-07T09:56:04.067Z"
+ },
+ "updated_at": {
+ "$date": "2025-05-07T09:56:04.067Z"
+ },
+ "__v": 0
+ },
+ {
+ "_id": {
+ "$oid": "6847c5f3f114460057d617bf"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "passata.plus",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {},
+ "serviceId": "6847c5f3fd81710074d4eba0",
+ "urlRouter": "passata",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "کارخونه کوچیک پاستاپزی",
+ "danakId": "6847c5a9fd81710074d4eb78",
+ "title": "پاساتا پلاس",
+ "created_at": {
+ "$date": "2025-06-10T05:43:15.608Z"
+ },
+ "updated_at": {
+ "$date": "2025-10-20T18:17:20.861Z"
+ },
+ "__v": 0,
+ "address": "ابتدای خیابان جهانپناه،نبش کوچه سلیمی (رو بروی سیلو)",
+ "caption": "",
+ "colorTheme": "#4E2D03",
+ "email": "info@pasa.com",
+ "logo": "store_1749534426675_6847c5f3f114460057d617bf.png",
+ "tel": "08633141117",
+ "merchant_id": "undefined"
+ },
+ {
+ "_id": {
+ "$oid": "686100dd9086300011bdf7d0"
+ },
+ "socials": {
+ "whatsaap": "",
+ "twitter": "",
+ "facebook": "",
+ "instagram": "",
+ "googlePlus": "",
+ "telegram": ""
+ },
+ "location": {
+ "type": "Point",
+ "coordinates": [
+ 49.67720236907016,
+ 34.07654928061605
+ ]
+ },
+ "serviceId": "686100dd4230e5001211c6d6",
+ "urlRouter": "kolbe-setareh",
+ "timezone": "Asia/Tehran",
+ "theme": false,
+ "active": true,
+ "getData": true,
+ "showAd": true,
+ "showMessage": true,
+ "message": "غذا فقط طعم نیست،یه خاطره هست",
+ "danakId": "6860d7574230e5001211c5da",
+ "title": "کلبه ستاره",
+ "created_at": {
+ "$date": "2025-06-29T09:01:17.737Z"
+ },
+ "updated_at": {
+ "$date": "2025-09-07T06:06:58.584Z"
+ },
+ "__v": 0,
+ "address": "ssja",
+ "caption": "dasjdsad",
+ "colorTheme": "#1E8995",
+ "email": "nansd2jassdn@ns.cc",
+ "logo": "store_1751196871890_686100dd9086300011bdf7d0.png",
+ "tel": "0192292",
+ "merchant_id": "undefined"
+ }
+]
\ No newline at end of file
diff --git a/dump/dump-icons.sh b/dump/dump-icons.sh
new file mode 100755
index 0000000..c57bf04
--- /dev/null
+++ b/dump/dump-icons.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+# Script to dump icon and icon_groups tables from PostgreSQL database
+# Usage: ./dump-icons.sh [output_file]
+
+set -e
+
+# Load environment variables if .env file exists
+if [ -f .env ]; then
+ set -a
+ # Source .env file, handling comments and empty lines
+ while IFS= read -r line || [ -n "$line" ]; do
+ # Remove leading/trailing whitespace
+ line=$(echo "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
+ # Skip empty lines and lines starting with #
+ [[ -z "$line" ]] && continue
+ [[ "$line" =~ ^# ]] && continue
+ # Remove inline comments (everything after # that's not in quotes)
+ line=$(echo "$line" | sed 's/#.*$//' | sed 's/[[:space:]]*$//')
+ # Skip if line is empty after removing comments
+ [[ -z "$line" ]] && continue
+ # Export the variable (only if it looks like KEY=VALUE)
+ if [[ "$line" =~ ^[[:alpha:]_][[:alnum:]_]*= ]]; then
+ export "$line" 2>/dev/null || true
+ fi
+ done < .env
+ set +a
+fi
+
+# Get database connection details from environment variables
+DB_HOST="${DB_HOST:-localhost}"
+DB_PORT="${DB_PORT:-5432}"
+DB_NAME="${DB_NAME:-dmenu}"
+DB_USER="${DB_USER:-postgres}"
+
+# Output file name (default: icons_dump_YYYYMMDD_HHMMSS.sql)
+if [ -z "$1" ]; then
+ TIMESTAMP=$(date +%Y%m%d_%H%M%S)
+ OUTPUT_FILE="icons_dump_${TIMESTAMP}.sql"
+else
+ OUTPUT_FILE="$1"
+fi
+
+echo "Dumping icon_groups and icons tables..."
+echo "Database: ${DB_NAME}@${DB_HOST}:${DB_PORT}"
+echo "Output file: ${OUTPUT_FILE}"
+
+# Dump icon_groups table first (parent table)
+echo "Dumping icon_groups table..."
+PGPASSWORD="${DB_PASS}" pg_dump \
+ -h "${DB_HOST}" \
+ -p "${DB_PORT}" \
+ -U "${DB_USER}" \
+ -d "${DB_NAME}" \
+ -t icon_groups \
+ --data-only \
+ --column-inserts \
+ --no-owner \
+ --no-privileges \
+ > "${OUTPUT_FILE}"
+
+# Append icons table to the dump file
+echo "Dumping icons table..."
+PGPASSWORD="${DB_PASS}" pg_dump \
+ -h "${DB_HOST}" \
+ -p "${DB_PORT}" \
+ -U "${DB_USER}" \
+ -d "${DB_NAME}" \
+ -t icons \
+ --data-only \
+ --column-inserts \
+ --no-owner \
+ --no-privileges \
+ >> "${OUTPUT_FILE}"
+
+echo "Dump completed successfully!"
+echo "File saved to: ${OUTPUT_FILE}"
+echo ""
+echo "To restore, run: ./restore-icons.sh ${OUTPUT_FILE}"
+
diff --git a/dump/icon_viewer.html b/dump/icon_viewer.html
new file mode 100644
index 0000000..e0a3cbe
--- /dev/null
+++ b/dump/icon_viewer.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+ Icon Viewer - Name the Icons
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dump/icons.csv b/dump/icons.csv
new file mode 100644
index 0000000..c1390e8
--- /dev/null
+++ b/dump/icons.csv
@@ -0,0 +1,138 @@
+"id","created_at","updated_at","deleted_at","url","group_id","icon_name"
+"01KD7DGWH6TDB47V4710FDT7SR","2025-12-24 05:32:46.503+00","2025-12-24 05:32:46.503+00",NULL,"https://storage.danakcorp.com/images/1766554365832-411750172.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DH9F6BN4TEM96TA2QT4GJ","2025-12-24 05:32:59.751+00","2025-12-24 05:32:59.751+00",NULL,"https://storage.danakcorp.com/images/1766554379149-104970938.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DHK6ZTEGPRBNXJPV49TE6","2025-12-24 05:33:09.727+00","2025-12-24 05:33:09.727+00",NULL,"https://storage.danakcorp.com/images/1766554389090-593863597.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DJ2NVEHVQMDCAM31VKKGK","2025-12-24 05:33:25.564+00","2025-12-24 05:33:25.564+00",NULL,"https://storage.danakcorp.com/images/1766554404968-905984091.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DJCQY1V84DAVXPV097HE6","2025-12-24 05:33:35.871+00","2025-12-24 05:33:35.871+00",NULL,"https://storage.danakcorp.com/images/1766554415325-873800591.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DJSZ2XVX971FGNFRRDQV6","2025-12-24 05:33:49.411+00","2025-12-24 05:33:49.411+00",NULL,"https://storage.danakcorp.com/images/1766554428814-77027818.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DK3HJAD9SMDD8CM1RPNQS","2025-12-24 05:33:59.218+00","2025-12-24 05:33:59.218+00",NULL,"https://storage.danakcorp.com/images/1766554438632-45072052.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DKB23B6XWJ8CMAKQ5R8HS","2025-12-24 05:34:06.915+00","2025-12-24 05:34:06.915+00",NULL,"https://storage.danakcorp.com/images/1766554446340-463157109.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DKN32VCDQDF2D407MGKF0","2025-12-24 05:34:17.186+00","2025-12-24 05:34:17.186+00",NULL,"https://storage.danakcorp.com/images/1766554456605-280166176.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DM4AEQ2FCJGZM390N7YVJ","2025-12-24 05:34:32.782+00","2025-12-24 05:34:32.782+00",NULL,"https://storage.danakcorp.com/images/1766554471887-315640495.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DMHKWJSHX6BR41FTDYVHE","2025-12-24 05:34:46.396+00","2025-12-24 05:34:46.396+00",NULL,"https://storage.danakcorp.com/images/1766554485634-242317100.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DN3XNDW2JQ0RGM711R9Q5","2025-12-24 05:35:05.141+00","2025-12-24 05:35:05.141+00",NULL,"https://storage.danakcorp.com/images/1766554504553-157481346.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DNV0F9CPMKQ4R482MTVKJ","2025-12-24 05:35:28.783+00","2025-12-24 05:35:28.783+00",NULL,"https://storage.danakcorp.com/images/1766554528198-919877647.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DPAKCPXD2GK0FCZ7N3XXP","2025-12-24 05:35:44.749+00","2025-12-24 05:35:44.749+00",NULL,"https://storage.danakcorp.com/images/1766554544140-886744157.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DPZGZFZPS5AJ8RNM3W16F","2025-12-24 05:36:06.175+00","2025-12-24 05:36:06.175+00",NULL,"https://storage.danakcorp.com/images/1766554565614-684869010.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DQCMAD39T5QB5728M6PFP","2025-12-24 05:36:19.594+00","2025-12-24 05:36:19.594+00",NULL,"https://storage.danakcorp.com/images/1766554578855-318583145.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DQTQHGWP5J77V327Y4GHZ","2025-12-24 05:36:34.034+00","2025-12-24 05:36:34.034+00",NULL,"https://storage.danakcorp.com/images/1766554593272-362758712.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DR75VSDY0B28AFTB6QP9M","2025-12-24 05:36:46.779+00","2025-12-24 05:36:46.779+00",NULL,"https://storage.danakcorp.com/images/1766554606166-877198688.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DRRT3B7BAA714MMYVVHN4","2025-12-24 05:37:04.835+00","2025-12-24 05:37:04.835+00",NULL,"https://storage.danakcorp.com/images/1766554624133-21439996.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DS9TQY1KWPM2HY7VC7THR","2025-12-24 05:37:22.263+00","2025-12-24 05:37:22.263+00",NULL,"https://storage.danakcorp.com/images/1766554641691-535696200.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DST85ZZ0SKSVDYJWN67VQ","2025-12-24 05:37:39.078+00","2025-12-24 05:37:39.078+00",NULL,"https://storage.danakcorp.com/images/1766554658481-114730426.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7DT75Y84N1ECNV2WW6VQ37","2025-12-24 05:37:52.318+00","2025-12-24 05:37:52.318+00",NULL,"https://storage.danakcorp.com/images/1766554671760-634916570.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7E3837FJ9TDDKPF8S6PHK6","2025-12-24 05:42:48.167+00","2025-12-24 05:42:48.167+00",NULL,"https://storage.danakcorp.com/images/1766554967381-660612838.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7E7G89J5KH2ZT45F0MT5X3","2025-12-24 05:45:07.593+00","2025-12-24 05:45:07.593+00",NULL,"https://storage.danakcorp.com/images/1766555106925-267924006.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EBA6ATBBFVMGWQHACZ1G7","2025-12-24 05:47:12.459+00","2025-12-24 05:47:12.459+00",NULL,"https://storage.danakcorp.com/images/1766555231674-387319393.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7ED3NRKEX3Z8G6CTHK5QAB","2025-12-24 05:48:11.32+00","2025-12-24 05:48:11.32+00",NULL,"https://storage.danakcorp.com/images/1766555290519-155637622.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EDN07W94SGG04BRNRNRWT","2025-12-24 05:48:29.063+00","2025-12-24 05:48:29.063+00",NULL,"https://storage.danakcorp.com/images/1766555308301-230359494.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EH2W75B2H8JGMHR9P76ZE","2025-12-24 05:50:21.576+00","2025-12-24 05:50:21.576+00",NULL,"https://storage.danakcorp.com/images/1766555420851-186440015.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EP8V3KQYMDCDMXYP1QKPK","2025-12-24 05:53:11.523+00","2025-12-24 05:53:11.523+00",NULL,"https://storage.danakcorp.com/images/1766555590828-644527730.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EPRJWQAQX00F0J02FV05J","2025-12-24 05:53:27.644+00","2025-12-24 05:53:27.644+00",NULL,"https://storage.danakcorp.com/images/1766555606997-571682462.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7ERGH1ABTPGSJN1WFTESP6","2025-12-24 05:54:24.929+00","2025-12-24 05:54:24.929+00",NULL,"https://storage.danakcorp.com/images/1766555663659-433052581.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7ET0394XN31KFT3340R04H","2025-12-24 05:55:13.641+00","2025-12-24 05:55:13.641+00",NULL,"https://storage.danakcorp.com/images/1766555713098-988242030.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7ETCZBFV8ZZF1GFDKP7DXA","2025-12-24 05:55:26.827+00","2025-12-24 05:55:26.827+00",NULL,"https://storage.danakcorp.com/images/1766555726158-680948882.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EV0VW1M18RGBB54C4YDAC","2025-12-24 05:55:47.196+00","2025-12-24 05:55:47.196+00",NULL,"https://storage.danakcorp.com/images/1766555746650-426516324.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EVMP392QF71V6QFGK9XQA","2025-12-24 05:56:07.491+00","2025-12-24 05:56:07.491+00",NULL,"https://storage.danakcorp.com/images/1766555765798-127083646.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EW6MQX0VFPS21TJPSEBAH","2025-12-24 05:56:25.879+00","2025-12-24 05:56:25.879+00",NULL,"https://storage.danakcorp.com/images/1766555784837-243715698.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EWMGEHYQRKBM6XBS9EKTF","2025-12-24 05:56:40.078+00","2025-12-24 05:56:40.078+00",NULL,"https://storage.danakcorp.com/images/1766555799191-594035927.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7EZHSEJ4G27VT3HS7JZ8YN","2025-12-24 05:58:15.599+00","2025-12-24 05:58:15.599+00",NULL,"https://storage.danakcorp.com/images/1766555894624-524350777.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7F0PCEADF1HWJ47V8RP1ZP","2025-12-24 05:58:53.07+00","2025-12-24 05:58:53.07+00",NULL,"https://storage.danakcorp.com/images/1766555932114-485954688.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7F184CHB129A900K2V6N94","2025-12-24 05:59:11.244+00","2025-12-24 05:59:11.244+00",NULL,"https://storage.danakcorp.com/images/1766555949650-909996041.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7F1R0JNNRP8QW8NHANZB01","2025-12-24 05:59:27.506+00","2025-12-24 05:59:27.506+00",NULL,"https://storage.danakcorp.com/images/1766555966861-75517122.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7F2Z1V0T1S47R7VWBEPY66","2025-12-24 06:00:07.483+00","2025-12-24 06:00:07.483+00",NULL,"https://storage.danakcorp.com/images/1766556006875-239689681.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FAP3S04D5CW51W98YZRHE","2025-12-24 06:04:20.473+00","2025-12-24 06:04:20.473+00",NULL,"https://storage.danakcorp.com/images/1766556257163-459958715.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FBQJAV9HJMG4EVRKPSAC5","2025-12-24 06:04:54.73+00","2025-12-24 06:04:54.73+00",NULL,"https://storage.danakcorp.com/images/1766556293812-665835248.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FC48FRARBP7ZXN7SPGP8K","2025-12-24 06:05:07.727+00","2025-12-24 06:05:07.727+00",NULL,"https://storage.danakcorp.com/images/1766556307082-162280793.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FD4SW2G73QX0YY6KNK7V4","2025-12-24 06:05:41.052+00","2025-12-24 06:05:41.052+00",NULL,"https://storage.danakcorp.com/images/1766556340402-744632392.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FGRC85J6JXEYNBGCPY0S4","2025-12-24 06:07:39.4+00","2025-12-24 06:07:39.4+00",NULL,"https://storage.danakcorp.com/images/1766556458335-857124841.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FHCW86SPVBSC8N62YEY5R","2025-12-24 06:08:00.393+00","2025-12-24 06:08:00.393+00",NULL,"https://storage.danakcorp.com/images/1766556479530-161860621.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FHYWZ73T36XKTDQ5FEN7G","2025-12-24 06:08:18.847+00","2025-12-24 06:08:18.847+00",NULL,"https://storage.danakcorp.com/images/1766556498215-91175544.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FQDYPGWD05HHATWBC499Z","2025-12-24 06:11:18.103+00","2025-12-24 06:11:18.103+00",NULL,"https://storage.danakcorp.com/images/1766556677355-108854669.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FS7QGJJ3YRSM10Y5YWD6C","2025-12-24 06:12:17.264+00","2025-12-24 06:12:17.264+00",NULL,"https://storage.danakcorp.com/images/1766556736283-691587656.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FSY2XKBREKJ9HCNJN924C","2025-12-24 06:12:40.157+00","2025-12-24 06:12:40.157+00",NULL,"https://storage.danakcorp.com/images/1766556759367-58066921.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FTFZ25MHQATRC41Y3EPQS","2025-12-24 06:12:58.468+00","2025-12-24 06:12:58.468+00",NULL,"https://storage.danakcorp.com/images/1766556777353-490756125.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FXARH84SJYESXVAG0AH3Q","2025-12-24 06:14:31.441+00","2025-12-24 06:14:31.441+00",NULL,"https://storage.danakcorp.com/images/1766556870740-118553581.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FXXV4DP74NGWJC0J43MDP","2025-12-24 06:14:50.98+00","2025-12-24 06:14:50.98+00",NULL,"https://storage.danakcorp.com/images/1766556890334-962678132.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FYVRNQAAA0DQZ8NZ02F2R","2025-12-24 06:15:21.621+00","2025-12-24 06:15:21.621+00",NULL,"https://storage.danakcorp.com/images/1766556921029-865260745.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7FZMJ4QGTG6NZEDKWP7V0W","2025-12-24 06:15:47.013+00","2025-12-24 06:15:47.013+00",NULL,"https://storage.danakcorp.com/images/1766556946363-320833501.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7G0F8GTY7KZ530Y9XF8YXF","2025-12-24 06:16:14.352+00","2025-12-24 06:16:14.352+00",NULL,"https://storage.danakcorp.com/images/1766556973771-832565827.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7G300731YZQDT3FVAP0KHH","2025-12-24 06:17:37.031+00","2025-12-24 06:17:37.031+00",NULL,"https://storage.danakcorp.com/images/1766557056358-727862983.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7G7BHM8WEXFHHKD09MG10J","2025-12-24 06:19:59.925+00","2025-12-24 06:19:59.925+00",NULL,"https://storage.danakcorp.com/images/1766557199259-72955190.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7G8ZM2FPZ9H5BVGD983CTS","2025-12-24 06:20:53.25+00","2025-12-24 06:20:53.25+00",NULL,"https://storage.danakcorp.com/images/1766557252452-988016525.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7G9N7J647RH94K5WQB1Q3B","2025-12-24 06:21:15.378+00","2025-12-24 06:21:15.378+00",NULL,"https://storage.danakcorp.com/images/1766557274778-439028456.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GA36DDJBQJ15XT4D0E2D6","2025-12-24 06:21:29.678+00","2025-12-24 06:21:29.678+00",NULL,"https://storage.danakcorp.com/images/1766557289094-415104854.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GAEZKQKRC80EP7F03K22K","2025-12-24 06:21:41.747+00","2025-12-24 06:21:41.747+00",NULL,"https://storage.danakcorp.com/images/1766557300923-302277606.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GAYJAHXAZV84PN3X2N4FY","2025-12-24 06:21:57.707+00","2025-12-24 06:21:57.707+00",NULL,"https://storage.danakcorp.com/images/1766557317091-602116315.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GN1W5Q0WZWCJR8V62AD88","2025-12-24 06:27:28.774+00","2025-12-24 06:27:28.774+00",NULL,"https://storage.danakcorp.com/images/1766557647999-47333939.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GNPEX4CMZHRVYB4AZYSK3","2025-12-24 06:27:49.853+00","2025-12-24 06:27:49.853+00",NULL,"https://storage.danakcorp.com/images/1766557669282-172512141.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GPSY27QGH5XSPXWHD8VJ5","2025-12-24 06:28:26.179+00","2025-12-24 06:28:26.179+00",NULL,"https://storage.danakcorp.com/images/1766557705283-692546793.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GQGZK52YM87E283013JS4","2025-12-24 06:28:49.779+00","2025-12-24 06:28:49.779+00",NULL,"https://storage.danakcorp.com/images/1766557729175-762576743.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GRBRZTFFHDS1A6MH2CMJ4","2025-12-24 06:29:17.215+00","2025-12-24 06:29:17.215+00",NULL,"https://storage.danakcorp.com/images/1766557756487-665300947.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GRYXHE220H9C3VH4VAC8E","2025-12-24 06:29:36.817+00","2025-12-24 06:29:36.817+00",NULL,"https://storage.danakcorp.com/images/1766557776067-804149228.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GSKMZH8WAH5VYAS4GH02C","2025-12-24 06:29:58.048+00","2025-12-24 06:29:58.048+00",NULL,"https://storage.danakcorp.com/images/1766557797509-101726352.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GT6A83SX8NKPVHYXAKJ3H","2025-12-24 06:30:17.16+00","2025-12-24 06:30:17.16+00",NULL,"https://storage.danakcorp.com/images/1766557816484-357699340.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7GTTKT3H3EDFTRCY8P2AE9","2025-12-24 06:30:37.946+00","2025-12-24 06:30:37.946+00",NULL,"https://storage.danakcorp.com/images/1766557837292-326521286.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7J0VP01FCP0TEHYG0MD191","2025-12-24 06:51:24.224+00","2025-12-24 06:51:24.224+00",NULL,"https://storage.danakcorp.com/images/1766559083575-564721059.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7J1BMTMBMV009EYC7N4G7D","2025-12-24 06:51:40.57+00","2025-12-24 06:51:40.57+00",NULL,"https://storage.danakcorp.com/images/1766559099561-720966516.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7J1W90CASGWZKBFMN75STB","2025-12-24 06:51:57.601+00","2025-12-24 06:51:57.601+00",NULL,"https://storage.danakcorp.com/images/1766559116496-834964990.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NS1HJ2C707G3KXRRZCN7Y","2025-12-24 07:57:02.387+00","2025-12-24 07:57:02.387+00",NULL,"https://storage.danakcorp.com/images/1766563021426-600579018.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NSHYZ6XESEJR7MCKS7CY0","2025-12-24 07:57:19.199+00","2025-12-24 07:57:19.199+00",NULL,"https://storage.danakcorp.com/images/1766563038525-727531190.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NSYX5W066SDN0RYBKXHQ3","2025-12-24 07:57:32.454+00","2025-12-24 07:57:32.454+00",NULL,"https://storage.danakcorp.com/images/1766563051485-824602001.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NTCZK4NYE3KCYDM1247GP","2025-12-24 07:57:46.867+00","2025-12-24 07:57:46.867+00",NULL,"https://storage.danakcorp.com/images/1766563066017-372210647.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NW5KZEW4M2ZJX93T53G41","2025-12-24 07:58:44.863+00","2025-12-24 07:58:44.863+00",NULL,"https://storage.danakcorp.com/images/1766563124296-331607800.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NWQ7YFJ7HDNWRB5F1V47Q","2025-12-24 07:59:02.91+00","2025-12-24 07:59:02.91+00",NULL,"https://storage.danakcorp.com/images/1766563142133-359920423.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NXCZSEN7M2TN0DT0XVVR9","2025-12-24 07:59:25.177+00","2025-12-24 07:59:25.177+00",NULL,"https://storage.danakcorp.com/images/1766563164270-350101986.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NXXMYZFMAWMRS23GRZSKP","2025-12-24 07:59:42.238+00","2025-12-24 07:59:42.238+00",NULL,"https://storage.danakcorp.com/images/1766563181587-86630830.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NYP6M0HNC3A4XCXHK4W4M","2025-12-24 08:00:07.38+00","2025-12-24 08:00:07.38+00",NULL,"https://storage.danakcorp.com/images/1766563204966-651499380.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7NZ3PDZX4WTVV3KC5MTD8K","2025-12-24 08:00:21.198+00","2025-12-24 08:00:21.198+00",NULL,"https://storage.danakcorp.com/images/1766563220596-103699525.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7P0FWPK3HTYVX14XMGCHTC","2025-12-24 08:01:06.455+00","2025-12-24 08:01:06.455+00",NULL,"https://storage.danakcorp.com/images/1766563265634-373953449.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7P0SAN0PA6KAGE3ABAXSWF","2025-12-24 08:01:16.117+00","2025-12-24 08:01:16.117+00",NULL,"https://storage.danakcorp.com/images/1766563275517-958045207.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7P1429PQT8NFDFRZEDNH1P","2025-12-24 08:01:27.113+00","2025-12-24 08:01:27.113+00",NULL,"https://storage.danakcorp.com/images/1766563286526-622849562.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7QC4M3D2SF26ZH0S0SDWBD","2025-12-24 08:24:56.708+00","2025-12-24 08:24:56.708+00",NULL,"https://storage.danakcorp.com/images/1766564695339-504553420.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QCEDA0T3CGZ01NGBKWZ9S","2025-12-24 08:25:06.73+00","2025-12-24 08:25:06.73+00",NULL,"https://storage.danakcorp.com/images/1766564706032-159367016.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QCWQ00TVCK7BAAHSWA09H","2025-12-24 08:25:21.376+00","2025-12-24 08:25:21.376+00",NULL,"https://storage.danakcorp.com/images/1766564720683-887818252.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QDA1R9WTTV2JWQ2Y3WGST","2025-12-24 08:25:35.032+00","2025-12-24 08:25:35.032+00",NULL,"https://storage.danakcorp.com/images/1766564734432-483528219.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QDSCQNW2JC4SAQCK0QBNW","2025-12-24 08:25:50.743+00","2025-12-24 08:25:50.743+00",NULL,"https://storage.danakcorp.com/images/1766564750099-854146988.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QE1NXGG08JQ5F2BC35NFC","2025-12-24 08:25:59.23+00","2025-12-24 08:25:59.23+00",NULL,"https://storage.danakcorp.com/images/1766564758573-696060786.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QFFXDVTSB5VAXB640HR7N","2025-12-24 08:26:46.574+00","2025-12-24 08:26:46.574+00",NULL,"https://storage.danakcorp.com/images/1766564805823-829938380.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QJ37DT4NCD6QY9MNGCZXZ","2025-12-24 08:28:11.885+00","2025-12-24 08:28:11.885+00",NULL,"https://storage.danakcorp.com/images/1766564891137-468827500.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QJJZX6Y7CR8R60W3TNKRS","2025-12-24 08:28:28.029+00","2025-12-24 08:28:28.029+00",NULL,"https://storage.danakcorp.com/images/1766564907215-921380792.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7QK69ZH6B4S602YKZCBVMB","2025-12-24 08:28:47.807+00","2025-12-24 08:28:47.807+00",NULL,"https://storage.danakcorp.com/images/1766564926872-672612697.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R3EM739KW6PV431V6P19S","2025-12-24 08:37:40.616+00","2025-12-24 08:37:40.616+00",NULL,"https://storage.danakcorp.com/images/1766565459604-638026702.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R3YZ6SAQWZ4CMC4GCJ1V4","2025-12-24 08:37:57.351+00","2025-12-24 08:37:57.351+00",NULL,"https://storage.danakcorp.com/images/1766565476771-42527917.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R4D5BVGPWKXE6A7FNVNRA","2025-12-24 08:38:11.883+00","2025-12-24 08:38:11.883+00",NULL,"https://storage.danakcorp.com/images/1766565491264-946731491.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R4RFYFFQ4GV5TQ3DH6BW6","2025-12-24 08:38:23.486+00","2025-12-24 08:38:23.486+00",NULL,"https://storage.danakcorp.com/images/1766565502475-288189136.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R5KMSAGCXZCTQPTVYDTA7","2025-12-24 08:38:51.289+00","2025-12-24 08:38:51.289+00",NULL,"https://storage.danakcorp.com/images/1766565530628-800474580.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R64HYQD37W8ASB2Q817MW","2025-12-24 08:39:08.606+00","2025-12-24 08:39:08.606+00",NULL,"https://storage.danakcorp.com/images/1766565547983-878658938.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R6KF9YWZBZ3WPAKXQS2CH","2025-12-24 08:39:23.881+00","2025-12-24 08:39:23.881+00",NULL,"https://storage.danakcorp.com/images/1766565563263-891688321.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R7RM02R8FZ4DN65WMJVE8","2025-12-24 08:40:01.92+00","2025-12-24 08:40:01.92+00",NULL,"https://storage.danakcorp.com/images/1766565600547-704332792.svg","01KD7DG4VCTWZRSA54M3PEJ6NW"
+"01KD7R8G53XBC6AG6KAVSBW94G","2025-12-24 08:40:26.019+00","2025-12-24 08:40:26.019+00",NULL,"https://storage.danakcorp.com/images/1766565625437-528383713.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R901TPNAX9YYRG6W0GWHF","2025-12-24 08:40:42.298+00","2025-12-24 08:40:42.298+00",NULL,"https://storage.danakcorp.com/images/1766565641620-53176909.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7R9PKF9G1DD1HMS2QQQN9V","2025-12-24 08:41:05.391+00","2025-12-24 08:41:05.391+00",NULL,"https://storage.danakcorp.com/images/1766565664427-433669317.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RK2G6E5JKEDK9P95W79PR","2025-12-24 08:46:12.487+00","2025-12-24 08:46:12.487+00",NULL,"https://storage.danakcorp.com/images/1766565971515-159903323.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RKSM9QD6RA2H6WGE23KEC","2025-12-24 08:46:36.169+00","2025-12-24 08:46:36.169+00",NULL,"https://storage.danakcorp.com/images/1766565995424-288101561.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RMR9DRA1TG2BJ9Q8QAZ15","2025-12-24 08:47:07.565+00","2025-12-24 08:47:07.565+00",NULL,"https://storage.danakcorp.com/images/1766566026942-868807643.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RN6FH0TX69RZTKJKM6MEN","2025-12-24 08:47:22.097+00","2025-12-24 08:47:22.097+00",NULL,"https://storage.danakcorp.com/images/1766566041525-973019175.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RNX4EE92QR2C24577BJCW","2025-12-24 08:47:45.294+00","2025-12-24 08:47:45.294+00",NULL,"https://storage.danakcorp.com/images/1766566064741-271844433.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RPHHCKNXNQH29WSG84D2Z","2025-12-24 08:48:06.189+00","2025-12-24 08:48:06.189+00",NULL,"https://storage.danakcorp.com/images/1766566084368-438871956.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RQ6MFA5CDQ4J55NG3N7PX","2025-12-24 08:48:27.791+00","2025-12-24 08:48:27.791+00",NULL,"https://storage.danakcorp.com/images/1766566106954-47179607.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RQNXJNRXS8MXV57R50PKN","2025-12-24 08:48:43.443+00","2025-12-24 08:48:43.443+00",NULL,"https://storage.danakcorp.com/images/1766566122836-486871124.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RR9W6B9BTWJ0N2H11TWM1","2025-12-24 08:49:03.879+00","2025-12-24 08:49:03.879+00",NULL,"https://storage.danakcorp.com/images/1766566143171-668309076.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RRVQWYHSHN3M7R25GNGHS","2025-12-24 08:49:22.172+00","2025-12-24 08:49:22.172+00",NULL,"https://storage.danakcorp.com/images/1766566161551-844376214.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RSAKAP1TJ59GN11DEAXD9","2025-12-24 08:49:37.386+00","2025-12-24 08:49:37.386+00",NULL,"https://storage.danakcorp.com/images/1766566176755-30806596.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RSV35PY1A6193H4GDW1ZW","2025-12-24 08:49:54.277+00","2025-12-24 08:49:54.277+00",NULL,"https://storage.danakcorp.com/images/1766566193720-339416210.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RWX3D4ZZE35W345HDK35S","2025-12-24 08:51:34.638+00","2025-12-24 08:51:34.638+00",NULL,"https://storage.danakcorp.com/images/1766566293736-981836756.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RX79BVR30WGKXAZQ3D0CM","2025-12-24 08:51:45.068+00","2025-12-24 08:51:45.068+00",NULL,"https://storage.danakcorp.com/images/1766566304318-193301989.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RXY99C8PV6SAR0AJ00F16","2025-12-24 08:52:08.618+00","2025-12-24 08:52:08.618+00",NULL,"https://storage.danakcorp.com/images/1766566327768-2675508.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RYBPV273KCR350ESK2FN1","2025-12-24 08:52:22.364+00","2025-12-24 08:52:22.364+00",NULL,"https://storage.danakcorp.com/images/1766566341717-462491426.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RYTNTE20YS29X2XJT7GY3","2025-12-24 08:52:37.69+00","2025-12-24 08:52:37.69+00",NULL,"https://storage.danakcorp.com/images/1766566357028-432111036.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RZ8K86GCJSW1E0EC5T4B2","2025-12-24 08:52:51.944+00","2025-12-24 08:52:51.944+00",NULL,"https://storage.danakcorp.com/images/1766566371354-279596850.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7RZPNGASPYFP9XKMSY208B","2025-12-24 08:53:06.352+00","2025-12-24 08:53:06.352+00",NULL,"https://storage.danakcorp.com/images/1766566385674-569493499.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S0HEQZ4AY5TTFKF36HS6F","2025-12-24 08:53:33.783+00","2025-12-24 08:53:33.783+00",NULL,"https://storage.danakcorp.com/images/1766566413058-975642584.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S0ZEQ6BH163HCX0MQZHBJ","2025-12-24 08:53:48.119+00","2025-12-24 08:53:48.119+00",NULL,"https://storage.danakcorp.com/images/1766566427440-982841441.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S1EF6R6J6AMMC6HP5J0AA","2025-12-24 08:54:03.494+00","2025-12-24 08:54:03.494+00",NULL,"https://storage.danakcorp.com/images/1766566442808-761588425.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S27EFH2CDEK71GVQC839G","2025-12-24 08:54:29.074+00","2025-12-24 08:54:29.074+00",NULL,"https://storage.danakcorp.com/images/1766566468108-519151895.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S2N705Z754YS3YFQW4AGQ","2025-12-24 08:54:43.169+00","2025-12-24 08:54:43.169+00",NULL,"https://storage.danakcorp.com/images/1766566482278-661272876.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S31HNKPAAK58CX77BNJCA","2025-12-24 08:54:55.798+00","2025-12-24 08:54:55.798+00",NULL,"https://storage.danakcorp.com/images/1766566494050-408184442.svg","01KD7DGBDFX76VKXMKQKR51RJK"
+"01KD7S3AX9VW5B830MYJYGXQ0B","2025-12-24 08:55:05.385+00","2025-12-24 08:55:05.385+00",NULL,"https://storage.danakcorp.com/images/1766566504760-709260995.svg","01KD7DGBDFX76VKXMKQKR51RJK"
diff --git a/dump/icons_dump_20251224_233800.sql b/dump/icons_dump_20251224_233800.sql
new file mode 100644
index 0000000..3b66b8b
--- /dev/null
+++ b/dump/icons_dump_20251224_233800.sql
@@ -0,0 +1,205 @@
+--
+-- PostgreSQL database dump
+--
+
+\restrict acoqslHA6I152rhJbwpzhi5E4Cp5r1Bq6kFOAPp82JWutcjW9v0rh7ptBQwHz6l
+
+-- Dumped from database version 17.6 (Debian 17.6-2.pgdg13+1)
+-- Dumped by pg_dump version 17.7 (Ubuntu 17.7-3.pgdg24.04+1)
+
+SET statement_timeout = 0;
+SET lock_timeout = 0;
+SET idle_in_transaction_session_timeout = 0;
+SET transaction_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SELECT pg_catalog.set_config('search_path', '', false);
+SET check_function_bodies = false;
+SET xmloption = content;
+SET client_min_messages = warning;
+SET row_security = off;
+
+--
+-- Data for Name: icon_groups; Type: TABLE DATA; Schema: public; Owner: -
+--
+
+INSERT INTO public.icon_groups (id, created_at, updated_at, deleted_at, name) VALUES ('01KD7DG4VCTWZRSA54M3PEJ6NW', '2025-12-24 05:32:22.252+00', '2025-12-24 05:32:22.252+00', NULL, 'پک آیکون 1');
+INSERT INTO public.icon_groups (id, created_at, updated_at, deleted_at, name) VALUES ('01KD7DGBDFX76VKXMKQKR51RJK', '2025-12-24 05:32:28.976+00', '2025-12-24 05:32:28.976+00', NULL, 'پک آیکون 2');
+
+
+--
+-- PostgreSQL database dump complete
+--
+
+\unrestrict acoqslHA6I152rhJbwpzhi5E4Cp5r1Bq6kFOAPp82JWutcjW9v0rh7ptBQwHz6l
+
+--
+-- PostgreSQL database dump
+--
+
+\restrict 4pvnNoptyhScdLjLBpsonU6ZnOH502ap2y2am0YHcRG7WkY1NxnW43VtUD3Gq85
+
+-- Dumped from database version 17.6 (Debian 17.6-2.pgdg13+1)
+-- Dumped by pg_dump version 17.7 (Ubuntu 17.7-3.pgdg24.04+1)
+
+SET statement_timeout = 0;
+SET lock_timeout = 0;
+SET idle_in_transaction_session_timeout = 0;
+SET transaction_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SELECT pg_catalog.set_config('search_path', '', false);
+SET check_function_bodies = false;
+SET xmloption = content;
+SET client_min_messages = warning;
+SET row_security = off;
+
+--
+-- Data for Name: icons; Type: TABLE DATA; Schema: public; Owner: -
+--
+
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DGWH6TDB47V4710FDT7SR', '2025-12-24 05:32:46.503+00', '2025-12-24 05:32:46.503+00', NULL, 'https://storage.danakcorp.com/images/1766554365832-411750172.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DH9F6BN4TEM96TA2QT4GJ', '2025-12-24 05:32:59.751+00', '2025-12-24 05:32:59.751+00', NULL, 'https://storage.danakcorp.com/images/1766554379149-104970938.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DHK6ZTEGPRBNXJPV49TE6', '2025-12-24 05:33:09.727+00', '2025-12-24 05:33:09.727+00', NULL, 'https://storage.danakcorp.com/images/1766554389090-593863597.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DJ2NVEHVQMDCAM31VKKGK', '2025-12-24 05:33:25.564+00', '2025-12-24 05:33:25.564+00', NULL, 'https://storage.danakcorp.com/images/1766554404968-905984091.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DJCQY1V84DAVXPV097HE6', '2025-12-24 05:33:35.871+00', '2025-12-24 05:33:35.871+00', NULL, 'https://storage.danakcorp.com/images/1766554415325-873800591.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DJSZ2XVX971FGNFRRDQV6', '2025-12-24 05:33:49.411+00', '2025-12-24 05:33:49.411+00', NULL, 'https://storage.danakcorp.com/images/1766554428814-77027818.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DK3HJAD9SMDD8CM1RPNQS', '2025-12-24 05:33:59.218+00', '2025-12-24 05:33:59.218+00', NULL, 'https://storage.danakcorp.com/images/1766554438632-45072052.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DKB23B6XWJ8CMAKQ5R8HS', '2025-12-24 05:34:06.915+00', '2025-12-24 05:34:06.915+00', NULL, 'https://storage.danakcorp.com/images/1766554446340-463157109.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DKN32VCDQDF2D407MGKF0', '2025-12-24 05:34:17.186+00', '2025-12-24 05:34:17.186+00', NULL, 'https://storage.danakcorp.com/images/1766554456605-280166176.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DM4AEQ2FCJGZM390N7YVJ', '2025-12-24 05:34:32.782+00', '2025-12-24 05:34:32.782+00', NULL, 'https://storage.danakcorp.com/images/1766554471887-315640495.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DMHKWJSHX6BR41FTDYVHE', '2025-12-24 05:34:46.396+00', '2025-12-24 05:34:46.396+00', NULL, 'https://storage.danakcorp.com/images/1766554485634-242317100.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DN3XNDW2JQ0RGM711R9Q5', '2025-12-24 05:35:05.141+00', '2025-12-24 05:35:05.141+00', NULL, 'https://storage.danakcorp.com/images/1766554504553-157481346.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DNV0F9CPMKQ4R482MTVKJ', '2025-12-24 05:35:28.783+00', '2025-12-24 05:35:28.783+00', NULL, 'https://storage.danakcorp.com/images/1766554528198-919877647.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DPAKCPXD2GK0FCZ7N3XXP', '2025-12-24 05:35:44.749+00', '2025-12-24 05:35:44.749+00', NULL, 'https://storage.danakcorp.com/images/1766554544140-886744157.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DPZGZFZPS5AJ8RNM3W16F', '2025-12-24 05:36:06.175+00', '2025-12-24 05:36:06.175+00', NULL, 'https://storage.danakcorp.com/images/1766554565614-684869010.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DQCMAD39T5QB5728M6PFP', '2025-12-24 05:36:19.594+00', '2025-12-24 05:36:19.594+00', NULL, 'https://storage.danakcorp.com/images/1766554578855-318583145.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DQTQHGWP5J77V327Y4GHZ', '2025-12-24 05:36:34.034+00', '2025-12-24 05:36:34.034+00', NULL, 'https://storage.danakcorp.com/images/1766554593272-362758712.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DR75VSDY0B28AFTB6QP9M', '2025-12-24 05:36:46.779+00', '2025-12-24 05:36:46.779+00', NULL, 'https://storage.danakcorp.com/images/1766554606166-877198688.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DRRT3B7BAA714MMYVVHN4', '2025-12-24 05:37:04.835+00', '2025-12-24 05:37:04.835+00', NULL, 'https://storage.danakcorp.com/images/1766554624133-21439996.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DS9TQY1KWPM2HY7VC7THR', '2025-12-24 05:37:22.263+00', '2025-12-24 05:37:22.263+00', NULL, 'https://storage.danakcorp.com/images/1766554641691-535696200.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DST85ZZ0SKSVDYJWN67VQ', '2025-12-24 05:37:39.078+00', '2025-12-24 05:37:39.078+00', NULL, 'https://storage.danakcorp.com/images/1766554658481-114730426.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7DT75Y84N1ECNV2WW6VQ37', '2025-12-24 05:37:52.318+00', '2025-12-24 05:37:52.318+00', NULL, 'https://storage.danakcorp.com/images/1766554671760-634916570.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7E3837FJ9TDDKPF8S6PHK6', '2025-12-24 05:42:48.167+00', '2025-12-24 05:42:48.167+00', NULL, 'https://storage.danakcorp.com/images/1766554967381-660612838.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7E7G89J5KH2ZT45F0MT5X3', '2025-12-24 05:45:07.593+00', '2025-12-24 05:45:07.593+00', NULL, 'https://storage.danakcorp.com/images/1766555106925-267924006.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EBA6ATBBFVMGWQHACZ1G7', '2025-12-24 05:47:12.459+00', '2025-12-24 05:47:12.459+00', NULL, 'https://storage.danakcorp.com/images/1766555231674-387319393.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7ED3NRKEX3Z8G6CTHK5QAB', '2025-12-24 05:48:11.32+00', '2025-12-24 05:48:11.32+00', NULL, 'https://storage.danakcorp.com/images/1766555290519-155637622.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EDN07W94SGG04BRNRNRWT', '2025-12-24 05:48:29.063+00', '2025-12-24 05:48:29.063+00', NULL, 'https://storage.danakcorp.com/images/1766555308301-230359494.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EH2W75B2H8JGMHR9P76ZE', '2025-12-24 05:50:21.576+00', '2025-12-24 05:50:21.576+00', NULL, 'https://storage.danakcorp.com/images/1766555420851-186440015.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EP8V3KQYMDCDMXYP1QKPK', '2025-12-24 05:53:11.523+00', '2025-12-24 05:53:11.523+00', NULL, 'https://storage.danakcorp.com/images/1766555590828-644527730.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EPRJWQAQX00F0J02FV05J', '2025-12-24 05:53:27.644+00', '2025-12-24 05:53:27.644+00', NULL, 'https://storage.danakcorp.com/images/1766555606997-571682462.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7ERGH1ABTPGSJN1WFTESP6', '2025-12-24 05:54:24.929+00', '2025-12-24 05:54:24.929+00', NULL, 'https://storage.danakcorp.com/images/1766555663659-433052581.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7ET0394XN31KFT3340R04H', '2025-12-24 05:55:13.641+00', '2025-12-24 05:55:13.641+00', NULL, 'https://storage.danakcorp.com/images/1766555713098-988242030.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7ETCZBFV8ZZF1GFDKP7DXA', '2025-12-24 05:55:26.827+00', '2025-12-24 05:55:26.827+00', NULL, 'https://storage.danakcorp.com/images/1766555726158-680948882.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EV0VW1M18RGBB54C4YDAC', '2025-12-24 05:55:47.196+00', '2025-12-24 05:55:47.196+00', NULL, 'https://storage.danakcorp.com/images/1766555746650-426516324.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EVMP392QF71V6QFGK9XQA', '2025-12-24 05:56:07.491+00', '2025-12-24 05:56:07.491+00', NULL, 'https://storage.danakcorp.com/images/1766555765798-127083646.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EW6MQX0VFPS21TJPSEBAH', '2025-12-24 05:56:25.879+00', '2025-12-24 05:56:25.879+00', NULL, 'https://storage.danakcorp.com/images/1766555784837-243715698.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EWMGEHYQRKBM6XBS9EKTF', '2025-12-24 05:56:40.078+00', '2025-12-24 05:56:40.078+00', NULL, 'https://storage.danakcorp.com/images/1766555799191-594035927.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7EZHSEJ4G27VT3HS7JZ8YN', '2025-12-24 05:58:15.599+00', '2025-12-24 05:58:15.599+00', NULL, 'https://storage.danakcorp.com/images/1766555894624-524350777.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7F0PCEADF1HWJ47V8RP1ZP', '2025-12-24 05:58:53.07+00', '2025-12-24 05:58:53.07+00', NULL, 'https://storage.danakcorp.com/images/1766555932114-485954688.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7F184CHB129A900K2V6N94', '2025-12-24 05:59:11.244+00', '2025-12-24 05:59:11.244+00', NULL, 'https://storage.danakcorp.com/images/1766555949650-909996041.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7F1R0JNNRP8QW8NHANZB01', '2025-12-24 05:59:27.506+00', '2025-12-24 05:59:27.506+00', NULL, 'https://storage.danakcorp.com/images/1766555966861-75517122.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7F2Z1V0T1S47R7VWBEPY66', '2025-12-24 06:00:07.483+00', '2025-12-24 06:00:07.483+00', NULL, 'https://storage.danakcorp.com/images/1766556006875-239689681.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FAP3S04D5CW51W98YZRHE', '2025-12-24 06:04:20.473+00', '2025-12-24 06:04:20.473+00', NULL, 'https://storage.danakcorp.com/images/1766556257163-459958715.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FBQJAV9HJMG4EVRKPSAC5', '2025-12-24 06:04:54.73+00', '2025-12-24 06:04:54.73+00', NULL, 'https://storage.danakcorp.com/images/1766556293812-665835248.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FC48FRARBP7ZXN7SPGP8K', '2025-12-24 06:05:07.727+00', '2025-12-24 06:05:07.727+00', NULL, 'https://storage.danakcorp.com/images/1766556307082-162280793.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FD4SW2G73QX0YY6KNK7V4', '2025-12-24 06:05:41.052+00', '2025-12-24 06:05:41.052+00', NULL, 'https://storage.danakcorp.com/images/1766556340402-744632392.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FGRC85J6JXEYNBGCPY0S4', '2025-12-24 06:07:39.4+00', '2025-12-24 06:07:39.4+00', NULL, 'https://storage.danakcorp.com/images/1766556458335-857124841.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FHCW86SPVBSC8N62YEY5R', '2025-12-24 06:08:00.393+00', '2025-12-24 06:08:00.393+00', NULL, 'https://storage.danakcorp.com/images/1766556479530-161860621.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FHYWZ73T36XKTDQ5FEN7G', '2025-12-24 06:08:18.847+00', '2025-12-24 06:08:18.847+00', NULL, 'https://storage.danakcorp.com/images/1766556498215-91175544.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FQDYPGWD05HHATWBC499Z', '2025-12-24 06:11:18.103+00', '2025-12-24 06:11:18.103+00', NULL, 'https://storage.danakcorp.com/images/1766556677355-108854669.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FS7QGJJ3YRSM10Y5YWD6C', '2025-12-24 06:12:17.264+00', '2025-12-24 06:12:17.264+00', NULL, 'https://storage.danakcorp.com/images/1766556736283-691587656.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FSY2XKBREKJ9HCNJN924C', '2025-12-24 06:12:40.157+00', '2025-12-24 06:12:40.157+00', NULL, 'https://storage.danakcorp.com/images/1766556759367-58066921.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FTFZ25MHQATRC41Y3EPQS', '2025-12-24 06:12:58.468+00', '2025-12-24 06:12:58.468+00', NULL, 'https://storage.danakcorp.com/images/1766556777353-490756125.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FXARH84SJYESXVAG0AH3Q', '2025-12-24 06:14:31.441+00', '2025-12-24 06:14:31.441+00', NULL, 'https://storage.danakcorp.com/images/1766556870740-118553581.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FXXV4DP74NGWJC0J43MDP', '2025-12-24 06:14:50.98+00', '2025-12-24 06:14:50.98+00', NULL, 'https://storage.danakcorp.com/images/1766556890334-962678132.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FYVRNQAAA0DQZ8NZ02F2R', '2025-12-24 06:15:21.621+00', '2025-12-24 06:15:21.621+00', NULL, 'https://storage.danakcorp.com/images/1766556921029-865260745.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7FZMJ4QGTG6NZEDKWP7V0W', '2025-12-24 06:15:47.013+00', '2025-12-24 06:15:47.013+00', NULL, 'https://storage.danakcorp.com/images/1766556946363-320833501.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7G0F8GTY7KZ530Y9XF8YXF', '2025-12-24 06:16:14.352+00', '2025-12-24 06:16:14.352+00', NULL, 'https://storage.danakcorp.com/images/1766556973771-832565827.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7G300731YZQDT3FVAP0KHH', '2025-12-24 06:17:37.031+00', '2025-12-24 06:17:37.031+00', NULL, 'https://storage.danakcorp.com/images/1766557056358-727862983.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7G7BHM8WEXFHHKD09MG10J', '2025-12-24 06:19:59.925+00', '2025-12-24 06:19:59.925+00', NULL, 'https://storage.danakcorp.com/images/1766557199259-72955190.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7G8ZM2FPZ9H5BVGD983CTS', '2025-12-24 06:20:53.25+00', '2025-12-24 06:20:53.25+00', NULL, 'https://storage.danakcorp.com/images/1766557252452-988016525.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7G9N7J647RH94K5WQB1Q3B', '2025-12-24 06:21:15.378+00', '2025-12-24 06:21:15.378+00', NULL, 'https://storage.danakcorp.com/images/1766557274778-439028456.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GA36DDJBQJ15XT4D0E2D6', '2025-12-24 06:21:29.678+00', '2025-12-24 06:21:29.678+00', NULL, 'https://storage.danakcorp.com/images/1766557289094-415104854.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GAEZKQKRC80EP7F03K22K', '2025-12-24 06:21:41.747+00', '2025-12-24 06:21:41.747+00', NULL, 'https://storage.danakcorp.com/images/1766557300923-302277606.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GAYJAHXAZV84PN3X2N4FY', '2025-12-24 06:21:57.707+00', '2025-12-24 06:21:57.707+00', NULL, 'https://storage.danakcorp.com/images/1766557317091-602116315.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GN1W5Q0WZWCJR8V62AD88', '2025-12-24 06:27:28.774+00', '2025-12-24 06:27:28.774+00', NULL, 'https://storage.danakcorp.com/images/1766557647999-47333939.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GNPEX4CMZHRVYB4AZYSK3', '2025-12-24 06:27:49.853+00', '2025-12-24 06:27:49.853+00', NULL, 'https://storage.danakcorp.com/images/1766557669282-172512141.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GPSY27QGH5XSPXWHD8VJ5', '2025-12-24 06:28:26.179+00', '2025-12-24 06:28:26.179+00', NULL, 'https://storage.danakcorp.com/images/1766557705283-692546793.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GQGZK52YM87E283013JS4', '2025-12-24 06:28:49.779+00', '2025-12-24 06:28:49.779+00', NULL, 'https://storage.danakcorp.com/images/1766557729175-762576743.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GRBRZTFFHDS1A6MH2CMJ4', '2025-12-24 06:29:17.215+00', '2025-12-24 06:29:17.215+00', NULL, 'https://storage.danakcorp.com/images/1766557756487-665300947.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GRYXHE220H9C3VH4VAC8E', '2025-12-24 06:29:36.817+00', '2025-12-24 06:29:36.817+00', NULL, 'https://storage.danakcorp.com/images/1766557776067-804149228.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GSKMZH8WAH5VYAS4GH02C', '2025-12-24 06:29:58.048+00', '2025-12-24 06:29:58.048+00', NULL, 'https://storage.danakcorp.com/images/1766557797509-101726352.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GT6A83SX8NKPVHYXAKJ3H', '2025-12-24 06:30:17.16+00', '2025-12-24 06:30:17.16+00', NULL, 'https://storage.danakcorp.com/images/1766557816484-357699340.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7GTTKT3H3EDFTRCY8P2AE9', '2025-12-24 06:30:37.946+00', '2025-12-24 06:30:37.946+00', NULL, 'https://storage.danakcorp.com/images/1766557837292-326521286.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7J0VP01FCP0TEHYG0MD191', '2025-12-24 06:51:24.224+00', '2025-12-24 06:51:24.224+00', NULL, 'https://storage.danakcorp.com/images/1766559083575-564721059.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7J1BMTMBMV009EYC7N4G7D', '2025-12-24 06:51:40.57+00', '2025-12-24 06:51:40.57+00', NULL, 'https://storage.danakcorp.com/images/1766559099561-720966516.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7J1W90CASGWZKBFMN75STB', '2025-12-24 06:51:57.601+00', '2025-12-24 06:51:57.601+00', NULL, 'https://storage.danakcorp.com/images/1766559116496-834964990.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NS1HJ2C707G3KXRRZCN7Y', '2025-12-24 07:57:02.387+00', '2025-12-24 07:57:02.387+00', NULL, 'https://storage.danakcorp.com/images/1766563021426-600579018.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NSHYZ6XESEJR7MCKS7CY0', '2025-12-24 07:57:19.199+00', '2025-12-24 07:57:19.199+00', NULL, 'https://storage.danakcorp.com/images/1766563038525-727531190.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NSYX5W066SDN0RYBKXHQ3', '2025-12-24 07:57:32.454+00', '2025-12-24 07:57:32.454+00', NULL, 'https://storage.danakcorp.com/images/1766563051485-824602001.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NTCZK4NYE3KCYDM1247GP', '2025-12-24 07:57:46.867+00', '2025-12-24 07:57:46.867+00', NULL, 'https://storage.danakcorp.com/images/1766563066017-372210647.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NW5KZEW4M2ZJX93T53G41', '2025-12-24 07:58:44.863+00', '2025-12-24 07:58:44.863+00', NULL, 'https://storage.danakcorp.com/images/1766563124296-331607800.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NWQ7YFJ7HDNWRB5F1V47Q', '2025-12-24 07:59:02.91+00', '2025-12-24 07:59:02.91+00', NULL, 'https://storage.danakcorp.com/images/1766563142133-359920423.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NXCZSEN7M2TN0DT0XVVR9', '2025-12-24 07:59:25.177+00', '2025-12-24 07:59:25.177+00', NULL, 'https://storage.danakcorp.com/images/1766563164270-350101986.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NXXMYZFMAWMRS23GRZSKP', '2025-12-24 07:59:42.238+00', '2025-12-24 07:59:42.238+00', NULL, 'https://storage.danakcorp.com/images/1766563181587-86630830.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NYP6M0HNC3A4XCXHK4W4M', '2025-12-24 08:00:07.38+00', '2025-12-24 08:00:07.38+00', NULL, 'https://storage.danakcorp.com/images/1766563204966-651499380.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7NZ3PDZX4WTVV3KC5MTD8K', '2025-12-24 08:00:21.198+00', '2025-12-24 08:00:21.198+00', NULL, 'https://storage.danakcorp.com/images/1766563220596-103699525.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7P0FWPK3HTYVX14XMGCHTC', '2025-12-24 08:01:06.455+00', '2025-12-24 08:01:06.455+00', NULL, 'https://storage.danakcorp.com/images/1766563265634-373953449.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7P0SAN0PA6KAGE3ABAXSWF', '2025-12-24 08:01:16.117+00', '2025-12-24 08:01:16.117+00', NULL, 'https://storage.danakcorp.com/images/1766563275517-958045207.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7P1429PQT8NFDFRZEDNH1P', '2025-12-24 08:01:27.113+00', '2025-12-24 08:01:27.113+00', NULL, 'https://storage.danakcorp.com/images/1766563286526-622849562.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QC4M3D2SF26ZH0S0SDWBD', '2025-12-24 08:24:56.708+00', '2025-12-24 08:24:56.708+00', NULL, 'https://storage.danakcorp.com/images/1766564695339-504553420.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QCEDA0T3CGZ01NGBKWZ9S', '2025-12-24 08:25:06.73+00', '2025-12-24 08:25:06.73+00', NULL, 'https://storage.danakcorp.com/images/1766564706032-159367016.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QCWQ00TVCK7BAAHSWA09H', '2025-12-24 08:25:21.376+00', '2025-12-24 08:25:21.376+00', NULL, 'https://storage.danakcorp.com/images/1766564720683-887818252.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QDA1R9WTTV2JWQ2Y3WGST', '2025-12-24 08:25:35.032+00', '2025-12-24 08:25:35.032+00', NULL, 'https://storage.danakcorp.com/images/1766564734432-483528219.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QDSCQNW2JC4SAQCK0QBNW', '2025-12-24 08:25:50.743+00', '2025-12-24 08:25:50.743+00', NULL, 'https://storage.danakcorp.com/images/1766564750099-854146988.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QE1NXGG08JQ5F2BC35NFC', '2025-12-24 08:25:59.23+00', '2025-12-24 08:25:59.23+00', NULL, 'https://storage.danakcorp.com/images/1766564758573-696060786.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QFFXDVTSB5VAXB640HR7N', '2025-12-24 08:26:46.574+00', '2025-12-24 08:26:46.574+00', NULL, 'https://storage.danakcorp.com/images/1766564805823-829938380.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QJ37DT4NCD6QY9MNGCZXZ', '2025-12-24 08:28:11.885+00', '2025-12-24 08:28:11.885+00', NULL, 'https://storage.danakcorp.com/images/1766564891137-468827500.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QJJZX6Y7CR8R60W3TNKRS', '2025-12-24 08:28:28.029+00', '2025-12-24 08:28:28.029+00', NULL, 'https://storage.danakcorp.com/images/1766564907215-921380792.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7QK69ZH6B4S602YKZCBVMB', '2025-12-24 08:28:47.807+00', '2025-12-24 08:28:47.807+00', NULL, 'https://storage.danakcorp.com/images/1766564926872-672612697.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R3EM739KW6PV431V6P19S', '2025-12-24 08:37:40.616+00', '2025-12-24 08:37:40.616+00', NULL, 'https://storage.danakcorp.com/images/1766565459604-638026702.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R3YZ6SAQWZ4CMC4GCJ1V4', '2025-12-24 08:37:57.351+00', '2025-12-24 08:37:57.351+00', NULL, 'https://storage.danakcorp.com/images/1766565476771-42527917.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R4D5BVGPWKXE6A7FNVNRA', '2025-12-24 08:38:11.883+00', '2025-12-24 08:38:11.883+00', NULL, 'https://storage.danakcorp.com/images/1766565491264-946731491.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R4RFYFFQ4GV5TQ3DH6BW6', '2025-12-24 08:38:23.486+00', '2025-12-24 08:38:23.486+00', NULL, 'https://storage.danakcorp.com/images/1766565502475-288189136.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R5KMSAGCXZCTQPTVYDTA7', '2025-12-24 08:38:51.289+00', '2025-12-24 08:38:51.289+00', NULL, 'https://storage.danakcorp.com/images/1766565530628-800474580.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R64HYQD37W8ASB2Q817MW', '2025-12-24 08:39:08.606+00', '2025-12-24 08:39:08.606+00', NULL, 'https://storage.danakcorp.com/images/1766565547983-878658938.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R6KF9YWZBZ3WPAKXQS2CH', '2025-12-24 08:39:23.881+00', '2025-12-24 08:39:23.881+00', NULL, 'https://storage.danakcorp.com/images/1766565563263-891688321.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R7RM02R8FZ4DN65WMJVE8', '2025-12-24 08:40:01.92+00', '2025-12-24 08:40:01.92+00', NULL, 'https://storage.danakcorp.com/images/1766565600547-704332792.svg', '01KD7DG4VCTWZRSA54M3PEJ6NW');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R8G53XBC6AG6KAVSBW94G', '2025-12-24 08:40:26.019+00', '2025-12-24 08:40:26.019+00', NULL, 'https://storage.danakcorp.com/images/1766565625437-528383713.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R901TPNAX9YYRG6W0GWHF', '2025-12-24 08:40:42.298+00', '2025-12-24 08:40:42.298+00', NULL, 'https://storage.danakcorp.com/images/1766565641620-53176909.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7R9PKF9G1DD1HMS2QQQN9V', '2025-12-24 08:41:05.391+00', '2025-12-24 08:41:05.391+00', NULL, 'https://storage.danakcorp.com/images/1766565664427-433669317.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RK2G6E5JKEDK9P95W79PR', '2025-12-24 08:46:12.487+00', '2025-12-24 08:46:12.487+00', NULL, 'https://storage.danakcorp.com/images/1766565971515-159903323.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RKSM9QD6RA2H6WGE23KEC', '2025-12-24 08:46:36.169+00', '2025-12-24 08:46:36.169+00', NULL, 'https://storage.danakcorp.com/images/1766565995424-288101561.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RMR9DRA1TG2BJ9Q8QAZ15', '2025-12-24 08:47:07.565+00', '2025-12-24 08:47:07.565+00', NULL, 'https://storage.danakcorp.com/images/1766566026942-868807643.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RN6FH0TX69RZTKJKM6MEN', '2025-12-24 08:47:22.097+00', '2025-12-24 08:47:22.097+00', NULL, 'https://storage.danakcorp.com/images/1766566041525-973019175.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RNX4EE92QR2C24577BJCW', '2025-12-24 08:47:45.294+00', '2025-12-24 08:47:45.294+00', NULL, 'https://storage.danakcorp.com/images/1766566064741-271844433.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RPHHCKNXNQH29WSG84D2Z', '2025-12-24 08:48:06.189+00', '2025-12-24 08:48:06.189+00', NULL, 'https://storage.danakcorp.com/images/1766566084368-438871956.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RQ6MFA5CDQ4J55NG3N7PX', '2025-12-24 08:48:27.791+00', '2025-12-24 08:48:27.791+00', NULL, 'https://storage.danakcorp.com/images/1766566106954-47179607.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RQNXJNRXS8MXV57R50PKN', '2025-12-24 08:48:43.443+00', '2025-12-24 08:48:43.443+00', NULL, 'https://storage.danakcorp.com/images/1766566122836-486871124.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RR9W6B9BTWJ0N2H11TWM1', '2025-12-24 08:49:03.879+00', '2025-12-24 08:49:03.879+00', NULL, 'https://storage.danakcorp.com/images/1766566143171-668309076.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RRVQWYHSHN3M7R25GNGHS', '2025-12-24 08:49:22.172+00', '2025-12-24 08:49:22.172+00', NULL, 'https://storage.danakcorp.com/images/1766566161551-844376214.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RSAKAP1TJ59GN11DEAXD9', '2025-12-24 08:49:37.386+00', '2025-12-24 08:49:37.386+00', NULL, 'https://storage.danakcorp.com/images/1766566176755-30806596.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RSV35PY1A6193H4GDW1ZW', '2025-12-24 08:49:54.277+00', '2025-12-24 08:49:54.277+00', NULL, 'https://storage.danakcorp.com/images/1766566193720-339416210.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RWX3D4ZZE35W345HDK35S', '2025-12-24 08:51:34.638+00', '2025-12-24 08:51:34.638+00', NULL, 'https://storage.danakcorp.com/images/1766566293736-981836756.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RX79BVR30WGKXAZQ3D0CM', '2025-12-24 08:51:45.068+00', '2025-12-24 08:51:45.068+00', NULL, 'https://storage.danakcorp.com/images/1766566304318-193301989.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RXY99C8PV6SAR0AJ00F16', '2025-12-24 08:52:08.618+00', '2025-12-24 08:52:08.618+00', NULL, 'https://storage.danakcorp.com/images/1766566327768-2675508.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RYBPV273KCR350ESK2FN1', '2025-12-24 08:52:22.364+00', '2025-12-24 08:52:22.364+00', NULL, 'https://storage.danakcorp.com/images/1766566341717-462491426.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RYTNTE20YS29X2XJT7GY3', '2025-12-24 08:52:37.69+00', '2025-12-24 08:52:37.69+00', NULL, 'https://storage.danakcorp.com/images/1766566357028-432111036.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RZ8K86GCJSW1E0EC5T4B2', '2025-12-24 08:52:51.944+00', '2025-12-24 08:52:51.944+00', NULL, 'https://storage.danakcorp.com/images/1766566371354-279596850.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7RZPNGASPYFP9XKMSY208B', '2025-12-24 08:53:06.352+00', '2025-12-24 08:53:06.352+00', NULL, 'https://storage.danakcorp.com/images/1766566385674-569493499.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S0HEQZ4AY5TTFKF36HS6F', '2025-12-24 08:53:33.783+00', '2025-12-24 08:53:33.783+00', NULL, 'https://storage.danakcorp.com/images/1766566413058-975642584.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S0ZEQ6BH163HCX0MQZHBJ', '2025-12-24 08:53:48.119+00', '2025-12-24 08:53:48.119+00', NULL, 'https://storage.danakcorp.com/images/1766566427440-982841441.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S1EF6R6J6AMMC6HP5J0AA', '2025-12-24 08:54:03.494+00', '2025-12-24 08:54:03.494+00', NULL, 'https://storage.danakcorp.com/images/1766566442808-761588425.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S27EFH2CDEK71GVQC839G', '2025-12-24 08:54:29.074+00', '2025-12-24 08:54:29.074+00', NULL, 'https://storage.danakcorp.com/images/1766566468108-519151895.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S2N705Z754YS3YFQW4AGQ', '2025-12-24 08:54:43.169+00', '2025-12-24 08:54:43.169+00', NULL, 'https://storage.danakcorp.com/images/1766566482278-661272876.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S31HNKPAAK58CX77BNJCA', '2025-12-24 08:54:55.798+00', '2025-12-24 08:54:55.798+00', NULL, 'https://storage.danakcorp.com/images/1766566494050-408184442.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+INSERT INTO public.icons (id, created_at, updated_at, deleted_at, url, group_id) VALUES ('01KD7S3AX9VW5B830MYJYGXQ0B', '2025-12-24 08:55:05.385+00', '2025-12-24 08:55:05.385+00', NULL, 'https://storage.danakcorp.com/images/1766566504760-709260995.svg', '01KD7DGBDFX76VKXMKQKR51RJK');
+
+
+--
+-- PostgreSQL database dump complete
+--
+
+\unrestrict 4pvnNoptyhScdLjLBpsonU6ZnOH502ap2y2am0YHcRG7WkY1NxnW43VtUD3Gq85
+
diff --git a/dump/named_icons.csv b/dump/named_icons.csv
new file mode 100644
index 0000000..2139efa
--- /dev/null
+++ b/dump/named_icons.csv
@@ -0,0 +1,138 @@
+Index,Name,URL
+1,bread,https://storage.danakcorp.com/images/1766554365832-411750172.svg
+2,avocado,https://storage.danakcorp.com/images/1766554379149-104970938.svg
+3,knife,https://storage.danakcorp.com/images/1766554389090-593863597.svg
+4,baby bottle,https://storage.danakcorp.com/images/1766554404968-905984091.svg
+5,baby bottle,https://storage.danakcorp.com/images/1766554415325-873800591.svg
+6,baby pacifier,https://storage.danakcorp.com/images/1766554428814-77027818.svg
+7,banana,https://storage.danakcorp.com/images/1766554438632-45072052.svg
+8,barbecue,https://storage.danakcorp.com/images/1766554446340-463157109.svg
+9,barbeque2,https://storage.danakcorp.com/images/1766554456605-280166176.svg
+10,drink,https://storage.danakcorp.com/images/1766554471887-315640495.svg
+11,hanburger,https://storage.danakcorp.com/images/1766554485634-242317100.svg
+12,drink2,https://storage.danakcorp.com/images/1766554504553-157481346.svg
+13,bottle1,https://storage.danakcorp.com/images/1766554528198-919877647.svg
+14,bottle2,https://storage.danakcorp.com/images/1766554544140-886744157.svg
+15,broccoli,https://storage.danakcorp.com/images/1766554565614-684869010.svg
+16,cake1,https://storage.danakcorp.com/images/1766554578855-318583145.svg
+17,cake2,https://storage.danakcorp.com/images/1766554593272-362758712.svg
+18,cake piece,https://storage.danakcorp.com/images/1766554606166-877198688.svg
+19,cup cake,https://storage.danakcorp.com/images/1766554624133-21439996.svg
+20,caupcake2,https://storage.danakcorp.com/images/1766554641691-535696200.svg
+21,candle,https://storage.danakcorp.com/images/1766554658481-114730426.svg
+22,candy,https://storage.danakcorp.com/images/1766554671760-634916570.svg
+23,carrot,https://storage.danakcorp.com/images/1766554967381-660612838.svg
+24,cheese,https://storage.danakcorp.com/images/1766555106925-267924006.svg
+25,cheese2,https://storage.danakcorp.com/images/1766555231674-387319393.svg
+26,hat robe,https://storage.danakcorp.com/images/1766555290519-155637622.svg
+27,hat robe 2,https://storage.danakcorp.com/images/1766555308301-230359494.svg
+28,cherry,https://storage.danakcorp.com/images/1766555420851-186440015.svg
+29,chicken,https://storage.danakcorp.com/images/1766555590828-644527730.svg
+30,baken,https://storage.danakcorp.com/images/1766555606997-571682462.svg
+31,lollipop,https://storage.danakcorp.com/images/1766555663659-433052581.svg
+32,cookie1,https://storage.danakcorp.com/images/1766555713098-988242030.svg
+33,cookie2,https://storage.danakcorp.com/images/1766555726158-680948882.svg
+34,crosson,https://storage.danakcorp.com/images/1766555746650-426516324.svg
+35,juice,https://storage.danakcorp.com/images/1766555765798-127083646.svg
+36,juice2,https://storage.danakcorp.com/images/1766555784837-243715698.svg
+37,juice3,https://storage.danakcorp.com/images/1766555799191-594035927.svg
+38,spoon and fork 1,https://storage.danakcorp.com/images/1766555894624-524350777.svg
+39,spoon and fork 2,https://storage.danakcorp.com/images/1766555932114-485954688.svg
+40,spoon and knife,https://storage.danakcorp.com/images/1766555949650-909996041.svg
+41,fork and knife,https://storage.danakcorp.com/images/1766555966861-75517122.svg
+42,hot dog,https://storage.danakcorp.com/images/1766556006875-239689681.svg
+43,soap,https://storage.danakcorp.com/images/1766556257163-459958715.svg
+44,dish,https://storage.danakcorp.com/images/1766556293812-665835248.svg
+45,donuts,https://storage.danakcorp.com/images/1766556307082-162280793.svg
+46,egg plant,https://storage.danakcorp.com/images/1766556340402-744632392.svg
+47,egg,https://storage.danakcorp.com/images/1766556458335-857124841.svg
+48,fast-food,https://storage.danakcorp.com/images/1766556479530-161860621.svg
+49,taco,https://storage.danakcorp.com/images/1766556498215-91175544.svg
+50,fire,https://storage.danakcorp.com/images/1766556677355-108854669.svg
+51,fish,https://storage.danakcorp.com/images/1766556736283-691587656.svg
+52,fish,https://storage.danakcorp.com/images/1766556759367-58066921.svg
+53,french fries,https://storage.danakcorp.com/images/1766556777353-490756125.svg
+54,fried egg,https://storage.danakcorp.com/images/1766556870740-118553581.svg
+55,refrigerator,https://storage.danakcorp.com/images/1766556890334-962678132.svg
+56,grape,https://storage.danakcorp.com/images/1766556921029-865260745.svg
+57,hat robe,https://storage.danakcorp.com/images/1766556946363-320833501.svg
+58,hot dog,https://storage.danakcorp.com/images/1766556973771-832565827.svg
+59,ice cream,https://storage.danakcorp.com/images/1766557056358-727862983.svg
+60,ice cream,https://storage.danakcorp.com/images/1766557199259-72955190.svg
+61,ice cream 3,https://storage.danakcorp.com/images/1766557252452-988016525.svg
+62,jar,https://storage.danakcorp.com/images/1766557274778-439028456.svg
+63,jelly,https://storage.danakcorp.com/images/1766557289094-415104854.svg
+64,juice1,https://storage.danakcorp.com/images/1766557300923-302277606.svg
+65,juice 2,https://storage.danakcorp.com/images/1766557317091-602116315.svg
+66,kitchen stove,https://storage.danakcorp.com/images/1766557647999-47333939.svg
+67,orange slash,https://storage.danakcorp.com/images/1766557669282-172512141.svg
+68,loaf of bread,https://storage.danakcorp.com/images/1766557705283-692546793.svg
+69,loaf of bread 2,https://storage.danakcorp.com/images/1766557729175-762576743.svg
+70,meat,https://storage.danakcorp.com/images/1766557756487-665300947.svg
+71,meat 2,https://storage.danakcorp.com/images/1766557776067-804149228.svg
+72,mixer,https://storage.danakcorp.com/images/1766557797509-101726352.svg
+73,mortar,https://storage.danakcorp.com/images/1766557816484-357699340.svg
+74,noodle,https://storage.danakcorp.com/images/1766557837292-326521286.svg
+75,nuts,https://storage.danakcorp.com/images/1766559083575-564721059.svg
+76,olive,https://storage.danakcorp.com/images/1766559099561-720966516.svg
+77,onion,https://storage.danakcorp.com/images/1766559116496-834964990.svg
+78,pizza,https://storage.danakcorp.com/images/1766563021426-600579018.svg
+79,rolling pin,https://storage.danakcorp.com/images/1766563038525-727531190.svg
+80,solt,https://storage.danakcorp.com/images/1766563051485-824602001.svg
+81,scales,https://storage.danakcorp.com/images/1766563066017-372210647.svg
+82,basket,https://storage.danakcorp.com/images/1766563124296-331607800.svg
+83,skewer,https://storage.danakcorp.com/images/1766563142133-359920423.svg
+84,strawberry,https://storage.danakcorp.com/images/1766563164270-350101986.svg
+85,toast,https://storage.danakcorp.com/images/1766563181587-86630830.svg
+86,watermelon,https://storage.danakcorp.com/images/1766563204966-651499380.svg
+87,whisk,https://storage.danakcorp.com/images/1766563220596-103699525.svg
+88,wine glass,https://storage.danakcorp.com/images/1766563265634-373953449.svg
+89,wine glass 2,https://storage.danakcorp.com/images/1766563275517-958045207.svg
+90,wine glass 3,https://storage.danakcorp.com/images/1766563286526-622849562.svg
+91,colored bakeries,https://storage.danakcorp.com/images/1766564695339-504553420.svg
+92,colored bio,https://storage.danakcorp.com/images/1766564706032-159367016.svg
+93,colored bibimbap,https://storage.danakcorp.com/images/1766564720683-887818252.svg
+94,colored boba,https://storage.danakcorp.com/images/1766564734432-483528219.svg
+95,colored breakfast,https://storage.danakcorp.com/images/1766564750099-854146988.svg
+96,colored hamburger,https://storage.danakcorp.com/images/1766564758573-696060786.svg
+97,colored hamburger 2,https://storage.danakcorp.com/images/1766564805823-829938380.svg
+98,colored coffee,https://storage.danakcorp.com/images/1766564891137-468827500.svg
+99,colored coca,https://storage.danakcorp.com/images/1766564907215-921380792.svg
+100,colored cookies,https://storage.danakcorp.com/images/1766564926872-672612697.svg
+101,colored noodle,https://storage.danakcorp.com/images/1766565459604-638026702.svg
+102,colored crossan,https://storage.danakcorp.com/images/1766565476771-42527917.svg
+103,colored sweet,https://storage.danakcorp.com/images/1766565491264-946731491.svg
+104,colored dumpling,https://storage.danakcorp.com/images/1766565502475-288189136.svg
+105,colored fish and chips,https://storage.danakcorp.com/images/1766565530628-800474580.svg
+106,colored focaccia,https://storage.danakcorp.com/images/1766565547983-878658938.svg
+107,colored french fries,https://storage.danakcorp.com/images/1766565563263-891688321.svg
+108,colored fried chicken,https://storage.danakcorp.com/images/1766565600547-704332792.svg
+109,colored fried rice,https://storage.danakcorp.com/images/1766565625437-528383713.svg
+110,colored fries,https://storage.danakcorp.com/images/1766565641620-53176909.svg
+111,hat robe,https://storage.danakcorp.com/images/1766565664427-433669317.svg
+112,colored hot dog,https://storage.danakcorp.com/images/1766565971515-159903323.svg
+113,colored hot dog,https://storage.danakcorp.com/images/1766565995424-288101561.svg
+114,colored hot pot,https://storage.danakcorp.com/images/1766566026942-868807643.svg
+115,colored ice cream,https://storage.danakcorp.com/images/1766566041525-973019175.svg
+116,colored ice tea,https://storage.danakcorp.com/images/1766566064741-271844433.svg
+117,colored instant noodle cup,https://storage.danakcorp.com/images/1766566084368-438871956.svg
+118,lemon,https://storage.danakcorp.com/images/1766566106954-47179607.svg
+119,colored martini,https://storage.danakcorp.com/images/1766566122836-486871124.svg
+120,colored match,https://storage.danakcorp.com/images/1766566143171-668309076.svg
+121,colored mochi donuts,https://storage.danakcorp.com/images/1766566161551-844376214.svg
+122,colored mochi,https://storage.danakcorp.com/images/1766566176755-30806596.svg
+123,colored nachos,https://storage.danakcorp.com/images/1766566193720-339416210.svg
+124,colored origini,https://storage.danakcorp.com/images/1766566293736-981836756.svg
+125,colored pan cake,https://storage.danakcorp.com/images/1766566304318-193301989.svg
+126,colored pepperoni pizza,https://storage.danakcorp.com/images/1766566327768-2675508.svg
+127,colored pizza 4,https://storage.danakcorp.com/images/1766566341717-462491426.svg
+128,colored podding,https://storage.danakcorp.com/images/1766566357028-432111036.svg
+129,quesadilla,https://storage.danakcorp.com/images/1766566371354-279596850.svg
+130,salad,https://storage.danakcorp.com/images/1766566385674-569493499.svg
+131,colored sandwich,https://storage.danakcorp.com/images/1766566413058-975642584.svg
+132,colored stak,https://storage.danakcorp.com/images/1766566427440-982841441.svg
+133,colored soshi,https://storage.danakcorp.com/images/1766566442808-761588425.svg
+134,colored taco,https://storage.danakcorp.com/images/1766566468108-519151895.svg
+135,colored tempura,https://storage.danakcorp.com/images/1766566482278-661272876.svg
+136,colored tafu,https://storage.danakcorp.com/images/1766566494050-408184442.svg
+137,whisk,https://storage.danakcorp.com/images/1766566504760-709260995.svg
diff --git a/dump/populate_icon_names.js b/dump/populate_icon_names.js
new file mode 100644
index 0000000..240dfd3
--- /dev/null
+++ b/dump/populate_icon_names.js
@@ -0,0 +1,58 @@
+const fs = require('fs');
+const path = require('path');
+
+// Read the CSV file
+const csvPath = path.join(__dirname, 'icons.csv');
+const csvContent = fs.readFileSync(csvPath, 'utf8');
+
+// Parse CSV lines
+const lines = csvContent.split('\n').filter(line => line.trim());
+const header = lines[0];
+const dataLines = lines.slice(1);
+
+// Icon names - replace these with your actual icon names after reviewing them
+const iconNames = [
+ // Add your icon names here, one for each row
+ // Example: "hamburger", "pizza", "drink", etc.
+ // For now, placeholders:
+ "icon_1", "icon_2", "icon_3", "icon_4", "icon_5", "icon_6", "icon_7", "icon_8", "icon_9", "icon_10",
+ "icon_11", "icon_12", "icon_13", "icon_14", "icon_15", "icon_16", "icon_17", "icon_18", "icon_19", "icon_20",
+ "icon_21", "icon_22", "icon_23", "icon_24", "icon_25", "icon_26", "icon_27", "icon_28", "icon_29", "icon_30",
+ "icon_31", "icon_32", "icon_33", "icon_34", "icon_35", "icon_36", "icon_37", "icon_38", "icon_39", "icon_40",
+ "icon_41", "icon_42", "icon_43", "icon_44", "icon_45", "icon_46", "icon_47", "icon_48", "icon_49", "icon_50",
+ "icon_51", "icon_52", "icon_53", "icon_54", "icon_55", "icon_56", "icon_57", "icon_58", "icon_59", "icon_60",
+ "icon_61", "icon_62", "icon_63", "icon_64", "icon_65", "icon_66", "icon_67", "icon_68", "icon_69", "icon_70",
+ "icon_71", "icon_72", "icon_73", "icon_74", "icon_75", "icon_76", "icon_77", "icon_78", "icon_79", "icon_80",
+ "icon_81", "icon_82", "icon_83", "icon_84", "icon_85", "icon_86", "icon_87", "icon_88", "icon_89", "icon_90",
+ "icon_91", "icon_92", "icon_93", "icon_94", "icon_95", "icon_96", "icon_97", "icon_98", "icon_99", "icon_100",
+ "icon_101", "icon_102", "icon_103", "icon_104", "icon_105", "icon_106", "icon_107", "icon_108", "icon_109", "icon_110",
+ "icon_111", "icon_112", "icon_113", "icon_114", "icon_115", "icon_116", "icon_117", "icon_118", "icon_119", "icon_120",
+ "icon_121", "icon_122", "icon_123", "icon_124", "icon_125", "icon_126", "icon_127", "icon_128", "icon_129", "icon_130",
+ "icon_131", "icon_132", "icon_133", "icon_134", "icon_135", "icon_136", "icon_137", "icon_138"
+];
+
+// Validate that we have the right number of names
+if (iconNames.length !== dataLines.length) {
+ console.error(`Error: You provided ${iconNames.length} icon names but there are ${dataLines.length} data rows in the CSV.`);
+ process.exit(1);
+}
+
+// Create new CSV content with icon names
+const newLines = [header];
+
+dataLines.forEach((line, index) => {
+ // Remove trailing comma if present and add the icon name
+ const cleanLine = line.replace(/,$/, '');
+ newLines.push(`${cleanLine},"${iconNames[index]}"`);
+});
+
+// Write the updated CSV
+const newCsvContent = newLines.join('\n');
+fs.writeFileSync(csvPath, newCsvContent, 'utf8');
+
+console.log(`✅ Successfully added ${iconNames.length} icon names to icons.csv`);
+console.log('📁 File saved:', csvPath);
+
+// Show summary
+const namedCount = iconNames.filter(name => name && !name.startsWith('icon_')).length;
+console.log(`📊 ${namedCount} custom names, ${iconNames.length - namedCount} placeholder names`);
diff --git a/dump/restore-icons.sh b/dump/restore-icons.sh
new file mode 100755
index 0000000..140b3a6
--- /dev/null
+++ b/dump/restore-icons.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+# Script to restore icon and icon_groups tables to PostgreSQL database
+# Usage: ./restore-icons.sh [dump_file]
+
+set -e
+
+# Load environment variables if .env file exists
+if [ -f .env ]; then
+ set -a
+ # Source .env file, handling comments and empty lines
+ while IFS= read -r line || [ -n "$line" ]; do
+ # Remove leading/trailing whitespace
+ line=$(echo "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
+ # Skip empty lines and lines starting with #
+ [[ -z "$line" ]] && continue
+ [[ "$line" =~ ^# ]] && continue
+ # Remove inline comments (everything after # that's not in quotes)
+ line=$(echo "$line" | sed 's/#.*$//' | sed 's/[[:space:]]*$//')
+ # Skip if line is empty after removing comments
+ [[ -z "$line" ]] && continue
+ # Export the variable (only if it looks like KEY=VALUE)
+ if [[ "$line" =~ ^[[:alpha:]_][[:alnum:]_]*= ]]; then
+ export "$line" 2>/dev/null || true
+ fi
+ done < .env
+ set +a
+fi
+
+# Get database connection details from environment variables
+DB_HOST="${DB_HOST:-localhost}"
+DB_PORT="${DB_PORT:-5432}"
+DB_NAME="${DB_NAME:-dmenu}"
+DB_USER="${DB_USER:-postgres}"
+
+# Input file name
+if [ -z "$1" ]; then
+ echo "Error: Please provide a dump file to restore"
+ echo "Usage: ./restore-icons.sh "
+ echo "Example: ./restore-icons.sh icons_dump_20240101_120000.sql"
+ exit 1
+fi
+
+DUMP_FILE="$1"
+
+# Check if dump file exists
+if [ ! -f "${DUMP_FILE}" ]; then
+ echo "Error: Dump file '${DUMP_FILE}' not found!"
+ exit 1
+fi
+
+echo "Restoring icon_groups and icons tables..."
+echo "Database: ${DB_NAME}@${DB_HOST}:${DB_PORT}"
+echo "Dump file: ${DUMP_FILE}"
+echo ""
+
+# Ask for confirmation
+read -p "This will replace existing data in icon_groups and icons tables. Continue? (y/N) " -n 1 -r
+echo
+if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ echo "Restore cancelled."
+ exit 0
+fi
+
+# Disable foreign key checks temporarily and truncate tables
+echo "Clearing existing data..."
+PGPASSWORD="${DB_PASS}" psql \
+ -h "${DB_HOST}" \
+ -p "${DB_PORT}" \
+ -U "${DB_USER}" \
+ -d "${DB_NAME}" \
+ -c "TRUNCATE TABLE icons CASCADE;" \
+ -c "TRUNCATE TABLE icon_groups CASCADE;"
+
+# Restore data from dump file
+echo "Restoring data from ${DUMP_FILE}..."
+PGPASSWORD="${DB_PASS}" psql \
+ -h "${DB_HOST}" \
+ -p "${DB_PORT}" \
+ -U "${DB_USER}" \
+ -d "${DB_NAME}" \
+ -f "${DUMP_FILE}"
+
+echo ""
+echo "Restore completed successfully!"
+echo ""
+
+# Verify the restore
+echo "Verifying restore..."
+ICON_GROUPS_COUNT=$(PGPASSWORD="${DB_PASS}" psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" -d "${DB_NAME}" -t -c "SELECT COUNT(*) FROM icon_groups;")
+ICONS_COUNT=$(PGPASSWORD="${DB_PASS}" psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" -d "${DB_NAME}" -t -c "SELECT COUNT(*) FROM icons;")
+
+echo "icon_groups records: ${ICON_GROUPS_COUNT}"
+echo "icons records: ${ICONS_COUNT}"
+
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..44698c4
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,36 @@
+// @ts-check
+import eslint from '@eslint/js';
+import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
+import globals from 'globals';
+import tseslint from 'typescript-eslint';
+
+export default tseslint.config(
+ {
+ ignores: ['eslint.config.mjs'],
+ },
+ eslint.configs.recommended,
+ ...tseslint.configs.recommendedTypeChecked,
+ eslintPluginPrettierRecommended,
+ {
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ ...globals.jest,
+ },
+ sourceType: 'commonjs',
+ parserOptions: {
+ projectService: true,
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+ {
+ rules: {
+ '@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/no-floating-promises': 'warn',
+ '@typescript-eslint/no-unsafe-argument': 'warn',
+ '@typescript-eslint/consistent-type-imports': 'error',
+ '@typescript-eslint/no-unused-vars': 'error',
+ },
+ },
+);
diff --git a/nest-cli.json b/nest-cli.json
new file mode 100644
index 0000000..f9aa683
--- /dev/null
+++ b/nest-cli.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/nest-cli",
+ "collection": "@nestjs/schematics",
+ "sourceRoot": "src",
+ "compilerOptions": {
+ "deleteOutDir": true
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..4136097
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,17122 @@
+{
+ "name": "base-api",
+ "version": "0.0.1",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "base-api",
+ "version": "0.0.1",
+ "license": "UNLICENSED",
+ "dependencies": {
+ "@apollo/server": "^5.1.0",
+ "@as-integrations/fastify": "^3.1.0",
+ "@aws-sdk/client-s3": "^3.922.0",
+ "@aws-sdk/s3-request-presigner": "^3.922.0",
+ "@fastify/cookie": "^11.0.2",
+ "@fastify/multipart": "^9.3.0",
+ "@fastify/static": "^8.3.0",
+ "@keyv/redis": "^5.1.3",
+ "@mikro-orm/core": "^6.5.8",
+ "@mikro-orm/nestjs": "^6.1.1",
+ "@mikro-orm/postgresql": "^6.5.8",
+ "@nest-lab/fastify-multer": "^1.3.0",
+ "@nestjs/axios": "^4.0.1",
+ "@nestjs/bullmq": "^11.0.4",
+ "@nestjs/cache-manager": "^3.0.1",
+ "@nestjs/common": "^11.0.1",
+ "@nestjs/config": "^4.0.2",
+ "@nestjs/core": "^11.0.1",
+ "@nestjs/event-emitter": "^3.0.1",
+ "@nestjs/jwt": "^11.0.1",
+ "@nestjs/mapped-types": "*",
+ "@nestjs/platform-express": "^11.0.1",
+ "@nestjs/platform-fastify": "^11.1.8",
+ "@nestjs/platform-socket.io": "^11.1.9",
+ "@nestjs/schedule": "^6.0.1",
+ "@nestjs/swagger": "^11.2.1",
+ "@nestjs/throttler": "^6.4.0",
+ "@types/socket.io": "^3.0.1",
+ "axios": "^1.13.1",
+ "bullmq": "^5.65.1",
+ "cache-manager": "^7.2.4",
+ "cacheable": "^2.3.1",
+ "class-transformer": "^0.5.1",
+ "class-validator": "^0.14.2",
+ "dayjs": "^1.11.19",
+ "fastify": "^5.6.1",
+ "firebase-admin": "^13.6.0",
+ "reflect-metadata": "^0.2.2",
+ "rxjs": "^7.8.1",
+ "sanitize-html": "^2.17.0",
+ "slugify": "^1.6.6",
+ "socket.io": "^4.8.1",
+ "ulid": "^3.0.1",
+ "uuid": "^13.0.0"
+ },
+ "devDependencies": {
+ "@eslint/eslintrc": "^3.2.0",
+ "@eslint/js": "^9.18.0",
+ "@mikro-orm/cli": "^6.5.8",
+ "@mikro-orm/migrations": "^6.5.8",
+ "@mikro-orm/seeder": "^6.5.8",
+ "@nestjs/cli": "^11.0.0",
+ "@nestjs/schematics": "^11.0.0",
+ "@nestjs/testing": "^11.0.1",
+ "@types/express": "^5.0.0",
+ "@types/jest": "^30.0.0",
+ "@types/node": "^22.10.7",
+ "@types/sanitize-html": "^2.16.0",
+ "@types/supertest": "^6.0.2",
+ "@types/uuid": "^10.0.0",
+ "eslint": "^9.18.0",
+ "eslint-config-prettier": "^10.0.1",
+ "eslint-plugin-prettier": "^5.2.2",
+ "globals": "^16.0.0",
+ "jest": "^30.0.0",
+ "prettier": "^3.4.2",
+ "source-map-support": "^0.5.21",
+ "supertest": "^7.0.0",
+ "ts-jest": "^29.2.5",
+ "ts-loader": "^9.5.2",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.7.3",
+ "typescript-eslint": "^8.20.0"
+ }
+ },
+ "node_modules/@angular-devkit/core": {
+ "version": "19.2.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.15.tgz",
+ "integrity": "sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "8.17.1",
+ "ajv-formats": "3.0.1",
+ "jsonc-parser": "3.3.1",
+ "picomatch": "4.0.2",
+ "rxjs": "7.8.1",
+ "source-map": "0.7.4"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@angular-devkit/core/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@angular-devkit/core/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@angular-devkit/core/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@angular-devkit/schematics": {
+ "version": "19.2.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.15.tgz",
+ "integrity": "sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "19.2.15",
+ "jsonc-parser": "3.3.1",
+ "magic-string": "0.30.17",
+ "ora": "5.4.1",
+ "rxjs": "7.8.1"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+ },
+ "node_modules/@angular-devkit/schematics-cli": {
+ "version": "19.2.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-19.2.15.tgz",
+ "integrity": "sha512-1ESFmFGMpGQmalDB3t2EtmWDGv6gOFYBMxmHO2f1KI/UDl8UmZnCGL4mD3EWo8Hv0YIsZ9wOH9Q7ZHNYjeSpzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "19.2.15",
+ "@angular-devkit/schematics": "19.2.15",
+ "@inquirer/prompts": "7.3.2",
+ "ansi-colors": "4.1.3",
+ "symbol-observable": "4.0.0",
+ "yargs-parser": "21.1.1"
+ },
+ "bin": {
+ "schematics": "bin/schematics.js"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+ },
+ "node_modules/@angular-devkit/schematics-cli/node_modules/@inquirer/prompts": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.2.tgz",
+ "integrity": "sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/checkbox": "^4.1.2",
+ "@inquirer/confirm": "^5.1.6",
+ "@inquirer/editor": "^4.2.7",
+ "@inquirer/expand": "^4.0.9",
+ "@inquirer/input": "^4.1.6",
+ "@inquirer/number": "^3.0.9",
+ "@inquirer/password": "^4.0.9",
+ "@inquirer/rawlist": "^4.0.9",
+ "@inquirer/search": "^3.0.9",
+ "@inquirer/select": "^4.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@angular-devkit/schematics/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@apollo/cache-control-types": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz",
+ "integrity": "sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g==",
+ "license": "MIT",
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/protobufjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz",
+ "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==",
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "apollo-pbjs": "bin/pbjs",
+ "apollo-pbts": "bin/pbts"
+ }
+ },
+ "node_modules/@apollo/server": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@apollo/server/-/server-5.1.0.tgz",
+ "integrity": "sha512-azqwwmKp23TMFQkjE66622sdY2Ao9d+LrebW++b3rFCNxU6XAl/vRwInOh9ejNgShDQzVS+bdCIFQnH9+r+N1A==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/cache-control-types": "^1.0.3",
+ "@apollo/server-gateway-interface": "^2.0.0",
+ "@apollo/usage-reporting-protobuf": "^4.1.1",
+ "@apollo/utils.createhash": "^3.0.0",
+ "@apollo/utils.fetcher": "^3.0.0",
+ "@apollo/utils.isnodelike": "^3.0.0",
+ "@apollo/utils.keyvaluecache": "^4.0.0",
+ "@apollo/utils.logger": "^3.0.0",
+ "@apollo/utils.usagereporting": "^2.1.0",
+ "@apollo/utils.withrequired": "^3.0.0",
+ "@graphql-tools/schema": "^10.0.0",
+ "async-retry": "^1.2.1",
+ "body-parser": "^2.2.0",
+ "cors": "^2.8.5",
+ "finalhandler": "^2.1.0",
+ "loglevel": "^1.6.8",
+ "lru-cache": "^11.1.0",
+ "negotiator": "^1.0.0",
+ "uuid": "^11.1.0",
+ "whatwg-mimetype": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "peerDependencies": {
+ "graphql": "^16.11.0"
+ }
+ },
+ "node_modules/@apollo/server-gateway-interface": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/server-gateway-interface/-/server-gateway-interface-2.0.0.tgz",
+ "integrity": "sha512-3HEMD6fSantG2My3jWkb9dvfkF9vJ4BDLRjMgsnD790VINtuPaEp+h3Hg9HOHiWkML6QsOhnaRqZ+gvhp3y8Nw==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/usage-reporting-protobuf": "^4.1.1",
+ "@apollo/utils.fetcher": "^3.0.0",
+ "@apollo/utils.keyvaluecache": "^4.0.0",
+ "@apollo/utils.logger": "^3.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/server/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@apollo/server/node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/@apollo/usage-reporting-protobuf": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz",
+ "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/protobufjs": "1.2.7"
+ }
+ },
+ "node_modules/@apollo/utils.createhash": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.createhash/-/utils.createhash-3.0.1.tgz",
+ "integrity": "sha512-CKrlySj4eQYftBE5MJ8IzKwIibQnftDT7yGfsJy5KSEEnLlPASX0UTpbKqkjlVEwPPd4mEwI7WOM7XNxEuO05A==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/utils.isnodelike": "^3.0.0",
+ "sha.js": "^2.4.11"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@apollo/utils.dropunuseddefinitions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-2.0.1.tgz",
+ "integrity": "sha512-EsPIBqsSt2BwDsv8Wu76LK5R1KtsVkNoO4b0M5aK0hx+dGg9xJXuqlr7Fo34Dl+y83jmzn+UvEW+t1/GP2melA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.fetcher": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.fetcher/-/utils.fetcher-3.1.0.tgz",
+ "integrity": "sha512-Z3QAyrsQkvrdTuHAFwWDNd+0l50guwoQUoaDQssLOjkmnmVuvXlJykqlEJolio+4rFwBnWdoY1ByFdKaQEcm7A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@apollo/utils.isnodelike": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.isnodelike/-/utils.isnodelike-3.0.0.tgz",
+ "integrity": "sha512-xrjyjfkzunZ0DeF6xkHaK5IKR8F1FBq6qV+uZ+h9worIF/2YSzA0uoBxGv6tbTeo9QoIQnRW4PVFzGix5E7n/g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@apollo/utils.keyvaluecache": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-4.0.0.tgz",
+ "integrity": "sha512-mKw1myRUkQsGPNB+9bglAuhviodJ2L2MRYLTafCMw5BIo7nbvCPNCkLnIHjZ1NOzH7SnMAr5c9LmXiqsgYqLZw==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/utils.logger": "^3.0.0",
+ "lru-cache": "^11.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@apollo/utils.logger": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-3.0.0.tgz",
+ "integrity": "sha512-M8V8JOTH0F2qEi+ktPfw4RL7MvUycDfKp7aEap2eWXfL5SqWHN6jTLbj5f5fj1cceHpyaUSOZlvlaaryaxZAmg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@apollo/utils.printwithreducedwhitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-2.0.1.tgz",
+ "integrity": "sha512-9M4LUXV/fQBh8vZWlLvb/HyyhjJ77/I5ZKu+NBWV/BmYGyRmoEP9EVAy7LCVoY3t8BDcyCAGfxJaLFCSuQkPUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.removealiases": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-2.0.1.tgz",
+ "integrity": "sha512-0joRc2HBO4u594Op1nev+mUF6yRnxoUH64xw8x3bX7n8QBDYdeYgY4tF0vJReTy+zdn2xv6fMsquATSgC722FA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.sortast": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-2.0.1.tgz",
+ "integrity": "sha512-eciIavsWpJ09za1pn37wpsCGrQNXUhM0TktnZmHwO+Zy9O4fu/WdB4+5BvVhFiZYOXvfjzJUcc+hsIV8RUOtMw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash.sortby": "^4.7.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.stripsensitiveliterals": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-2.0.1.tgz",
+ "integrity": "sha512-QJs7HtzXS/JIPMKWimFnUMK7VjkGQTzqD9bKD1h3iuPAqLsxd0mUNVbkYOPTsDhUKgcvUOfOqOJWYohAKMvcSA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.usagereporting": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-2.1.0.tgz",
+ "integrity": "sha512-LPSlBrn+S17oBy5eWkrRSGb98sWmnEzo3DPTZgp8IQc8sJe0prDgDuppGq4NeQlpoqEHz0hQeYHAOA0Z3aQsxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@apollo/usage-reporting-protobuf": "^4.1.0",
+ "@apollo/utils.dropunuseddefinitions": "^2.0.1",
+ "@apollo/utils.printwithreducedwhitespace": "^2.0.1",
+ "@apollo/utils.removealiases": "2.0.1",
+ "@apollo/utils.sortast": "^2.0.1",
+ "@apollo/utils.stripsensitiveliterals": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "graphql": "14.x || 15.x || 16.x"
+ }
+ },
+ "node_modules/@apollo/utils.withrequired": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/utils.withrequired/-/utils.withrequired-3.0.0.tgz",
+ "integrity": "sha512-aaxeavfJ+RHboh7c2ofO5HHtQobGX4AgUujXP4CXpREHp9fQ9jPi6K9T1jrAKe7HIipoP0OJ1gd6JamSkFIpvA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@as-integrations/fastify": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@as-integrations/fastify/-/fastify-3.1.0.tgz",
+ "integrity": "sha512-hfK5adsybNj0qRc+5BiCOy50SqqOhPIctvaaGsjqq7ui8lO/TZkLtz6IvDhWC70vOcMXJuMJCTTEb4hex8RVgw==",
+ "license": "MIT",
+ "dependencies": {
+ "fastify-plugin": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "peerDependencies": {
+ "@apollo/server": "^4.0.0 || ^5.0.0",
+ "fastify": "^5.3.0"
+ }
+ },
+ "node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/crc32c": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
+ "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
+ "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/supports-web-crypto": "^5.2.0",
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
+ "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-js": "^5.2.0",
+ "@aws-crypto/supports-web-crypto": "^5.2.0",
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-js": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
+ "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/supports-web-crypto": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
+ "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/util": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
+ "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.222.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-s3": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.922.0.tgz",
+ "integrity": "sha512-SZRaZUUAHCWfEyBf4SRSPd29ko4uFoJpfd0E/w1meE68XhFB52FTtz/71UqYcwqZmN+s7oUNFFZT+DE/dnQSEA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha1-browser": "5.2.0",
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/credential-provider-node": "3.922.0",
+ "@aws-sdk/middleware-bucket-endpoint": "3.922.0",
+ "@aws-sdk/middleware-expect-continue": "3.922.0",
+ "@aws-sdk/middleware-flexible-checksums": "3.922.0",
+ "@aws-sdk/middleware-host-header": "3.922.0",
+ "@aws-sdk/middleware-location-constraint": "3.922.0",
+ "@aws-sdk/middleware-logger": "3.922.0",
+ "@aws-sdk/middleware-recursion-detection": "3.922.0",
+ "@aws-sdk/middleware-sdk-s3": "3.922.0",
+ "@aws-sdk/middleware-ssec": "3.922.0",
+ "@aws-sdk/middleware-user-agent": "3.922.0",
+ "@aws-sdk/region-config-resolver": "3.922.0",
+ "@aws-sdk/signature-v4-multi-region": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-endpoints": "3.922.0",
+ "@aws-sdk/util-user-agent-browser": "3.922.0",
+ "@aws-sdk/util-user-agent-node": "3.922.0",
+ "@aws-sdk/xml-builder": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/eventstream-serde-browser": "^4.2.4",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.4",
+ "@smithy/eventstream-serde-node": "^4.2.4",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-blob-browser": "^4.2.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/hash-stream-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/md5-js": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.4",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.922.0.tgz",
+ "integrity": "sha512-jdHs7uy7cSpiMvrxhYmqHyJxgK7hyqw4plG8OQ4YTBpq0SbfAxdoOuOkwJ1IVUUQho4otR1xYYjiX/8e8J8qwQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/middleware-host-header": "3.922.0",
+ "@aws-sdk/middleware-logger": "3.922.0",
+ "@aws-sdk/middleware-recursion-detection": "3.922.0",
+ "@aws-sdk/middleware-user-agent": "3.922.0",
+ "@aws-sdk/region-config-resolver": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-endpoints": "3.922.0",
+ "@aws-sdk/util-user-agent-browser": "3.922.0",
+ "@aws-sdk/util-user-agent-node": "3.922.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.922.0.tgz",
+ "integrity": "sha512-EvfP4cqJfpO3L2v5vkIlTkMesPtRwWlMfsaW6Tpfm7iYfBOuTi6jx60pMDMTyJNVfh6cGmXwh/kj1jQdR+w99Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/xml-builder": "3.921.0",
+ "@smithy/core": "^3.17.2",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/signature-v4": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.922.0.tgz",
+ "integrity": "sha512-WikGQpKkROJSK3D3E7odPjZ8tU7WJp5/TgGdRuZw3izsHUeH48xMv6IznafpRTmvHcjAbDQj4U3CJZNAzOK/OQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-http": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.922.0.tgz",
+ "integrity": "sha512-i72DgHMK7ydAEqdzU0Duqh60Q8W59EZmRJ73y0Y5oFmNOqnYsAI+UXyOoCsubp+Dkr6+yOwAn1gPt1XGE9Aowg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-stream": "^4.5.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.922.0.tgz",
+ "integrity": "sha512-bVF+pI5UCLNkvbiZr/t2fgTtv84s8FCdOGAPxQiQcw5qOZywNuuCCY3wIIchmQr6GJr8YFkEp5LgDCac5EC5aQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/credential-provider-env": "3.922.0",
+ "@aws-sdk/credential-provider-http": "3.922.0",
+ "@aws-sdk/credential-provider-process": "3.922.0",
+ "@aws-sdk/credential-provider-sso": "3.922.0",
+ "@aws-sdk/credential-provider-web-identity": "3.922.0",
+ "@aws-sdk/nested-clients": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.922.0.tgz",
+ "integrity": "sha512-agCwaD6mBihToHkjycL8ObIS2XOnWypWZZWhJSoWyHwFrhEKz1zGvgylK9Dc711oUfU+zU6J8e0JPKNJMNb3BQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.922.0",
+ "@aws-sdk/credential-provider-http": "3.922.0",
+ "@aws-sdk/credential-provider-ini": "3.922.0",
+ "@aws-sdk/credential-provider-process": "3.922.0",
+ "@aws-sdk/credential-provider-sso": "3.922.0",
+ "@aws-sdk/credential-provider-web-identity": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.922.0.tgz",
+ "integrity": "sha512-1DZOYezT6okslpvMW7oA2q+y17CJd4fxjNFH0jtThfswdh9CtG62+wxenqO+NExttq0UMaKisrkZiVrYQBTShw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.922.0.tgz",
+ "integrity": "sha512-nbD3G3hShTYxLCkKMqLkLPtKwAAfxdY/k9jHtZmVBFXek2T6tQrqZHKxlAu+fd23Ga4/Aik7DLQQx1RA1a5ipg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.922.0",
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/token-providers": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.922.0.tgz",
+ "integrity": "sha512-wjGIhgMHGGQfQTdFaJphNOKyAL8wZs6znJdHADPVURmgR+EWLyN/0fDO1u7wx8xaLMZpbHIFWBEvf9TritR/cQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/nested-clients": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-bucket-endpoint": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.922.0.tgz",
+ "integrity": "sha512-Dpr2YeOaLFqt3q1hocwBesynE3x8/dXZqXZRuzSX/9/VQcwYBFChHAm4mTAl4zuvArtDbLrwzWSxmOWYZGtq5w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-config-provider": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-expect-continue": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.922.0.tgz",
+ "integrity": "sha512-xmnLWMtmHJHJBupSWMUEW1gyxuRIeQ1Ov2xa8Tqq77fPr4Ft2AluEwiDMaZIMHoAvpxWKEEt9Si59Li7GIA+bQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-flexible-checksums": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.922.0.tgz",
+ "integrity": "sha512-G363np7YcJhf+gBucskdv8cOTbs2TRwocEzRupuqDIooGDlLBlfJrvwehdgtWR8l53yjJR3zcHvGrVPTe2h8Nw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@aws-crypto/crc32c": "5.2.0",
+ "@aws-crypto/util": "5.2.0",
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.922.0.tgz",
+ "integrity": "sha512-HPquFgBnq/KqKRVkiuCt97PmWbKtxQ5iUNLEc6FIviqOoZTmaYG3EDsIbuFBz9C4RHJU4FKLmHL2bL3FEId6AA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-location-constraint": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.922.0.tgz",
+ "integrity": "sha512-T4iqd7WQ2DDjCH/0s50mnhdoX+IJns83ZE+3zj9IDlpU0N2aq8R91IG890qTfYkUEdP9yRm0xir/CNed+v6Dew==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.922.0.tgz",
+ "integrity": "sha512-AkvYO6b80FBm5/kk2E636zNNcNgjztNNUxpqVx+huyGn9ZqGTzS4kLqW2hO6CBe5APzVtPCtiQsXL24nzuOlAg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.922.0.tgz",
+ "integrity": "sha512-TtSCEDonV/9R0VhVlCpxZbp/9sxQvTTRKzIf8LxW3uXpby6Wl8IxEciBJlxmSkoqxh542WRcko7NYODlvL/gDA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@aws/lambda-invoke-store": "^0.1.1",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-sdk-s3": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.922.0.tgz",
+ "integrity": "sha512-ygg8lME1oFAbsH42ed2wtGqfHLoT5irgx6VC4X98j79fV1qXEwwwbqMsAiMQ/HJehpjqAFRVsHox3MHLN48Z5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/core": "^3.17.2",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/signature-v4": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-ssec": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.922.0.tgz",
+ "integrity": "sha512-eHvSJZTSRJO+/tjjGD6ocnPc8q9o3m26+qbwQTu/4V6yOJQ1q+xkDZNqwJQphL+CodYaQ7uljp8g1Ji/AN3D9w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.922.0.tgz",
+ "integrity": "sha512-N4Qx/9KP3oVQBJOrSghhz8iZFtUC2NNeSZt88hpPhbqAEAtuX8aD8OzVcpnAtrwWqy82Yd2YTxlkqMGkgqnBsQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-endpoints": "3.922.0",
+ "@smithy/core": "^3.17.2",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.922.0.tgz",
+ "integrity": "sha512-uYvKCF1TGh/MuJ4TMqmUM0Csuao02HawcseG4LUDyxdUsd/EFuxalWq1Cx4fKZQ2K8F504efZBjctMAMNY+l7A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/middleware-host-header": "3.922.0",
+ "@aws-sdk/middleware-logger": "3.922.0",
+ "@aws-sdk/middleware-recursion-detection": "3.922.0",
+ "@aws-sdk/middleware-user-agent": "3.922.0",
+ "@aws-sdk/region-config-resolver": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-endpoints": "3.922.0",
+ "@aws-sdk/util-user-agent-browser": "3.922.0",
+ "@aws-sdk/util-user-agent-node": "3.922.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.922.0.tgz",
+ "integrity": "sha512-44Y/rNNwhngR2KHp6gkx//TOr56/hx6s4l+XLjOqH7EBCHL7XhnrT1y92L+DLiroVr1tCSmO8eHQwBv0Y2+mvw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/s3-request-presigner": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.922.0.tgz",
+ "integrity": "sha512-x/WZXOMAN10X/hbjHnaXjtU34RmV3/eJMiHoJsohquSgz8+pfRN1DeK65oa/XPoKCMPfV31RfHSzCduligHfsQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/signature-v4-multi-region": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@aws-sdk/util-format-url": "3.922.0",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.922.0.tgz",
+ "integrity": "sha512-mmsgEEL5pE+A7gFYiJMDBCLVciaXq4EFI5iAP7bPpnHvOplnNOYxVy2IreKMllGvrfjVyLnwxzZYlo5zZ65FWg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/middleware-sdk-s3": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/signature-v4": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/token-providers": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.922.0.tgz",
+ "integrity": "sha512-/inmPnjZE0ZBE16zaCowAvouSx05FJ7p6BQYuzlJ8vxEU0sS0Hf8fvhuiRnN9V9eDUPIBY+/5EjbMWygXL4wlQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.922.0",
+ "@aws-sdk/nested-clients": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/types": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.922.0.tgz",
+ "integrity": "sha512-eLA6XjVobAUAMivvM7DBL79mnHyrm+32TkXNWZua5mnxF+6kQCfblKKJvxMZLGosO53/Ex46ogim8IY5Nbqv2w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-arn-parser": {
+ "version": "3.893.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz",
+ "integrity": "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.922.0.tgz",
+ "integrity": "sha512-4ZdQCSuNMY8HMlR1YN4MRDdXuKd+uQTeKIr5/pIM+g3TjInZoj8imvXudjcrFGA63UF3t92YVTkBq88mg58RXQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-endpoints": "^3.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-format-url": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.922.0.tgz",
+ "integrity": "sha512-UYLWPvZEd6TYilNkrQrIeXh2bXZsY3ighYErSEjD24f3JQhg0XdXoR/QHIE8licHu2qFrTRM6yi9LH1GY6X0cg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-locate-window": {
+ "version": "3.893.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz",
+ "integrity": "sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.922.0.tgz",
+ "integrity": "sha512-qOJAERZ3Plj1st7M4Q5henl5FRpE30uLm6L9edZqZXGR6c7ry9jzexWamWVpQ4H4xVAVmiO9dIEBAfbq4mduOA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/types": "^4.8.1",
+ "bowser": "^2.11.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.922.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.922.0.tgz",
+ "integrity": "sha512-NrPe/Rsr5kcGunkog0eBV+bY0inkRELsD2SacC4lQZvZiXf8VJ2Y7j+Yq1tB+h+FPLsdt3v9wItIvDf/laAm0Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/middleware-user-agent": "3.922.0",
+ "@aws-sdk/types": "3.922.0",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aws-sdk/xml-builder": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.921.0.tgz",
+ "integrity": "sha512-LVHg0jgjyicKKvpNIEMXIMr1EBViESxcPkqfOlT+X1FkmUMTNZEEVF18tOJg4m4hV5vxtkWcqtr4IEeWa1C41Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "fast-xml-parser": "5.2.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz",
+ "integrity": "sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz",
+ "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz",
+ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-compilation-targets": "^7.27.2",
+ "@babel/helper-module-transforms": "^7.28.3",
+ "@babel/helpers": "^7.28.4",
+ "@babel/parser": "^7.28.4",
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.4",
+ "@babel/types": "^7.28.4",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz",
+ "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.28.3",
+ "@babel/types": "^7.28.2",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
+ "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.27.2",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
+ "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/traverse": "^7.28.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
+ "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz",
+ "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz",
+ "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.4"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz",
+ "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz",
+ "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz",
+ "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
+ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.2",
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz",
+ "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.4",
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.4",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz",
+ "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@borewit/text-codec": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.1.1.tgz",
+ "integrity": "sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/@cacheable/memory": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.6.tgz",
+ "integrity": "sha512-7e8SScMocHxcAb8YhtkbMhGG+EKLRIficb1F5sjvhSYsWTZGxvg4KIDp8kgxnV2PUJ3ddPe6J9QESjKvBWRDkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/utils": "^2.3.2",
+ "@keyv/bigmap": "^1.3.0",
+ "hookified": "^1.13.0",
+ "keyv": "^5.5.4"
+ }
+ },
+ "node_modules/@cacheable/utils": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.2.tgz",
+ "integrity": "sha512-8kGE2P+HjfY8FglaOiW+y8qxcaQAfAhVML+i66XJR3YX5FtyDqn6Txctr3K2FrbxLKixRRYYBWMbuGciOhYNDg==",
+ "license": "MIT",
+ "dependencies": {
+ "hashery": "^1.2.0",
+ "keyv": "^5.5.4"
+ }
+ },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.6.0.tgz",
+ "integrity": "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz",
+ "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
+ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/config-array": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
+ "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/object-schema": "^2.1.7",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz",
+ "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/core": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
+ "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+ "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^10.0.1",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "9.38.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz",
+ "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ }
+ },
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+ "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
+ "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@fastify/accept-negotiator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-2.0.1.tgz",
+ "integrity": "sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@fastify/ajv-compiler": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-4.0.5.tgz",
+ "integrity": "sha512-KoWKW+MhvfTRWL4qrhUwAAZoaChluo0m0vbiJlGMt2GXvL4LVPQEjt8kSpHI3IBq5Rez8fg+XeH3cneztq+C7A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.12.0",
+ "ajv-formats": "^3.0.1",
+ "fast-uri": "^3.0.0"
+ }
+ },
+ "node_modules/@fastify/ajv-compiler/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/@fastify/busboy": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.2.1.tgz",
+ "integrity": "sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "text-decoding": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@fastify/cookie": {
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/@fastify/cookie/-/cookie-11.0.2.tgz",
+ "integrity": "sha512-GWdwdGlgJxyvNv+QcKiGNevSspMQXncjMZ1J8IvuDQk0jvkzgWWZFNC2En3s+nHndZBGV8IbLwOI/sxCZw/mzA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "cookie": "^1.0.0",
+ "fastify-plugin": "^5.0.0"
+ }
+ },
+ "node_modules/@fastify/cookie/node_modules/cookie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/@fastify/cors": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-11.1.0.tgz",
+ "integrity": "sha512-sUw8ed8wP2SouWZTIbA7V2OQtMNpLj2W6qJOYhNdcmINTu6gsxVYXjQiM9mdi8UUDlcoDDJ/W2syPo1WB2QjYA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "fastify-plugin": "^5.0.0",
+ "toad-cache": "^3.7.0"
+ }
+ },
+ "node_modules/@fastify/deepmerge": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-3.1.0.tgz",
+ "integrity": "sha512-lCVONBQINyNhM6LLezB6+2afusgEYR4G8xenMsfe+AT+iZ7Ca6upM5Ha8UkZuYSnuMw3GWl/BiPXnLMi/gSxuQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@fastify/error": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@fastify/error/-/error-4.2.0.tgz",
+ "integrity": "sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@fastify/fast-json-stringify-compiler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-5.0.3.tgz",
+ "integrity": "sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "fast-json-stringify": "^6.0.0"
+ }
+ },
+ "node_modules/@fastify/formbody": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@fastify/formbody/-/formbody-8.0.2.tgz",
+ "integrity": "sha512-84v5J2KrkXzjgBpYnaNRPqwgMsmY7ZDjuj0YVuMR3NXCJRCgKEZy/taSP1wUYGn0onfxJpLyRGDLa+NMaDJtnA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "fast-querystring": "^1.1.2",
+ "fastify-plugin": "^5.0.0"
+ }
+ },
+ "node_modules/@fastify/forwarded": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@fastify/forwarded/-/forwarded-3.0.1.tgz",
+ "integrity": "sha512-JqDochHFqXs3C3Ml3gOY58zM7OqO9ENqPo0UqAjAjH8L01fRZqwX9iLeX34//kiJubF7r2ZQHtBRU36vONbLlw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@fastify/merge-json-schemas": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.2.1.tgz",
+ "integrity": "sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/@fastify/middie": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/@fastify/middie/-/middie-9.0.3.tgz",
+ "integrity": "sha512-7OYovKXp9UKYeVMcjcFLMcSpoMkmcZmfnG+eAvtdiatN35W7c+r9y1dRfpA+pfFVNuHGGqI3W+vDTmjvcfLcMA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/error": "^4.0.0",
+ "fastify-plugin": "^5.0.0",
+ "path-to-regexp": "^8.1.0",
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/@fastify/multipart": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-9.3.0.tgz",
+ "integrity": "sha512-NpeKipTOjjL1dA7SSlRMrOWWtrE8/0yKOmeudkdQoEaz4sVDJw5MVdZIahsWhvpc3YTN7f04f9ep/Y65RKoOWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/busboy": "^3.0.0",
+ "@fastify/deepmerge": "^3.0.0",
+ "@fastify/error": "^4.0.0",
+ "fastify-plugin": "^5.0.0",
+ "secure-json-parse": "^4.0.0"
+ }
+ },
+ "node_modules/@fastify/multipart/node_modules/@fastify/busboy": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz",
+ "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==",
+ "license": "MIT"
+ },
+ "node_modules/@fastify/proxy-addr": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@fastify/proxy-addr/-/proxy-addr-5.1.0.tgz",
+ "integrity": "sha512-INS+6gh91cLUjB+PVHfu1UqcB76Sqtpyp7bnL+FYojhjygvOPA9ctiD/JDKsyD9Xgu4hUhCSJBPig/w7duNajw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/forwarded": "^3.0.0",
+ "ipaddr.js": "^2.1.0"
+ }
+ },
+ "node_modules/@fastify/proxy-addr/node_modules/ipaddr.js": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@fastify/send": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@fastify/send/-/send-4.1.0.tgz",
+ "integrity": "sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/ms": "^2.0.2",
+ "escape-html": "~1.0.3",
+ "fast-decode-uri-component": "^1.0.1",
+ "http-errors": "^2.0.0",
+ "mime": "^3"
+ }
+ },
+ "node_modules/@fastify/send/node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@fastify/static": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@fastify/static/-/static-8.3.0.tgz",
+ "integrity": "sha512-yKxviR5PH1OKNnisIzZKmgZSus0r2OZb8qCSbqmw34aolT4g3UlzYfeBRym+HJ1J471CR8e2ldNub4PubD1coA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@fastify/accept-negotiator": "^2.0.0",
+ "@fastify/send": "^4.0.0",
+ "content-disposition": "^0.5.4",
+ "fastify-plugin": "^5.0.0",
+ "fastq": "^1.17.1",
+ "glob": "^11.0.0"
+ }
+ },
+ "node_modules/@fastify/static/node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@firebase/app-check-interop-types": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz",
+ "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@firebase/app-types": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz",
+ "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@firebase/auth-interop-types": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz",
+ "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@firebase/component": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.0.tgz",
+ "integrity": "sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@firebase/util": "1.13.0",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@firebase/database": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.0.tgz",
+ "integrity": "sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@firebase/app-check-interop-types": "0.3.3",
+ "@firebase/auth-interop-types": "0.2.4",
+ "@firebase/component": "0.7.0",
+ "@firebase/logger": "0.5.0",
+ "@firebase/util": "1.13.0",
+ "faye-websocket": "0.11.4",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@firebase/database-compat": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.0.tgz",
+ "integrity": "sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@firebase/component": "0.7.0",
+ "@firebase/database": "1.1.0",
+ "@firebase/database-types": "1.0.16",
+ "@firebase/logger": "0.5.0",
+ "@firebase/util": "1.13.0",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@firebase/database-types": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz",
+ "integrity": "sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@firebase/app-types": "0.9.3",
+ "@firebase/util": "1.13.0"
+ }
+ },
+ "node_modules/@firebase/logger": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.0.tgz",
+ "integrity": "sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@firebase/util": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz",
+ "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@google-cloud/firestore": {
+ "version": "7.11.6",
+ "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.6.tgz",
+ "integrity": "sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "@opentelemetry/api": "^1.3.0",
+ "fast-deep-equal": "^3.1.1",
+ "functional-red-black-tree": "^1.0.1",
+ "google-gax": "^4.3.3",
+ "protobufjs": "^7.2.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@google-cloud/paginator": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz",
+ "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "arrify": "^2.0.0",
+ "extend": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@google-cloud/projectify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz",
+ "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@google-cloud/promisify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz",
+ "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@google-cloud/storage": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.18.0.tgz",
+ "integrity": "sha512-r3ZwDMiz4nwW6R922Z1pwpePxyRwE5GdevYX63hRmAQUkUQJcBH/79EnQPDv5cOv1mFBgevdNWQfi3tie3dHrQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "@google-cloud/paginator": "^5.0.0",
+ "@google-cloud/projectify": "^4.0.0",
+ "@google-cloud/promisify": "<4.1.0",
+ "abort-controller": "^3.0.0",
+ "async-retry": "^1.3.3",
+ "duplexify": "^4.1.3",
+ "fast-xml-parser": "^4.4.1",
+ "gaxios": "^6.0.2",
+ "google-auth-library": "^9.6.3",
+ "html-entities": "^2.5.2",
+ "mime": "^3.0.0",
+ "p-limit": "^3.0.1",
+ "retry-request": "^7.0.0",
+ "teeny-request": "^9.0.0",
+ "uuid": "^8.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@google-cloud/storage/node_modules/fast-xml-parser": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz",
+ "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "strnum": "^1.1.1"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/@google-cloud/storage/node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@google-cloud/storage/node_modules/strnum": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz",
+ "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@google-cloud/storage/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@graphql-tools/merge": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.1.1.tgz",
+ "integrity": "sha512-BJ5/7Y7GOhTuvzzO5tSBFL4NGr7PVqTJY3KeIDlVTT8YLcTXtBR+hlrC3uyEym7Ragn+zyWdHeJ9ev+nRX1X2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/utils": "^10.9.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-tools/schema": {
+ "version": "10.0.25",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.25.tgz",
+ "integrity": "sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/merge": "^9.1.1",
+ "@graphql-tools/utils": "^10.9.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-tools/utils": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.9.1.tgz",
+ "integrity": "sha512-B1wwkXk9UvU7LCBkPs8513WxOQ2H8Fo5p8HR1+Id9WmYE5+bd51vqN+MbrqvWczHCH2gwkREgHJN88tE0n1FCw==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@whatwg-node/promise-helpers": "^1.0.0",
+ "cross-inspect": "1.0.1",
+ "dset": "^3.1.4",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.2.tgz",
+ "integrity": "sha512-QzVUtEFyu05UNx2xr0fCQmStUO17uVQhGNowtxs00IgTZT6/W2PBLfUkj30s0FKJ29VtTa3ArVNIhNP6akQhqA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "@grpc/proto-loader": "^0.8.0",
+ "@js-sdsl/ordered-map": "^4.4.2"
+ },
+ "engines": {
+ "node": ">=12.10.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz",
+ "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "lodash.camelcase": "^4.3.0",
+ "long": "^5.0.0",
+ "protobufjs": "^7.5.3",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/long": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/@grpc/proto-loader": {
+ "version": "0.7.15",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz",
+ "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "lodash.camelcase": "^4.3.0",
+ "long": "^5.0.0",
+ "protobufjs": "^7.2.5",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@grpc/proto-loader/node_modules/long": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/node": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
+ "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@inquirer/ansi": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.1.tgz",
+ "integrity": "sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@inquirer/checkbox": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.0.tgz",
+ "integrity": "sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/ansi": "^1.0.1",
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/figures": "^1.0.14",
+ "@inquirer/type": "^3.0.9",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/confirm": {
+ "version": "5.1.19",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.19.tgz",
+ "integrity": "sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/core": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.0.tgz",
+ "integrity": "sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/ansi": "^1.0.1",
+ "@inquirer/figures": "^1.0.14",
+ "@inquirer/type": "^3.0.9",
+ "cli-width": "^4.1.0",
+ "mute-stream": "^2.0.0",
+ "signal-exit": "^4.1.0",
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/editor": {
+ "version": "4.2.21",
+ "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.21.tgz",
+ "integrity": "sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/external-editor": "^1.0.2",
+ "@inquirer/type": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/expand": {
+ "version": "4.0.21",
+ "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.21.tgz",
+ "integrity": "sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/external-editor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz",
+ "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chardet": "^2.1.0",
+ "iconv-lite": "^0.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/figures": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.14.tgz",
+ "integrity": "sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@inquirer/input": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.5.tgz",
+ "integrity": "sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/number": {
+ "version": "3.0.21",
+ "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.21.tgz",
+ "integrity": "sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/password": {
+ "version": "4.0.21",
+ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.21.tgz",
+ "integrity": "sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/ansi": "^1.0.1",
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/prompts": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.0.tgz",
+ "integrity": "sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/checkbox": "^4.2.0",
+ "@inquirer/confirm": "^5.1.14",
+ "@inquirer/editor": "^4.2.15",
+ "@inquirer/expand": "^4.0.17",
+ "@inquirer/input": "^4.2.1",
+ "@inquirer/number": "^3.0.17",
+ "@inquirer/password": "^4.0.17",
+ "@inquirer/rawlist": "^4.1.5",
+ "@inquirer/search": "^3.1.0",
+ "@inquirer/select": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/rawlist": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.9.tgz",
+ "integrity": "sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/type": "^3.0.9",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/search": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.0.tgz",
+ "integrity": "sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/figures": "^1.0.14",
+ "@inquirer/type": "^3.0.9",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/select": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.0.tgz",
+ "integrity": "sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/ansi": "^1.0.1",
+ "@inquirer/core": "^10.3.0",
+ "@inquirer/figures": "^1.0.14",
+ "@inquirer/type": "^3.0.9",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/type": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.9.tgz",
+ "integrity": "sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@ioredis/commands": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.4.0.tgz",
+ "integrity": "sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/balanced-match": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+ "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@isaacs/brace-expansion": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+ "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+ "license": "MIT",
+ "dependencies": {
+ "@isaacs/balanced-match": "^4.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jercle/yargonaut": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@jercle/yargonaut/-/yargonaut-1.1.5.tgz",
+ "integrity": "sha512-zBp2myVvBHp1UaJsNTyS6q4UDKT7eRiqTS4oNTS6VQMd6mpxYOdbeK4pY279cDCdakGy6hG0J3ejoXZVsPwHqw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "figlet": "^1.5.2",
+ "parent-require": "^1.0.0"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz",
+ "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz",
+ "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "30.2.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/reporters": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "exit-x": "^0.2.2",
+ "graceful-fs": "^4.2.11",
+ "jest-changed-files": "30.2.0",
+ "jest-config": "30.2.0",
+ "jest-haste-map": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-resolve-dependencies": "30.2.0",
+ "jest-runner": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "jest-watcher": "30.2.0",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/diff-sequences": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
+ "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz",
+ "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expect": "30.2.0",
+ "jest-snapshot": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz",
+ "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/get-type": "30.1.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/get-type": {
+ "version": "30.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+ "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz",
+ "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/expect": "30.2.0",
+ "@jest/types": "30.2.0",
+ "jest-mock": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/pattern": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+ "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz",
+ "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "collect-v8-coverage": "^1.0.2",
+ "exit-x": "^0.2.2",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^5.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-worker": "30.2.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.2",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@jest/reporters/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/snapshot-utils": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz",
+ "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "natural-compare": "^1.4.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz",
+ "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "callsites": "^3.1.0",
+ "graceful-fs": "^4.2.11"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz",
+ "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "collect-v8-coverage": "^1.0.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz",
+ "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "30.2.0",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz",
+ "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.27.4",
+ "@jest/types": "30.2.0",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "babel-plugin-istanbul": "^7.0.1",
+ "chalk": "^4.1.2",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-util": "30.2.0",
+ "micromatch": "^4.0.8",
+ "pirates": "^4.0.7",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^5.0.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@js-sdsl/ordered-map": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
+ "license": "MIT",
+ "optional": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "node_modules/@keyv/bigmap": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz",
+ "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==",
+ "license": "MIT",
+ "dependencies": {
+ "hashery": "^1.2.0",
+ "hookified": "^1.13.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "keyv": "^5.5.4"
+ }
+ },
+ "node_modules/@keyv/redis": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-5.1.3.tgz",
+ "integrity": "sha512-ClCCeAFMFzPH487ridqozfqb80Jdo8Uy0u2rMU18w8gFVkBhPIOz1ruEzr1hHpV8boK2PC3c9urQxXpTYHIlNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@redis/client": "^5.8.3",
+ "cluster-key-slot": "^1.1.2",
+ "hookified": "^1.12.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "keyv": "^5.5.3"
+ }
+ },
+ "node_modules/@keyv/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+ "license": "MIT"
+ },
+ "node_modules/@lukeed/csprng": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz",
+ "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@lukeed/ms": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.2.tgz",
+ "integrity": "sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@microsoft/tsdoc": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz",
+ "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==",
+ "license": "MIT"
+ },
+ "node_modules/@mikro-orm/cli": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.5.8.tgz",
+ "integrity": "sha512-QM3Pvnu833XbnB8eUlnH2sTq5FEkeMbGqXwOWREY6A8Od/PPRtVmBsKsGS3pX88gz7e03pZnwRW7NNy38V9zdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jercle/yargonaut": "1.1.5",
+ "@mikro-orm/core": "6.5.8",
+ "@mikro-orm/knex": "6.5.8",
+ "fs-extra": "11.3.2",
+ "tsconfig-paths": "4.2.0",
+ "yargs": "17.7.2"
+ },
+ "bin": {
+ "mikro-orm": "cli",
+ "mikro-orm-esm": "esm"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ }
+ },
+ "node_modules/@mikro-orm/cli/node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@mikro-orm/core": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.5.8.tgz",
+ "integrity": "sha512-0jym5Pd7AwjpzsgPvs5c1WhrqqsfD2K32UcDmsN0CVU0uXCgKKEfXWnAHsesvUBghg0pKzFhTonI2G6I1GYYUA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "dataloader": "2.2.3",
+ "dotenv": "17.2.3",
+ "esprima": "4.0.1",
+ "fs-extra": "11.3.2",
+ "globby": "11.1.0",
+ "mikro-orm": "6.5.8",
+ "reflect-metadata": "0.2.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/b4nan"
+ }
+ },
+ "node_modules/@mikro-orm/core/node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@mikro-orm/knex": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.5.8.tgz",
+ "integrity": "sha512-/+/jc5zlOgdRlq/SC5RHGdIgrJw7TsGSICumYq6+dauYq2ChMHw3rrN1mW7bKkS/A2oB8eabyNyUj2WKOC3PKA==",
+ "license": "MIT",
+ "dependencies": {
+ "fs-extra": "11.3.2",
+ "knex": "3.1.0",
+ "sqlstring": "2.3.3"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "@mikro-orm/core": "^6.0.0",
+ "better-sqlite3": "*",
+ "libsql": "*",
+ "mariadb": "*"
+ },
+ "peerDependenciesMeta": {
+ "better-sqlite3": {
+ "optional": true
+ },
+ "libsql": {
+ "optional": true
+ },
+ "mariadb": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mikro-orm/knex/node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@mikro-orm/migrations": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/migrations/-/migrations-6.5.8.tgz",
+ "integrity": "sha512-KQu+dovQ0KMooGzoBb8FP8n32AvrdN5NB4pGFmT6AxNchSnRxeLDRSN2aHDHHMwu+Duy0HgXnMgQ540VZ0ioqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@mikro-orm/knex": "6.5.8",
+ "fs-extra": "11.3.2",
+ "umzug": "3.8.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "@mikro-orm/core": "^6.0.0"
+ }
+ },
+ "node_modules/@mikro-orm/migrations/node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@mikro-orm/nestjs": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/nestjs/-/nestjs-6.1.1.tgz",
+ "integrity": "sha512-aluD3eTeuCvIePDk5UBanHIhu1zAJQXqWAg47MZdHJmFkNuXn62DCXbD2c4X5TCpKW/m0zjba22ilyZ/AFG9qg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "@mikro-orm/core": "^6.0.0 || ^6.0.0-dev.0 || ^7.0.0-dev.0",
+ "@nestjs/common": "^10.0.0 || ^11.0.5",
+ "@nestjs/core": "^10.0.0 || ^11.0.5"
+ }
+ },
+ "node_modules/@mikro-orm/postgresql": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-6.5.8.tgz",
+ "integrity": "sha512-NeQqI8J/QyzqgLPvdOd26TSkefYjLUfFeLUEQ2DeT/yKJd/SF0re1OfYZrqsKve8VIz8MHu6HiVBvz3iZvhfDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@mikro-orm/knex": "6.5.8",
+ "pg": "8.16.3",
+ "postgres-array": "3.0.4",
+ "postgres-date": "2.1.0",
+ "postgres-interval": "4.0.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "@mikro-orm/core": "^6.0.0"
+ }
+ },
+ "node_modules/@mikro-orm/seeder": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@mikro-orm/seeder/-/seeder-6.5.8.tgz",
+ "integrity": "sha512-EVfXNJ+Q7I1jKLlYwWDdQ/67DxhuBSfS2U/XKKo/+uEaxGBl5vDe8kV3RNRwx8I9x6DHsQpt1NzJL+JS3fSt3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fs-extra": "11.3.2",
+ "globby": "11.1.0"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "@mikro-orm/core": "^6.0.0"
+ }
+ },
+ "node_modules/@mikro-orm/seeder/node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
+ "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz",
+ "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz",
+ "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz",
+ "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz",
+ "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz",
+ "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
+ }
+ },
+ "node_modules/@nest-lab/fastify-multer": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@nest-lab/fastify-multer/-/fastify-multer-1.3.0.tgz",
+ "integrity": "sha512-/4LocG7pBhwwbqN33YiPbv+93NdxlL/z/B2EL+hpulIr+qn2eLs/CxMg8jHCmtGCodA7NFHFERqIh75Fc2fryQ==",
+ "license": "MIT",
+ "dependencies": {
+ "fastify-multer": "2.0.3"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^9.0.0 || ^10.0.0 || ^11.0.0",
+ "@nestjs/platform-fastify": "^9.0.0 || ^10.0.0 || ^11.0.0",
+ "rxjs": "^7.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@nestjs/common": {
+ "optional": false
+ },
+ "@nestjs/platform-fastify": {
+ "optional": false
+ },
+ "rxjs": {
+ "optional": false
+ }
+ }
+ },
+ "node_modules/@nestjs/axios": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-4.0.1.tgz",
+ "integrity": "sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "axios": "^1.3.1",
+ "rxjs": "^7.0.0"
+ }
+ },
+ "node_modules/@nestjs/bull-shared": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-11.0.4.tgz",
+ "integrity": "sha512-VBJcDHSAzxQnpcDfA0kt9MTGUD1XZzfByV70su0W0eDCQ9aqIEBlzWRW21tv9FG9dIut22ysgDidshdjlnczLw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.8.1"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^10.0.0 || ^11.0.0"
+ }
+ },
+ "node_modules/@nestjs/bullmq": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/bullmq/-/bullmq-11.0.4.tgz",
+ "integrity": "sha512-wBzK9raAVG0/6NTMdvLGM4/FQ1lsB35/pYS8L6a0SDgkTiLpd7mAjQ8R692oMx5s7IjvgntaZOuTUrKYLNfIkA==",
+ "license": "MIT",
+ "dependencies": {
+ "@nestjs/bull-shared": "^11.0.4",
+ "tslib": "2.8.1"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^10.0.0 || ^11.0.0",
+ "bullmq": "^3.0.0 || ^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/@nestjs/cache-manager": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/cache-manager/-/cache-manager-3.0.1.tgz",
+ "integrity": "sha512-4UxTnR0fsmKL5YDalU2eLFVnL+OBebWUpX+hEduKGncrVKH4PPNoiRn1kXyOCjmzb0UvWgqubpssNouc8e0MCw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@nestjs/common": "^9.0.0 || ^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^9.0.0 || ^10.0.0 || ^11.0.0",
+ "cache-manager": ">=6",
+ "keyv": ">=5",
+ "rxjs": "^7.8.1"
+ }
+ },
+ "node_modules/@nestjs/cli": {
+ "version": "11.0.10",
+ "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-11.0.10.tgz",
+ "integrity": "sha512-4waDT0yGWANg0pKz4E47+nUrqIJv/UqrZ5wLPkCqc7oMGRMWKAaw1NDZ9rKsaqhqvxb2LfI5+uXOWr4yi94DOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "19.2.15",
+ "@angular-devkit/schematics": "19.2.15",
+ "@angular-devkit/schematics-cli": "19.2.15",
+ "@inquirer/prompts": "7.8.0",
+ "@nestjs/schematics": "^11.0.1",
+ "ansis": "4.1.0",
+ "chokidar": "4.0.3",
+ "cli-table3": "0.6.5",
+ "commander": "4.1.1",
+ "fork-ts-checker-webpack-plugin": "9.1.0",
+ "glob": "11.0.3",
+ "node-emoji": "1.11.0",
+ "ora": "5.4.1",
+ "tree-kill": "1.2.2",
+ "tsconfig-paths": "4.2.0",
+ "tsconfig-paths-webpack-plugin": "4.2.0",
+ "typescript": "5.8.3",
+ "webpack": "5.100.2",
+ "webpack-node-externals": "3.0.0"
+ },
+ "bin": {
+ "nest": "bin/nest.js"
+ },
+ "engines": {
+ "node": ">= 20.11"
+ },
+ "peerDependencies": {
+ "@swc/cli": "^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0",
+ "@swc/core": "^1.3.62"
+ },
+ "peerDependenciesMeta": {
+ "@swc/cli": {
+ "optional": true
+ },
+ "@swc/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@nestjs/cli/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/schema-utils": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/typescript": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/@nestjs/cli/node_modules/webpack": {
+ "version": "5.100.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.2.tgz",
+ "integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.8",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.15.0",
+ "acorn-import-phases": "^1.0.3",
+ "browserslist": "^4.24.0",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.2",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.2",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.3.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/common": {
+ "version": "11.1.7",
+ "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.7.tgz",
+ "integrity": "sha512-lwlObwGgIlpXSXYOTpfzdCepUyWomz6bv9qzGzzvpgspUxkj0Uz0fUJcvD44V8Ps7QhKW3lZBoYbXrH25UZrbA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "file-type": "21.0.0",
+ "iterare": "1.2.1",
+ "load-esm": "1.0.3",
+ "tslib": "2.8.1",
+ "uid": "2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "class-transformer": ">=0.4.1",
+ "class-validator": ">=0.13.2",
+ "reflect-metadata": "^0.1.12 || ^0.2.0",
+ "rxjs": "^7.1.0"
+ },
+ "peerDependenciesMeta": {
+ "class-transformer": {
+ "optional": true
+ },
+ "class-validator": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-4.0.2.tgz",
+ "integrity": "sha512-McMW6EXtpc8+CwTUwFdg6h7dYcBUpH5iUILCclAsa+MbCEvC9ZKu4dCHRlJqALuhjLw97pbQu62l4+wRwGeZqA==",
+ "license": "MIT",
+ "dependencies": {
+ "dotenv": "16.4.7",
+ "dotenv-expand": "12.0.1",
+ "lodash": "4.17.21"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "rxjs": "^7.1.0"
+ }
+ },
+ "node_modules/@nestjs/config/node_modules/dotenv": {
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/@nestjs/core": {
+ "version": "11.1.7",
+ "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.7.tgz",
+ "integrity": "sha512-TyXFOwjhHv/goSgJ8i20K78jwTM0iSpk9GBcC2h3mf4MxNy+znI8m7nWjfoACjTkb89cTwDQetfTHtSfGLLaiA==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@nuxt/opencollective": "0.4.1",
+ "fast-safe-stringify": "2.1.1",
+ "iterare": "1.2.1",
+ "path-to-regexp": "8.3.0",
+ "tslib": "2.8.1",
+ "uid": "2.0.2"
+ },
+ "engines": {
+ "node": ">= 20"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/microservices": "^11.0.0",
+ "@nestjs/platform-express": "^11.0.0",
+ "@nestjs/websockets": "^11.0.0",
+ "reflect-metadata": "^0.1.12 || ^0.2.0",
+ "rxjs": "^7.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@nestjs/microservices": {
+ "optional": true
+ },
+ "@nestjs/platform-express": {
+ "optional": true
+ },
+ "@nestjs/websockets": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/event-emitter": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/event-emitter/-/event-emitter-3.0.1.tgz",
+ "integrity": "sha512-0Ln/x+7xkU6AJFOcQI9tIhUMXVF7D5itiaQGOyJbXtlAfAIt8gzDdJm+Im7cFzKoWkiW5nCXCPh6GSvdQd/3Dw==",
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter2": "6.4.9"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^10.0.0 || ^11.0.0"
+ }
+ },
+ "node_modules/@nestjs/jwt": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-11.0.1.tgz",
+ "integrity": "sha512-HXSsc7SAnCnjA98TsZqrE7trGtHDnYXWp4Ffy6LwSmck1QvbGYdMzBquXofX5l6tIRpeY4Qidl2Ti2CVG77Pdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/jsonwebtoken": "9.0.10",
+ "jsonwebtoken": "9.0.2"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0"
+ }
+ },
+ "node_modules/@nestjs/mapped-types": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.1.0.tgz",
+ "integrity": "sha512-W+n+rM69XsFdwORF11UqJahn4J3xi4g/ZEOlJNL6KoW5ygWSmBB2p0S2BZ4FQeS/NDH72e6xIcu35SfJnE8bXw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "class-transformer": "^0.4.0 || ^0.5.0",
+ "class-validator": "^0.13.0 || ^0.14.0",
+ "reflect-metadata": "^0.1.12 || ^0.2.0"
+ },
+ "peerDependenciesMeta": {
+ "class-transformer": {
+ "optional": true
+ },
+ "class-validator": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/platform-express": {
+ "version": "11.1.7",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.7.tgz",
+ "integrity": "sha512-5T+GLdvTiGPKB4/P4PM9ftKUKNHJy8ThEFhZA3vQnXVL7Vf0rDr07TfVTySVu+XTh85m1lpFVuyFM6u6wLNsRA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "cors": "2.8.5",
+ "express": "5.1.0",
+ "multer": "2.0.2",
+ "path-to-regexp": "8.3.0",
+ "tslib": "2.8.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/core": "^11.0.0"
+ }
+ },
+ "node_modules/@nestjs/platform-fastify": {
+ "version": "11.1.8",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-fastify/-/platform-fastify-11.1.8.tgz",
+ "integrity": "sha512-4XiiTiTkF9UbVDAuHDyVIzgr43L2sI3vLs9A52ov2lrOJcqyKwTYL/NiCQd4dtUQm1L6M0jOrJhzpYXobX5uMw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@fastify/cors": "11.1.0",
+ "@fastify/formbody": "8.0.2",
+ "@fastify/middie": "9.0.3",
+ "fast-querystring": "1.1.2",
+ "fastify": "5.6.1",
+ "light-my-request": "6.6.0",
+ "path-to-regexp": "8.3.0",
+ "tslib": "2.8.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "@fastify/static": "^8.0.0",
+ "@fastify/view": "^10.0.0 || ^11.0.0",
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/core": "^11.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@fastify/static": {
+ "optional": true
+ },
+ "@fastify/view": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/platform-socket.io": {
+ "version": "11.1.9",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-socket.io/-/platform-socket.io-11.1.9.tgz",
+ "integrity": "sha512-OaAW+voXo5BXbFKd9Ot3SL05tEucRMhZRdw5wdWZf/RpIl9hB6G6OHr8DDxNbUGvuQWzNnZHCDHx3EQJzjcIyA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "socket.io": "4.8.1",
+ "tslib": "2.8.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/websockets": "^11.0.0",
+ "rxjs": "^7.1.0"
+ }
+ },
+ "node_modules/@nestjs/schedule": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/schedule/-/schedule-6.0.1.tgz",
+ "integrity": "sha512-v3yO6cSPAoBSSyH67HWnXHzuhPhSNZhRmLY38JvCt2sqY8sPMOODpcU1D79iUMFf7k16DaMEbL4Mgx61ZhiC8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "cron": "4.3.3"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^10.0.0 || ^11.0.0"
+ }
+ },
+ "node_modules/@nestjs/schematics": {
+ "version": "11.0.9",
+ "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-11.0.9.tgz",
+ "integrity": "sha512-0NfPbPlEaGwIT8/TCThxLzrlz3yzDNkfRNpbL7FiplKq3w4qXpJg0JYwqgMEJnLQZm3L/L/5XjoyfJHUO3qX9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "19.2.17",
+ "@angular-devkit/schematics": "19.2.17",
+ "comment-json": "4.4.1",
+ "jsonc-parser": "3.3.1",
+ "pluralize": "8.0.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.2"
+ }
+ },
+ "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": {
+ "version": "19.2.17",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.17.tgz",
+ "integrity": "sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "8.17.1",
+ "ajv-formats": "3.0.1",
+ "jsonc-parser": "3.3.1",
+ "picomatch": "4.0.2",
+ "rxjs": "7.8.1",
+ "source-map": "0.7.4"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": {
+ "version": "19.2.17",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.17.tgz",
+ "integrity": "sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "19.2.17",
+ "jsonc-parser": "3.3.1",
+ "magic-string": "0.30.17",
+ "ora": "5.4.1",
+ "rxjs": "7.8.1"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+ },
+ "node_modules/@nestjs/schematics/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@nestjs/schematics/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@nestjs/schematics/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@nestjs/swagger": {
+ "version": "11.2.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.2.1.tgz",
+ "integrity": "sha512-1MS7xf0pzc1mofG53xrrtrurnziafPUHkqzRm4YUVPA/egeiMaSerQBD/feiAeQ2BnX0WiLsTX4HQFO0icvOjQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/tsdoc": "0.15.1",
+ "@nestjs/mapped-types": "2.1.0",
+ "js-yaml": "4.1.0",
+ "lodash": "4.17.21",
+ "path-to-regexp": "8.3.0",
+ "swagger-ui-dist": "5.29.4"
+ },
+ "peerDependencies": {
+ "@fastify/static": "^8.0.0",
+ "@nestjs/common": "^11.0.1",
+ "@nestjs/core": "^11.0.1",
+ "class-transformer": "*",
+ "class-validator": "*",
+ "reflect-metadata": "^0.1.12 || ^0.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@fastify/static": {
+ "optional": true
+ },
+ "class-transformer": {
+ "optional": true
+ },
+ "class-validator": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/testing": {
+ "version": "11.1.7",
+ "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.7.tgz",
+ "integrity": "sha512-QbtrgSlc3QVo6RHNxTTlyhaiobLLy8kvhOlgWHsoXRknybuRs7vZg4k5mo3ye6pITGeT3CrWIRpZjUsh5Wps5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.8.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nest"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/core": "^11.0.0",
+ "@nestjs/microservices": "^11.0.0",
+ "@nestjs/platform-express": "^11.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@nestjs/microservices": {
+ "optional": true
+ },
+ "@nestjs/platform-express": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nestjs/throttler": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/@nestjs/throttler/-/throttler-6.4.0.tgz",
+ "integrity": "sha512-osL67i0PUuwU5nqSuJjtUJZMkxAnYB4VldgYUMGzvYRJDCqGRFMWbsbzm/CkUtPLRL30I8T74Xgt/OQxnYokiA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
+ "@nestjs/core": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
+ "reflect-metadata": "^0.1.13 || ^0.2.0"
+ }
+ },
+ "node_modules/@nestjs/websockets": {
+ "version": "11.1.9",
+ "resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-11.1.9.tgz",
+ "integrity": "sha512-kkkdeTVcc3X7ZzvVqUVpOAJoh49kTRUjWNUXo5jmG+27OvZoHfs/vuSiqxidrrbIgydSqN15HUsf1wZwQUrxCQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "iterare": "1.2.1",
+ "object-hash": "3.0.0",
+ "tslib": "2.8.1"
+ },
+ "peerDependencies": {
+ "@nestjs/common": "^11.0.0",
+ "@nestjs/core": "^11.0.0",
+ "@nestjs/platform-socket.io": "^11.0.0",
+ "reflect-metadata": "^0.1.12 || ^0.2.0",
+ "rxjs": "^7.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@nestjs/platform-socket.io": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nuxt/opencollective": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz",
+ "integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.2.3"
+ },
+ "bin": {
+ "opencollective": "bin/opencollective.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0",
+ "npm": ">=5.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@paralleldrive/cuid2": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz",
+ "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "^1.1.5"
+ }
+ },
+ "node_modules/@pinojs/redact": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz",
+ "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==",
+ "license": "MIT"
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@pkgr/core": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",
+ "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/pkgr"
+ }
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@redis/client": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/@redis/client/-/client-5.8.3.tgz",
+ "integrity": "sha512-MZVUE+l7LmMIYlIjubPosruJ9ltSLGFmJqsXApTqPLyHLjsJUSAbAJb/A3N34fEqean4ddiDkdWzNu4ZKPvRUg==",
+ "license": "MIT",
+ "dependencies": {
+ "cluster-key-slot": "1.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@rushstack/node-core-library": {
+ "version": "5.13.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.13.0.tgz",
+ "integrity": "sha512-IGVhy+JgUacAdCGXKUrRhwHMTzqhWwZUI+qEPcdzsb80heOw0QPbhhoVsoiMF7Klp8eYsp7hzpScMXmOa3Uhfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "~8.13.0",
+ "ajv-draft-04": "~1.0.0",
+ "ajv-formats": "~3.0.1",
+ "fs-extra": "~11.3.0",
+ "import-lazy": "~4.0.0",
+ "jju": "~1.4.0",
+ "resolve": "~1.22.1",
+ "semver": "~7.5.4"
+ },
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/ajv": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
+ "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.4.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/ajv-draft-04": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
+ "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^8.5.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/fs-extra": {
+ "version": "11.3.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz",
+ "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@rushstack/terminal": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.15.2.tgz",
+ "integrity": "sha512-7Hmc0ysK5077R/IkLS9hYu0QuNafm+TbZbtYVzCMbeOdMjaRboLKrhryjwZSRJGJzu+TV1ON7qZHeqf58XfLpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rushstack/node-core-library": "5.13.0",
+ "supports-color": "~8.1.1"
+ },
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/terminal/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/@rushstack/ts-command-line": {
+ "version": "4.23.7",
+ "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.7.tgz",
+ "integrity": "sha512-Gr9cB7DGe6uz5vq2wdr89WbVDKz0UeuFEn5H2CfWDe7JvjFFaiV15gi6mqDBTbHhHCWS7w8mF1h3BnIfUndqdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rushstack/terminal": "0.15.2",
+ "@types/argparse": "1.0.38",
+ "argparse": "~1.0.9",
+ "string-argv": "~0.3.1"
+ }
+ },
+ "node_modules/@rushstack/ts-command-line/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@scarf/scarf": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz",
+ "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.34.41",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
+ "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "node_modules/@smithy/abort-controller": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.4.tgz",
+ "integrity": "sha512-Z4DUr/AkgyFf1bOThW2HwzREagee0sB5ycl+hDiSZOfRLW8ZgrOjDi6g8mHH19yyU5E2A/64W3z6SMIf5XiUSQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/chunked-blob-reader": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz",
+ "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/chunked-blob-reader-native": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz",
+ "integrity": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-base64": "^4.3.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/config-resolver": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.1.tgz",
+ "integrity": "sha512-BciDJ5hkyYEGBBKMbjGB1A/Zq8bYZ41Zo9BMnGdKF6QD1fY4zIkYx6zui/0CHaVGnv6h0iy8y4rnPX9CPCAPyQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/core": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.17.2.tgz",
+ "integrity": "sha512-n3g4Nl1Te+qGPDbNFAYf+smkRVB+JhFsGy9uJXXZQEufoP4u0r+WLh6KvTDolCswaagysDc/afS1yvb2jnj1gQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/credential-provider-imds": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.4.tgz",
+ "integrity": "sha512-YVNMjhdz2pVto5bRdux7GMs0x1m0Afz3OcQy/4Yf9DH4fWOtroGH7uLvs7ZmDyoBJzLdegtIPpXrpJOZWvUXdw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-codec": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.4.tgz",
+ "integrity": "sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-browser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.4.tgz",
+ "integrity": "sha512-d5T7ZS3J/r8P/PDjgmCcutmNxnSRvPH1U6iHeXjzI50sMr78GLmFcrczLw33Ap92oEKqa4CLrkAPeSSOqvGdUA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-serde-universal": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-config-resolver": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.4.tgz",
+ "integrity": "sha512-lxfDT0UuSc1HqltOGsTEAlZ6H29gpfDSdEPTapD5G63RbnYToZ+ezjzdonCCH90j5tRRCw3aLXVbiZaBW3VRVg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.4.tgz",
+ "integrity": "sha512-TPhiGByWnYyzcpU/K3pO5V7QgtXYpE0NaJPEZBCa1Y5jlw5SjqzMSbFiLb+ZkJhqoQc0ImGyVINqnq1ze0ZRcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-serde-universal": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-universal": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.4.tgz",
+ "integrity": "sha512-GNI/IXaY/XBB1SkGBFmbW033uWA0tj085eCxYih0eccUe/PFR7+UBQv9HNDk2fD9TJu7UVsCWsH99TkpEPSOzQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-codec": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/fetch-http-handler": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.5.tgz",
+ "integrity": "sha512-mg83SM3FLI8Sa2ooTJbsh5MFfyMTyNRwxqpKHmE0ICRIa66Aodv80DMsTQI02xBLVJ0hckwqTRr5IGAbbWuFLQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-blob-browser": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.5.tgz",
+ "integrity": "sha512-kCdgjD2J50qAqycYx0imbkA9tPtyQr1i5GwbK/EOUkpBmJGSkJe4mRJm+0F65TUSvvui1HZ5FFGFCND7l8/3WQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/chunked-blob-reader": "^5.2.0",
+ "@smithy/chunked-blob-reader-native": "^4.2.1",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.4.tgz",
+ "integrity": "sha512-kKU0gVhx/ppVMntvUOZE7WRMFW86HuaxLwvqileBEjL7PoILI8/djoILw3gPQloGVE6O0oOzqafxeNi2KbnUJw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-stream-node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.4.tgz",
+ "integrity": "sha512-amuh2IJiyRfO5MV0X/YFlZMD6banjvjAwKdeJiYGUbId608x+oSNwv3vlyW2Gt6AGAgl3EYAuyYLGRX/xU8npQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/invalid-dependency": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.4.tgz",
+ "integrity": "sha512-z6aDLGiHzsMhbS2MjetlIWopWz//K+mCoPXjW6aLr0mypF+Y7qdEh5TyJ20Onf9FbWHiWl4eC+rITdizpnXqOw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/is-array-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/md5-js": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.4.tgz",
+ "integrity": "sha512-h7kzNWZuMe5bPnZwKxhVbY1gan5+TZ2c9JcVTHCygB14buVGOZxLl+oGfpY2p2Xm48SFqEWdghpvbBdmaz3ncQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-content-length": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.4.tgz",
+ "integrity": "sha512-hJRZuFS9UsElX4DJSJfoX4M1qXRH+VFiLMUnhsWvtOOUWRNvvOfDaUSdlNbjwv1IkpVjj/Rd/O59Jl3nhAcxow==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-endpoint": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.6.tgz",
+ "integrity": "sha512-PXehXofGMFpDqr933rxD8RGOcZ0QBAWtuzTgYRAHAL2BnKawHDEdf/TnGpcmfPJGwonhginaaeJIKluEojiF/w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.17.2",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-retry": {
+ "version": "4.4.6",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.6.tgz",
+ "integrity": "sha512-OhLx131znrEDxZPAvH/OYufR9d1nB2CQADyYFN4C3V/NQS7Mg4V6uvxHC/Dr96ZQW8IlHJTJ+vAhKt6oxWRndA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/service-error-classification": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-serde": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.4.tgz",
+ "integrity": "sha512-jUr3x2CDhV15TOX2/Uoz4gfgeqLrRoTQbYAuhLS7lcVKNev7FeYSJ1ebEfjk+l9kbb7k7LfzIR/irgxys5ZTOg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-stack": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.4.tgz",
+ "integrity": "sha512-Gy3TKCOnm9JwpFooldwAboazw+EFYlC+Bb+1QBsSi5xI0W5lX81j/P5+CXvD/9ZjtYKRgxq+kkqd/KOHflzvgA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/node-config-provider": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.4.tgz",
+ "integrity": "sha512-3X3w7qzmo4XNNdPKNS4nbJcGSwiEMsNsRSunMA92S4DJLLIrH5g1AyuOA2XKM9PAPi8mIWfqC+fnfKNsI4KvHw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/node-http-handler": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.4.tgz",
+ "integrity": "sha512-VXHGfzCXLZeKnFp6QXjAdy+U8JF9etfpUXD1FAbzY1GzsFJiDQRQIt2CnMUvUdz3/YaHNqT3RphVWMUpXTIODA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/abort-controller": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/property-provider": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.4.tgz",
+ "integrity": "sha512-g2DHo08IhxV5GdY3Cpt/jr0mkTlAD39EJKN27Jb5N8Fb5qt8KG39wVKTXiTRCmHHou7lbXR8nKVU14/aRUf86w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/querystring-builder": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.4.tgz",
+ "integrity": "sha512-KQ1gFXXC+WsbPFnk7pzskzOpn4s+KheWgO3dzkIEmnb6NskAIGp/dGdbKisTPJdtov28qNDohQrgDUKzXZBLig==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/querystring-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.4.tgz",
+ "integrity": "sha512-aHb5cqXZocdzEkZ/CvhVjdw5l4r1aU/9iMEyoKzH4eXMowT6M0YjBpp7W/+XjkBnY8Xh0kVd55GKjnPKlCwinQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/service-error-classification": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.4.tgz",
+ "integrity": "sha512-fdWuhEx4+jHLGeew9/IvqVU/fxT/ot70tpRGuOLxE3HzZOyKeTQfYeV1oaBXpzi93WOk668hjMuuagJ2/Qs7ng==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/shared-ini-file-loader": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.4.tgz",
+ "integrity": "sha512-y5ozxeQ9omVjbnJo9dtTsdXj9BEvGx2X8xvRgKnV+/7wLBuYJQL6dOa/qMY6omyHi7yjt1OA97jZLoVRYi8lxA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.4.tgz",
+ "integrity": "sha512-ScDCpasxH7w1HXHYbtk3jcivjvdA1VICyAdgvVqKhKKwxi+MTwZEqFw0minE+oZ7F07oF25xh4FGJxgqgShz0A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/smithy-client": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.9.2.tgz",
+ "integrity": "sha512-gZU4uAFcdrSi3io8U99Qs/FvVdRxPvIMToi+MFfsy/DN9UqtknJ1ais+2M9yR8e0ASQpNmFYEKeIKVcMjQg3rg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.17.2",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-stream": "^4.5.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/types": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.8.1.tgz",
+ "integrity": "sha512-N0Zn0OT1zc+NA+UVfkYqQzviRh5ucWwO7mBV3TmHHprMnfcJNfhlPicDkBHi0ewbh+y3evR6cNAW0Raxvb01NA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/url-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.4.tgz",
+ "integrity": "sha512-w/N/Iw0/PTwJ36PDqU9PzAwVElo4qXxCC0eCTlUtIz/Z5V/2j/cViMHi0hPukSBHp4DVwvUlUhLgCzqSJ6plrg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/querystring-parser": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-base64": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz",
+ "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-body-length-browser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
+ "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-body-length-node": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz",
+ "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-buffer-from": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
+ "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-config-provider": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
+ "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-defaults-mode-browser": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.5.tgz",
+ "integrity": "sha512-GwaGjv/QLuL/QHQaqhf/maM7+MnRFQQs7Bsl6FlaeK6lm6U7mV5AAnVabw68cIoMl5FQFyKK62u7RWRzWL25OQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-defaults-mode-node": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.7.tgz",
+ "integrity": "sha512-6hinjVqec0WYGsqN7h9hL/ywfULmJJNXGXnNZW7jrIn/cFuC/aVlVaiDfBIJEvKcOrmN8/EgsW69eY0gXABeHw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-endpoints": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.4.tgz",
+ "integrity": "sha512-f+nBDhgYRCmUEDKEQb6q0aCcOTXRDqH5wWaFHJxt4anB4pKHlgGoYP3xtioKXH64e37ANUkzWf6p4Mnv1M5/Vg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-hex-encoding": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
+ "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-middleware": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.4.tgz",
+ "integrity": "sha512-fKGQAPAn8sgV0plRikRVo6g6aR0KyKvgzNrPuM74RZKy/wWVzx3BMk+ZWEueyN3L5v5EDg+P582mKU+sH5OAsg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-retry": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.4.tgz",
+ "integrity": "sha512-yQncJmj4dtv/isTXxRb4AamZHy4QFr4ew8GxS6XLWt7sCIxkPxPzINWd7WLISEFPsIan14zrKgvyAF+/yzfwoA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/service-error-classification": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-stream": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.5.tgz",
+ "integrity": "sha512-7M5aVFjT+HPilPOKbOmQfCIPchZe4DSBc1wf1+NvHvSoFTiFtauZzT+onZvCj70xhXd0AEmYnZYmdJIuwxOo4w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-uri-escape": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
+ "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-waiter": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.4.tgz",
+ "integrity": "sha512-roKXtXIC6fopFvVOju8VYHtguc/jAcMlK8IlDOHsrQn0ayMkHynjm/D2DCMRf7MJFXzjHhlzg2edr3QPEakchQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/abort-controller": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/uuid": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz",
+ "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
+ "license": "MIT"
+ },
+ "node_modules/@tokenizer/inflate": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz",
+ "integrity": "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "fflate": "^0.8.2",
+ "token-types": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/@tokenizer/token": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
+ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
+ "license": "MIT"
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz",
+ "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@types/argparse": {
+ "version": "1.0.38",
+ "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz",
+ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/caseless": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
+ "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cookiejar": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
+ "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/cors": {
+ "version": "2.8.19",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
+ "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/express": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz",
+ "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^5.0.0",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz",
+ "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/jest": {
+ "version": "30.0.0",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz",
+ "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expect": "^30.0.0",
+ "pretty-format": "^30.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/jsonwebtoken": {
+ "version": "9.0.10",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz",
+ "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/luxon": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.7.1.tgz",
+ "integrity": "sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/methods": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz",
+ "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.18.12",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.12.tgz",
+ "integrity": "sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/request": {
+ "version": "2.48.13",
+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz",
+ "integrity": "sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@types/caseless": "*",
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "form-data": "^2.5.5"
+ }
+ },
+ "node_modules/@types/request/node_modules/form-data": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz",
+ "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.35",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/@types/request/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@types/request/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@types/sanitize-html": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.16.0.tgz",
+ "integrity": "sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "htmlparser2": "^8.0.0"
+ }
+ },
+ "node_modules/@types/send": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.0.tgz",
+ "integrity": "sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.9.tgz",
+ "integrity": "sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "<1"
+ }
+ },
+ "node_modules/@types/serve-static/node_modules/@types/send": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz",
+ "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/socket.io": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-3.0.1.tgz",
+ "integrity": "sha512-XSma2FhVD78ymvoxYV4xGXrIH/0EKQ93rR+YR0Y+Kw1xbPzLDCip/UWSejZ08FpxYeYNci/PZPQS9anrvJRqMA==",
+ "license": "MIT",
+ "dependencies": {
+ "socket.io": "*"
+ }
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/superagent": {
+ "version": "8.1.9",
+ "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz",
+ "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/cookiejar": "^2.1.5",
+ "@types/methods": "^1.1.4",
+ "@types/node": "*",
+ "form-data": "^4.0.0"
+ }
+ },
+ "node_modules/@types/supertest": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz",
+ "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/methods": "^1.1.4",
+ "@types/superagent": "^8.1.0"
+ }
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@types/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/validator": {
+ "version": "13.15.4",
+ "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.4.tgz",
+ "integrity": "sha512-LSFfpSnJJY9wbC0LQxgvfb+ynbHftFo0tMsFOl/J4wexLnYMmDSPaj2ZyDv3TkfL1UePxPrxOWJfbiRS8mQv7A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz",
+ "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.46.2",
+ "@typescript-eslint/type-utils": "8.46.2",
+ "@typescript-eslint/utils": "8.46.2",
+ "@typescript-eslint/visitor-keys": "8.46.2",
+ "graphemer": "^1.4.0",
+ "ignore": "^7.0.0",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.46.2",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz",
+ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.46.2",
+ "@typescript-eslint/types": "8.46.2",
+ "@typescript-eslint/typescript-estree": "8.46.2",
+ "@typescript-eslint/visitor-keys": "8.46.2",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz",
+ "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.46.2",
+ "@typescript-eslint/types": "^8.46.2",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz",
+ "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.2",
+ "@typescript-eslint/visitor-keys": "8.46.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz",
+ "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz",
+ "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.2",
+ "@typescript-eslint/typescript-estree": "8.46.2",
+ "@typescript-eslint/utils": "8.46.2",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz",
+ "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz",
+ "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/project-service": "8.46.2",
+ "@typescript-eslint/tsconfig-utils": "8.46.2",
+ "@typescript-eslint/types": "8.46.2",
+ "@typescript-eslint/visitor-keys": "8.46.2",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz",
+ "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.7.0",
+ "@typescript-eslint/scope-manager": "8.46.2",
+ "@typescript-eslint/types": "8.46.2",
+ "@typescript-eslint/typescript-estree": "8.46.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz",
+ "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz",
+ "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@whatwg-node/promise-helpers": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz",
+ "integrity": "sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "node_modules/abstract-logging": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",
+ "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==",
+ "license": "MIT"
+ },
+ "node_modules/accepts": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "^3.0.0",
+ "negotiator": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-phases": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "acorn": "^8.14.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ansis": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.1.0.tgz",
+ "integrity": "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==",
+ "license": "MIT"
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/array-timsort": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz",
+ "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/async-retry": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
+ "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
+ "license": "MIT",
+ "dependencies": {
+ "retry": "0.13.1"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/atomic-sleep": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/avvio": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/avvio/-/avvio-9.1.0.tgz",
+ "integrity": "sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/error": "^4.0.0",
+ "fastq": "^1.17.1"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz",
+ "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.4",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz",
+ "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/transform": "30.2.0",
+ "@types/babel__core": "^7.20.5",
+ "babel-plugin-istanbul": "^7.0.1",
+ "babel-preset-jest": "30.2.0",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.11.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz",
+ "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "workspaces": [
+ "test/babel-8"
+ ],
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-instrument": "^6.0.2",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz",
+ "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/babel__core": "^7.20.5"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz",
+ "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "30.2.0",
+ "babel-preset-current-node-syntax": "^1.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.11.0 || ^8.0.0-beta.1"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+ "license": "MIT",
+ "engines": {
+ "node": "^4.5.0 || >= 5.9"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.8.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz",
+ "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz",
+ "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "^3.1.2",
+ "content-type": "^1.0.5",
+ "debug": "^4.4.0",
+ "http-errors": "^2.0.0",
+ "iconv-lite": "^0.6.3",
+ "on-finished": "^2.4.1",
+ "qs": "^6.14.0",
+ "raw-body": "^3.0.0",
+ "type-is": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/bowser": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz",
+ "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.26.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
+ "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "baseline-browser-mapping": "^2.8.9",
+ "caniuse-lite": "^1.0.30001746",
+ "electron-to-chromium": "^1.5.227",
+ "node-releases": "^2.0.21",
+ "update-browserslist-db": "^1.1.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-json-stable-stringify": "2.x"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/bullmq": {
+ "version": "5.65.1",
+ "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.65.1.tgz",
+ "integrity": "sha512-QgDAzX1G9L5IRy4Orva5CfQTXZT+5K+OfO/kbPrAqN+pmL9LJekCzxijXehlm/u2eXfWPfWvIdJJIqiuz3WJSg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "cron-parser": "^4.9.0",
+ "ioredis": "^5.8.2",
+ "msgpackr": "^1.11.2",
+ "node-abort-controller": "^3.1.1",
+ "semver": "^7.5.4",
+ "tslib": "^2.0.0",
+ "uuid": "^11.1.0"
+ }
+ },
+ "node_modules/bullmq/node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cache-manager": {
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-7.2.4.tgz",
+ "integrity": "sha512-skmhkqXjPCBmrb70ctEx4zwFk7vb0RdFXlVGYWnFZ8pKvkzdFrFFKSJ1IaKduGfkryHOJvb7q2PkGmonmL+UGw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@cacheable/utils": "^2.1.0",
+ "keyv": "^5.5.3"
+ }
+ },
+ "node_modules/cacheable": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.1.tgz",
+ "integrity": "sha512-yr+FSHWn1ZUou5LkULX/S+jhfgfnLbuKQjE40tyEd4fxGZVMbBL5ifno0J0OauykS8UiCSgHi+DV/YD+rjFxFg==",
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/memory": "^2.0.6",
+ "@cacheable/utils": "^2.3.2",
+ "hookified": "^1.14.0",
+ "keyv": "^5.5.5",
+ "qified": "^0.5.3"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001751",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz",
+ "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chardet": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz",
+ "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz",
+ "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/class-transformer": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
+ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/class-validator": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.2.tgz",
+ "integrity": "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/validator": "^13.11.8",
+ "libphonenumber-js": "^1.11.1",
+ "validator": "^13.9.0"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "devOptional": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/cluster-key-slot": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
+ "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/comment-json": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.4.1.tgz",
+ "integrity": "sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-timsort": "^1.0.3",
+ "core-util-is": "^1.0.3",
+ "esprima": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "engines": [
+ "node >= 6.0"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/consola": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
+ "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz",
+ "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.6.0"
+ }
+ },
+ "node_modules/cookiejar": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cron": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/cron/-/cron-4.3.3.tgz",
+ "integrity": "sha512-B/CJj5yL3sjtlun6RtYHvoSB26EmQ2NUmhq9ZiJSyKIM4K/fqfh9aelDFlIayD2YMeFZqWLi9hHV+c+pq2Djkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/luxon": "~3.7.0",
+ "luxon": "~3.7.0"
+ },
+ "engines": {
+ "node": ">=18.x"
+ }
+ },
+ "node_modules/cron-parser": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz",
+ "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "luxon": "^3.2.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/cross-inspect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.1.tgz",
+ "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/dataloader": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz",
+ "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==",
+ "license": "MIT"
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.19",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dedent": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
+ "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/denque": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dezalgo": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "17.2.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz",
+ "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.1.tgz",
+ "integrity": "sha512-LaKRbou8gt0RNID/9RoI+J2rvXsBRPMV7p+ElHlPhcSARbCPDYcYG2s1TIzAfWv4YSgyY5taidWzzs31lNV3yQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dotenv": "^16.4.5"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dotenv-expand/node_modules/dotenv": {
+ "version": "16.6.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dset": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz",
+ "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/duplexify": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
+ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "end-of-stream": "^1.4.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1",
+ "stream-shift": "^1.0.2"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "license": "MIT"
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.238",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.238.tgz",
+ "integrity": "sha512-khBdc+w/Gv+cS8e/Pbnaw/FXcBUeKrRVik9IxfXtgREOWyJhR4tj43n3amkVogJ/yeQUqzkrZcFhtIxIdqmmcQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/engine.io": {
+ "version": "6.6.4",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz",
+ "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.7.2",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.17.1"
+ },
+ "engines": {
+ "node": ">=10.2.0"
+ }
+ },
+ "node_modules/engine.io-parser": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/engine.io/node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/engine.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/engine.io/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/engine.io/node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
+ "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "9.38.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz",
+ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.21.1",
+ "@eslint/config-helpers": "^0.4.1",
+ "@eslint/core": "^0.16.0",
+ "@eslint/eslintrc": "^3.3.1",
+ "@eslint/js": "9.38.0",
+ "@eslint/plugin-kit": "^0.4.0",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^8.0.0",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "10.1.8",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz",
+ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-config-prettier"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.5.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz",
+ "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.11.7"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esm": {
+ "version": "3.2.25",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter2": {
+ "version": "6.4.9",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz",
+ "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==",
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/execa/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/exit-x": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz",
+ "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz",
+ "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/expect-utils": "30.2.0",
+ "@jest/get-type": "30.1.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/express": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz",
+ "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "^2.0.0",
+ "body-parser": "^2.2.0",
+ "content-disposition": "^1.0.0",
+ "content-type": "^1.0.5",
+ "cookie": "^0.7.1",
+ "cookie-signature": "^1.2.1",
+ "debug": "^4.4.0",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "finalhandler": "^2.1.0",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.0",
+ "merge-descriptors": "^2.0.0",
+ "mime-types": "^3.0.0",
+ "on-finished": "^2.4.1",
+ "once": "^1.4.0",
+ "parseurl": "^1.3.3",
+ "proxy-addr": "^2.0.7",
+ "qs": "^6.14.0",
+ "range-parser": "^1.2.1",
+ "router": "^2.2.0",
+ "send": "^1.1.0",
+ "serve-static": "^2.2.0",
+ "statuses": "^2.0.1",
+ "type-is": "^2.0.1",
+ "vary": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/farmhash-modern": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz",
+ "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/fast-decode-uri-component": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz",
+ "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==",
+ "license": "MIT"
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-json-stringify": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-6.1.1.tgz",
+ "integrity": "sha512-DbgptncYEXZqDUOEl4krff4mUiVrTZZVI7BBrQR/T3BqMj/eM1flTC1Uk2uUoLcWCxjT95xKulV/Lc6hhOZsBQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/merge-json-schemas": "^0.2.0",
+ "ajv": "^8.12.0",
+ "ajv-formats": "^3.0.1",
+ "fast-uri": "^3.0.0",
+ "json-schema-ref-resolver": "^3.0.0",
+ "rfdc": "^1.2.0"
+ }
+ },
+ "node_modules/fast-json-stringify/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/fast-json-stringify/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-querystring": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz",
+ "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-decode-uri-component": "^1.0.1"
+ }
+ },
+ "node_modules/fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+ "license": "MIT"
+ },
+ "node_modules/fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastify": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.6.1.tgz",
+ "integrity": "sha512-WjjlOciBF0K8pDUPZoGPhqhKrQJ02I8DKaDIfO51EL0kbSMwQFl85cRwhOvmSDWoukNOdTo27gLN549pLCcH7Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@fastify/ajv-compiler": "^4.0.0",
+ "@fastify/error": "^4.0.0",
+ "@fastify/fast-json-stringify-compiler": "^5.0.0",
+ "@fastify/proxy-addr": "^5.0.0",
+ "abstract-logging": "^2.0.1",
+ "avvio": "^9.0.0",
+ "fast-json-stringify": "^6.0.0",
+ "find-my-way": "^9.0.0",
+ "light-my-request": "^6.0.0",
+ "pino": "^9.0.0",
+ "process-warning": "^5.0.0",
+ "rfdc": "^1.3.1",
+ "secure-json-parse": "^4.0.0",
+ "semver": "^7.6.0",
+ "toad-cache": "^3.7.0"
+ }
+ },
+ "node_modules/fastify-multer": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/fastify-multer/-/fastify-multer-2.0.3.tgz",
+ "integrity": "sha512-QnFqrRgxmUwWHTgX9uyQSu0C/hmVCfcxopqjApZ4uaZD5W9MJ+nHUlW4+9q7Yd3BRxDIuHvgiM5mjrh6XG8cAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/busboy": "^1.0.0",
+ "append-field": "^1.0.0",
+ "concat-stream": "^2.0.0",
+ "fastify-plugin": "^2.0.1",
+ "mkdirp": "^1.0.4",
+ "on-finished": "^2.3.0",
+ "type-is": "~1.6.18",
+ "xtend": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/fastify-plugin": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-2.3.4.tgz",
+ "integrity": "sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.2"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fastify-multer/node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fastify-plugin": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-5.1.0.tgz",
+ "integrity": "sha512-FAIDA8eovSt5qcDgcBvDuX/v0Cjz0ohGhENZ/wpc3y+oZCY2afZ9Baqql3g/lC+OHRnciQol4ww7tuthOb9idw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
+ "license": "MIT"
+ },
+ "node_modules/figlet": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.9.3.tgz",
+ "integrity": "sha512-majPgOpVtrZN1iyNGbsUP6bOtZ6eaJgg5HHh0vFvm5DJhh8dc+FJpOC4GABvMZ/A7XHAJUuJujhgUY/2jPWgMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^14.0.0"
+ },
+ "bin": {
+ "figlet": "bin/index.js"
+ },
+ "engines": {
+ "node": ">= 17.0.0"
+ }
+ },
+ "node_modules/figlet/node_modules/commander": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz",
+ "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/file-type": {
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.0.0.tgz",
+ "integrity": "sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg==",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/inflate": "^0.2.7",
+ "strtok3": "^10.2.2",
+ "token-types": "^6.0.0",
+ "uint8array-extras": "^1.4.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/file-type?sponsor=1"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz",
+ "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "on-finished": "^2.4.1",
+ "parseurl": "^1.3.3",
+ "statuses": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/find-my-way": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.3.0.tgz",
+ "integrity": "sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-querystring": "^1.0.0",
+ "safe-regex2": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/firebase-admin": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.6.0.tgz",
+ "integrity": "sha512-GdPA/t0+Cq8p1JnjFRBmxRxAGvF/kl2yfdhALl38PrRp325YxyQ5aNaHui0XmaKcKiGRFIJ/EgBNWFoDP0onjw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@fastify/busboy": "^3.0.0",
+ "@firebase/database-compat": "^2.0.0",
+ "@firebase/database-types": "^1.0.6",
+ "@types/node": "^22.8.7",
+ "farmhash-modern": "^1.1.0",
+ "fast-deep-equal": "^3.1.1",
+ "google-auth-library": "^9.14.2",
+ "jsonwebtoken": "^9.0.0",
+ "jwks-rsa": "^3.1.0",
+ "node-forge": "^1.3.1",
+ "uuid": "^11.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@google-cloud/firestore": "^7.11.0",
+ "@google-cloud/storage": "^7.14.0"
+ }
+ },
+ "node_modules/firebase-admin/node_modules/@fastify/busboy": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz",
+ "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==",
+ "license": "MIT"
+ },
+ "node_modules/firebase-admin/node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.4"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/flat-cache/node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz",
+ "integrity": "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.16.7",
+ "chalk": "^4.1.2",
+ "chokidar": "^4.0.1",
+ "cosmiconfig": "^8.2.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^10.0.0",
+ "memfs": "^3.4.1",
+ "minimatch": "^3.0.4",
+ "node-abort-controller": "^3.0.1",
+ "schema-utils": "^3.1.1",
+ "semver": "^7.3.5",
+ "tapable": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=14.21.3"
+ },
+ "peerDependencies": {
+ "typescript": ">3.6.0",
+ "webpack": "^5.11.0"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/form-data/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/form-data/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/formidable": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+ "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@paralleldrive/cuid2": "^2.2.2",
+ "dezalgo": "^1.0.4",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "url": "https://ko-fi.com/tunnckoCore/commissions"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/fs-monkey": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz",
+ "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==",
+ "dev": true,
+ "license": "Unlicense"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/gaxios": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
+ "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^7.0.1",
+ "is-stream": "^2.0.0",
+ "node-fetch": "^2.6.9",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gaxios/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/gcp-metadata": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz",
+ "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "gaxios": "^6.1.1",
+ "google-logging-utils": "^0.0.2",
+ "json-bigint": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "devOptional": true,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/getopts": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz",
+ "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==",
+ "license": "MIT"
+ },
+ "node_modules/glob": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
+ "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.3.1",
+ "jackspeak": "^4.1.1",
+ "minimatch": "^10.0.3",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^2.0.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
+ "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/brace-expansion": "^5.0.0"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/globals": {
+ "version": "16.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz",
+ "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/google-auth-library": {
+ "version": "9.15.1",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz",
+ "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "base64-js": "^1.3.0",
+ "ecdsa-sig-formatter": "^1.0.11",
+ "gaxios": "^6.1.1",
+ "gcp-metadata": "^6.1.0",
+ "gtoken": "^7.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/google-auth-library/node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/google-auth-library/node_modules/jws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/google-gax": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz",
+ "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "@grpc/grpc-js": "^1.10.9",
+ "@grpc/proto-loader": "^0.7.13",
+ "@types/long": "^4.0.0",
+ "abort-controller": "^3.0.0",
+ "duplexify": "^4.0.0",
+ "google-auth-library": "^9.3.0",
+ "node-fetch": "^2.7.0",
+ "object-hash": "^3.0.0",
+ "proto3-json-serializer": "^2.0.2",
+ "protobufjs": "^7.3.2",
+ "retry-request": "^7.0.0",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/google-gax/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/google-logging-utils": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz",
+ "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/graphql": {
+ "version": "16.12.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.12.0.tgz",
+ "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
+ }
+ },
+ "node_modules/gtoken": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
+ "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
+ "license": "MIT",
+ "dependencies": {
+ "gaxios": "^6.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/gtoken/node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/gtoken/node_modules/jws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/handlebars/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hashery": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.3.0.tgz",
+ "integrity": "sha512-fWltioiy5zsSAs9ouEnvhsVJeAXRybGCNNv0lvzpzNOSDbULXRy7ivFWwCCv4I5Am6kSo75hmbsCduOoc2/K4w==",
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^1.13.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hookified": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.14.0.tgz",
+ "integrity": "sha512-pi1ynXIMFx/uIIwpWJ/5CEtOHLGtnUB0WhGeeYT+fKcQ+WCQbm3/rrkAXnpfph++PgepNqPdTC2WTj8A6k6zoQ==",
+ "license": "MIT"
+ },
+ "node_modules/html-entities": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
+ "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ],
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
+ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
+ "license": "MIT"
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tootallnate/once": "2",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
+ "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/interpret": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
+ "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/ioredis": {
+ "version": "5.8.2",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.8.2.tgz",
+ "integrity": "sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@ioredis/commands": "1.4.0",
+ "cluster-key-slot": "^1.1.0",
+ "debug": "^4.3.4",
+ "denque": "^2.1.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.isarguments": "^3.1.0",
+ "redis-errors": "^1.2.0",
+ "redis-parser": "^3.0.0",
+ "standard-as-callback": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=12.22.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ioredis"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+ "license": "MIT"
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "which-typed-array": "^1.1.16"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.23",
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/iterare": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz",
+ "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz",
+ "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
+ "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jest/core": "30.2.0",
+ "@jest/types": "30.2.0",
+ "import-local": "^3.2.0",
+ "jest-cli": "30.2.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz",
+ "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^5.1.1",
+ "jest-util": "30.2.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz",
+ "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/expect": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "co": "^4.6.0",
+ "dedent": "^1.6.0",
+ "is-generator-fn": "^2.1.0",
+ "jest-each": "30.2.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "30.2.0",
+ "pure-rand": "^7.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz",
+ "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "exit-x": "^0.2.2",
+ "import-local": "^3.2.0",
+ "jest-config": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz",
+ "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.27.4",
+ "@jest/get-type": "30.1.0",
+ "@jest/pattern": "30.0.1",
+ "@jest/test-sequencer": "30.2.0",
+ "@jest/types": "30.2.0",
+ "babel-jest": "30.2.0",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "deepmerge": "^4.3.1",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "jest-circus": "30.2.0",
+ "jest-docblock": "30.2.0",
+ "jest-environment-node": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-runner": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "micromatch": "^4.0.8",
+ "parse-json": "^5.2.0",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "esbuild-register": ">=3.4.0",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "esbuild-register": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-config/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jest-config/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-config/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
+ "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/diff-sequences": "30.0.1",
+ "@jest/get-type": "30.1.0",
+ "chalk": "^4.1.2",
+ "pretty-format": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz",
+ "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-newline": "^3.1.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz",
+ "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/get-type": "30.1.0",
+ "@jest/types": "30.2.0",
+ "chalk": "^4.1.2",
+ "jest-util": "30.2.0",
+ "pretty-format": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz",
+ "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz",
+ "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "anymatch": "^3.1.3",
+ "fb-watchman": "^2.0.2",
+ "graceful-fs": "^4.2.11",
+ "jest-regex-util": "30.0.1",
+ "jest-util": "30.2.0",
+ "jest-worker": "30.2.0",
+ "micromatch": "^4.0.8",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.3"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz",
+ "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/get-type": "30.1.0",
+ "pretty-format": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
+ "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/get-type": "30.1.0",
+ "chalk": "^4.1.2",
+ "jest-diff": "30.2.0",
+ "pretty-format": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+ "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz",
+ "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-pnp-resolver": "^1.2.3",
+ "jest-util": "30.2.0",
+ "jest-validate": "30.2.0",
+ "slash": "^3.0.0",
+ "unrs-resolver": "^1.7.11"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz",
+ "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-regex-util": "30.0.1",
+ "jest-snapshot": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz",
+ "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "30.2.0",
+ "@jest/environment": "30.2.0",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "emittery": "^0.13.1",
+ "exit-x": "^0.2.2",
+ "graceful-fs": "^4.2.11",
+ "jest-docblock": "30.2.0",
+ "jest-environment-node": "30.2.0",
+ "jest-haste-map": "30.2.0",
+ "jest-leak-detector": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-resolve": "30.2.0",
+ "jest-runtime": "30.2.0",
+ "jest-util": "30.2.0",
+ "jest-watcher": "30.2.0",
+ "jest-worker": "30.2.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz",
+ "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/globals": "30.2.0",
+ "@jest/source-map": "30.0.1",
+ "@jest/test-result": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "cjs-module-lexer": "^2.1.0",
+ "collect-v8-coverage": "^1.0.2",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.11",
+ "jest-haste-map": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-regex-util": "30.0.1",
+ "jest-resolve": "30.2.0",
+ "jest-snapshot": "30.2.0",
+ "jest-util": "30.2.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jest-runtime/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz",
+ "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.27.4",
+ "@babel/generator": "^7.27.5",
+ "@babel/plugin-syntax-jsx": "^7.27.1",
+ "@babel/plugin-syntax-typescript": "^7.27.1",
+ "@babel/types": "^7.27.3",
+ "@jest/expect-utils": "30.2.0",
+ "@jest/get-type": "30.1.0",
+ "@jest/snapshot-utils": "30.2.0",
+ "@jest/transform": "30.2.0",
+ "@jest/types": "30.2.0",
+ "babel-preset-current-node-syntax": "^1.2.0",
+ "chalk": "^4.1.2",
+ "expect": "30.2.0",
+ "graceful-fs": "^4.2.11",
+ "jest-diff": "30.2.0",
+ "jest-matcher-utils": "30.2.0",
+ "jest-message-util": "30.2.0",
+ "jest-util": "30.2.0",
+ "pretty-format": "30.2.0",
+ "semver": "^7.7.2",
+ "synckit": "^0.11.8"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz",
+ "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/get-type": "30.1.0",
+ "@jest/types": "30.2.0",
+ "camelcase": "^6.3.0",
+ "chalk": "^4.1.2",
+ "leven": "^3.1.0",
+ "pretty-format": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz",
+ "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "emittery": "^0.13.1",
+ "jest-util": "30.2.0",
+ "string-length": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz",
+ "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@ungap/structured-clone": "^1.3.0",
+ "jest-util": "30.2.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.1.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/jju": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
+ "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jose": {
+ "version": "4.15.9",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
+ "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-ref-resolver": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-3.0.0.tgz",
+ "integrity": "sha512-hOrZIVL5jyYFjzk7+y7n5JDzGlU8rfWDuYyHwGa2WA8/pcmMHezp2xsVwxrebD/Q9t8Nc5DboieySDpCp4WG4A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsonfile": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
+ "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsonwebtoken": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/jwa": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
+ "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jwks-rsa": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz",
+ "integrity": "sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/express": "^4.17.20",
+ "@types/jsonwebtoken": "^9.0.4",
+ "debug": "^4.3.4",
+ "jose": "^4.15.4",
+ "limiter": "^1.1.5",
+ "lru-memoizer": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/jwks-rsa/node_modules/@types/express": {
+ "version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "^1"
+ }
+ },
+ "node_modules/jwks-rsa/node_modules/@types/express-serve-static-core": {
+ "version": "4.19.7",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz",
+ "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ },
+ "node_modules/knex": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz",
+ "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==",
+ "license": "MIT",
+ "dependencies": {
+ "colorette": "2.0.19",
+ "commander": "^10.0.0",
+ "debug": "4.3.4",
+ "escalade": "^3.1.1",
+ "esm": "^3.2.25",
+ "get-package-type": "^0.1.0",
+ "getopts": "2.3.0",
+ "interpret": "^2.2.0",
+ "lodash": "^4.17.21",
+ "pg-connection-string": "2.6.2",
+ "rechoir": "^0.8.0",
+ "resolve-from": "^5.0.0",
+ "tarn": "^3.0.2",
+ "tildify": "2.0.0"
+ },
+ "bin": {
+ "knex": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependenciesMeta": {
+ "better-sqlite3": {
+ "optional": true
+ },
+ "mysql": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "pg": {
+ "optional": true
+ },
+ "pg-native": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ },
+ "tedious": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/knex/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/knex/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/knex/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "license": "MIT"
+ },
+ "node_modules/knex/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/libphonenumber-js": {
+ "version": "1.12.25",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.25.tgz",
+ "integrity": "sha512-u90tUu/SEF8b+RaDKCoW7ZNFDakyBtFlX1ex3J+VH+ElWes/UaitJLt/w4jGu8uAE41lltV/s+kMVtywcMEg7g==",
+ "license": "MIT"
+ },
+ "node_modules/light-my-request": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-6.6.0.tgz",
+ "integrity": "sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "cookie": "^1.0.1",
+ "process-warning": "^4.0.0",
+ "set-cookie-parser": "^2.6.0"
+ }
+ },
+ "node_modules/light-my-request/node_modules/cookie": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
+ "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/light-my-request/node_modules/process-warning": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.1.tgz",
+ "integrity": "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/limiter": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
+ "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/load-esm": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/load-esm/-/load-esm-1.0.3.tgz",
+ "integrity": "sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ },
+ {
+ "type": "buymeacoffee",
+ "url": "https://buymeacoffee.com/borewit"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=13.2.0"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
+ "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
+ "license": "MIT"
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/loglevel": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz",
+ "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/lru-memoizer": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz",
+ "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash.clonedeep": "^4.5.0",
+ "lru-cache": "6.0.0"
+ }
+ },
+ "node_modules/lru-memoizer/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lru-memoizer/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
+ "node_modules/luxon": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
+ "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/memfs": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
+ "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
+ "dev": true,
+ "license": "Unlicense",
+ "dependencies": {
+ "fs-monkey": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+ "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/mikro-orm": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.5.8.tgz",
+ "integrity": "sha512-N3iZIOX/1OHP5c9LSJ6P8MN+Ri+Ab7Clo9U/vKg/7paAdTPgBioMcWzRjimoWMPj8COZYEn9x/xPnlna3FHVEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18.12.0"
+ }
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "^1.54.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/msgpackr": {
+ "version": "1.11.5",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz",
+ "integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==",
+ "license": "MIT",
+ "optionalDependencies": {
+ "msgpackr-extract": "^3.0.2"
+ }
+ },
+ "node_modules/msgpackr-extract": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz",
+ "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "node-gyp-build-optional-packages": "5.2.2"
+ },
+ "bin": {
+ "download-msgpackr-prebuilds": "bin/download-prebuilds.js"
+ },
+ "optionalDependencies": {
+ "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3",
+ "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3",
+ "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3",
+ "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3",
+ "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3",
+ "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3"
+ }
+ },
+ "node_modules/multer": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz",
+ "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==",
+ "license": "MIT",
+ "dependencies": {
+ "append-field": "^1.0.0",
+ "busboy": "^1.6.0",
+ "concat-stream": "^2.0.0",
+ "mkdirp": "^0.5.6",
+ "object-assign": "^4.1.1",
+ "type-is": "^1.6.18",
+ "xtend": "^4.0.2"
+ },
+ "engines": {
+ "node": ">= 10.16.0"
+ }
+ },
+ "node_modules/multer/node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mute-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "napi-postinstall": "lib/cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/napi-postinstall"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-abort-controller": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
+ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==",
+ "license": "MIT"
+ },
+ "node_modules/node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.21"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz",
+ "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==",
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/node-gyp-build-optional-packages": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
+ "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^2.0.1"
+ },
+ "bin": {
+ "node-gyp-build-optional-packages": "bin.js",
+ "node-gyp-build-optional-packages-optional": "optional.js",
+ "node-gyp-build-optional-packages-test": "build-test.js"
+ }
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.26",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz",
+ "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-exit-leak-free": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
+ "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-require": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz",
+ "integrity": "sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
+ "license": "MIT"
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
+ "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
+ "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pg": {
+ "version": "8.16.3",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz",
+ "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-connection-string": "^2.9.1",
+ "pg-pool": "^3.10.1",
+ "pg-protocol": "^1.10.3",
+ "pg-types": "2.2.0",
+ "pgpass": "1.0.5"
+ },
+ "engines": {
+ "node": ">= 16.0.0"
+ },
+ "optionalDependencies": {
+ "pg-cloudflare": "^1.2.7"
+ },
+ "peerDependencies": {
+ "pg-native": ">=3.0.1"
+ },
+ "peerDependenciesMeta": {
+ "pg-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pg-cloudflare": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz",
+ "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/pg-connection-string": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz",
+ "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==",
+ "license": "MIT"
+ },
+ "node_modules/pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/pg-pool": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz",
+ "integrity": "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "pg": ">=8.0"
+ }
+ },
+ "node_modules/pg-protocol": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz",
+ "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==",
+ "license": "MIT"
+ },
+ "node_modules/pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pg-types/node_modules/postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pg-types/node_modules/postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pg-types/node_modules/postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pg/node_modules/pg-connection-string": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.1.tgz",
+ "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==",
+ "license": "MIT"
+ },
+ "node_modules/pgpass": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
+ "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
+ "license": "MIT",
+ "dependencies": {
+ "split2": "^4.1.0"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pino": {
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz",
+ "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==",
+ "license": "MIT",
+ "dependencies": {
+ "@pinojs/redact": "^0.4.0",
+ "atomic-sleep": "^1.0.0",
+ "on-exit-leak-free": "^2.1.0",
+ "pino-abstract-transport": "^2.0.0",
+ "pino-std-serializers": "^7.0.0",
+ "process-warning": "^5.0.0",
+ "quick-format-unescaped": "^4.0.3",
+ "real-require": "^0.2.0",
+ "safe-stable-stringify": "^2.3.1",
+ "sonic-boom": "^4.0.1",
+ "thread-stream": "^3.0.0"
+ },
+ "bin": {
+ "pino": "bin.js"
+ }
+ },
+ "node_modules/pino-abstract-transport": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
+ "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
+ "license": "MIT",
+ "dependencies": {
+ "split2": "^4.0.0"
+ }
+ },
+ "node_modules/pino-std-serializers": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
+ "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
+ "license": "MIT"
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pony-cause": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz",
+ "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==",
+ "dev": true,
+ "license": "0BSD",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postgres-array": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.4.tgz",
+ "integrity": "sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/postgres-bytea": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
+ "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-date": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz",
+ "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/postgres-interval": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-4.0.2.tgz",
+ "integrity": "sha512-EMsphSQ1YkQqKZL2cuG0zHkmjCCzQqQ71l2GXITqRwjhRleCdv00bDk/ktaSi0LnlaPzAc3535KTrjXsTdtx7A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
+ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/process-warning": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz",
+ "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/proto3-json-serializer": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz",
+ "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "protobufjs": "^7.2.5"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/protobufjs": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
+ "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/node": ">=13.7.0",
+ "long": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/protobufjs/node_modules/long": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz",
+ "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/qified": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/qified/-/qified-0.5.3.tgz",
+ "integrity": "sha512-kXuQdQTB6oN3KhI6V4acnBSZx8D2I4xzZvn9+wFLLFCoBNQY/sFnCW6c43OL7pOQ2HvGV4lnWIXNmgfp7cTWhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^1.13.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quick-format-unescaped": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
+ "license": "MIT"
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz",
+ "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.7.0",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/real-require": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
+ "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.20.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/redis-errors": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
+ "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/redis-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
+ "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
+ "license": "MIT",
+ "dependencies": {
+ "redis-errors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/reflect-metadata": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/restore-cursor/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/ret": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz",
+ "integrity": "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/retry-request": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz",
+ "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@types/request": "^2.48.8",
+ "extend": "^3.0.2",
+ "teeny-request": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "license": "MIT"
+ },
+ "node_modules/router": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
+ "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "depd": "^2.0.0",
+ "is-promise": "^4.0.0",
+ "parseurl": "^1.3.3",
+ "path-to-regexp": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safe-regex2": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-5.0.0.tgz",
+ "integrity": "sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "ret": "~0.5.0"
+ }
+ },
+ "node_modules/safe-stable-stringify": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/sanitize-html": {
+ "version": "2.17.0",
+ "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz",
+ "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==",
+ "license": "MIT",
+ "dependencies": {
+ "deepmerge": "^4.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "htmlparser2": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "parse-srcset": "^1.0.2",
+ "postcss": "^8.3.11"
+ }
+ },
+ "node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/secure-json-parse": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.1.0.tgz",
+ "integrity": "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/send": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz",
+ "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.5",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.0",
+ "mime-types": "^3.0.1",
+ "ms": "^2.1.3",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "statuses": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz",
+ "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "parseurl": "^1.3.3",
+ "send": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/set-cookie-parser": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
+ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
+ "license": "MIT"
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.12",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
+ "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1",
+ "to-buffer": "^1.2.0"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/socket.io": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz",
+ "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "base64id": "~2.0.0",
+ "cors": "~2.8.5",
+ "debug": "~4.3.2",
+ "engine.io": "~6.6.0",
+ "socket.io-adapter": "~2.5.2",
+ "socket.io-parser": "~4.2.4"
+ },
+ "engines": {
+ "node": ">=10.2.0"
+ }
+ },
+ "node_modules/socket.io-adapter": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz",
+ "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "~4.3.4",
+ "ws": "~8.17.1"
+ }
+ },
+ "node_modules/socket.io-adapter/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+ "license": "MIT",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io/node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/socket.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/socket.io/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/socket.io/node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/sonic-boom": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
+ "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
+ "license": "MIT",
+ "dependencies": {
+ "atomic-sleep": "^1.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/sqlstring": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
+ "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/standard-as-callback": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz",
+ "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
+ "license": "MIT"
+ },
+ "node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/stream-events": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
+ "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "stubs": "^3.0.0"
+ }
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-argv": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-length/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-length/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strnum": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz",
+ "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/strtok3": {
+ "version": "10.3.4",
+ "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.4.tgz",
+ "integrity": "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==",
+ "license": "MIT",
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/stubs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
+ "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/superagent": {
+ "version": "10.2.3",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz",
+ "integrity": "sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "component-emitter": "^1.3.1",
+ "cookiejar": "^2.1.4",
+ "debug": "^4.3.7",
+ "fast-safe-stringify": "^2.1.1",
+ "form-data": "^4.0.4",
+ "formidable": "^3.5.4",
+ "methods": "^1.1.2",
+ "mime": "2.6.0",
+ "qs": "^6.11.2"
+ },
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/supertest": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.4.tgz",
+ "integrity": "sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "methods": "^1.1.2",
+ "superagent": "^10.2.3"
+ },
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/swagger-ui-dist": {
+ "version": "5.29.4",
+ "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.29.4.tgz",
+ "integrity": "sha512-gJFDz/gyLOCQtWwAgqs6Rk78z9ONnqTnlW11gimG9nLap8drKa3AJBKpzIQMIjl5PD2Ix+Tn+mc/tfoT2tgsng==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@scarf/scarf": "=1.4.0"
+ }
+ },
+ "node_modules/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/synckit": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz",
+ "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@pkgr/core": "^0.2.9"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/synckit"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
+ "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/tarn": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz",
+ "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/teeny-request": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz",
+ "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.9",
+ "stream-events": "^1.0.5",
+ "uuid": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/teeny-request/node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/teeny-request/node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/teeny-request/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.44.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz",
+ "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.15.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.14",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
+ "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/text-decoding": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz",
+ "integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==",
+ "license": "MIT"
+ },
+ "node_modules/thread-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
+ "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
+ "license": "MIT",
+ "dependencies": {
+ "real-require": "^0.2.0"
+ }
+ },
+ "node_modules/tildify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
+ "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/to-buffer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
+ "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "^2.0.5",
+ "safe-buffer": "^5.2.1",
+ "typed-array-buffer": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toad-cache": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz",
+ "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/token-types": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.1.tgz",
+ "integrity": "sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@borewit/text-codec": "^0.1.0",
+ "@tokenizer/token": "^0.3.0",
+ "ieee754": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+ "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4"
+ }
+ },
+ "node_modules/ts-jest": {
+ "version": "29.4.5",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz",
+ "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bs-logger": "^0.2.6",
+ "fast-json-stable-stringify": "^2.1.0",
+ "handlebars": "^4.7.8",
+ "json5": "^2.2.3",
+ "lodash.memoize": "^4.1.2",
+ "make-error": "^1.3.6",
+ "semver": "^7.7.3",
+ "type-fest": "^4.41.0",
+ "yargs-parser": "^21.1.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/transform": "^29.0.0 || ^30.0.0",
+ "@jest/types": "^29.0.0 || ^30.0.0",
+ "babel-jest": "^29.0.0 || ^30.0.0",
+ "jest": "^29.0.0 || ^30.0.0",
+ "jest-util": "^29.0.0 || ^30.0.0",
+ "typescript": ">=4.3 <6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/transform": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jest-util": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-jest/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ts-loader": {
+ "version": "9.5.4",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz",
+ "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.0.0",
+ "micromatch": "^4.0.0",
+ "semver": "^7.3.4",
+ "source-map": "^0.7.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "typescript": "*",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+ "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json5": "^2.2.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tsconfig-paths-webpack-plugin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz",
+ "integrity": "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.7.0",
+ "tapable": "^2.2.1",
+ "tsconfig-paths": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
+ "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
+ "license": "MIT",
+ "dependencies": {
+ "content-type": "^1.0.5",
+ "media-typer": "^1.1.0",
+ "mime-types": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "license": "MIT"
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "8.46.2",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz",
+ "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "8.46.2",
+ "@typescript-eslint/parser": "8.46.2",
+ "@typescript-eslint/typescript-estree": "8.46.2",
+ "@typescript-eslint/utils": "8.46.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/uid": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz",
+ "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/csprng": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/uint8array-extras": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz",
+ "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ulid": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ulid/-/ulid-3.0.1.tgz",
+ "integrity": "sha512-dPJyqPzx8preQhqq24bBG1YNkvigm87K8kVEHCD+ruZg24t6IFEFv00xMWfxcC4djmFtiTLdFuADn4+DOz6R7Q==",
+ "license": "MIT",
+ "bin": {
+ "ulid": "dist/cli.js"
+ }
+ },
+ "node_modules/umzug": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/umzug/-/umzug-3.8.2.tgz",
+ "integrity": "sha512-BEWEF8OJjTYVC56GjELeHl/1XjFejrD7aHzn+HldRJTx+pL1siBrKHZC8n4K/xL3bEzVA9o++qD1tK2CpZu4KA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rushstack/ts-command-line": "^4.12.2",
+ "emittery": "^0.13.0",
+ "fast-glob": "^3.3.2",
+ "pony-cause": "^2.1.4",
+ "type-fest": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/umzug/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "license": "MIT"
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unrs-resolver": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
+ "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "napi-postinstall": "^0.3.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unrs-resolver"
+ },
+ "optionalDependencies": {
+ "@unrs/resolver-binding-android-arm-eabi": "1.11.1",
+ "@unrs/resolver-binding-android-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-x64": "1.11.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.11.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.11.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/uuid": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz",
+ "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist-node/bin/uuid"
+ }
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/validator": {
+ "version": "13.15.20",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz",
+ "integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
+ "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/webpack": {
+ "version": "5.103.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz",
+ "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.8",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.15.0",
+ "acorn-import-phases": "^1.0.3",
+ "browserslist": "^4.26.3",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.3",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.3.1",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.3",
+ "tapable": "^2.3.0",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.4",
+ "webpack-sources": "^3.3.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-node-externals": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz",
+ "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
+ "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/webpack/node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/webpack/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webpack/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "devOptional": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "devOptional": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
+ "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..598d19c
--- /dev/null
+++ b/package.json
@@ -0,0 +1,124 @@
+{
+ "name": "base-api",
+ "version": "0.0.1",
+ "description": "",
+ "author": "",
+ "private": true,
+ "license": "UNLICENSED",
+ "scripts": {
+ "db:create": "npx mikro-orm schema:create --run --config ./src/config/mikro-orm.config.dev.ts",
+ "db:update": "npx mikro-orm schema:update --run --config ./src/config/mikro-orm.config.dev.ts ",
+ "db:drop": "npx mikro-orm schema:drop --run --config ./src/config/mikro-orm.config.dev.ts",
+ "db:seed": "npx mikro-orm seeder:run --config ./src/config/mikro-orm.config.dev.ts",
+ "db:reset": "npm run db:drop && npm run db:create && npm run db:seed",
+ "build": "nest build",
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
+ "start": "nest start dist/main",
+ "start:dev": "nest start --watch",
+ "start:debug": "nest start --debug --watch",
+ "start:prod": "node --max-old-space-size=2048 dist/main",
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
+ "test": "jest",
+ "test:watch": "jest --watch",
+ "test:cov": "jest --coverage",
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
+ "test:e2e": "jest --config ./test/jest-e2e.json",
+ "migration:create": "npx mikro-orm migration:create --config ./src/config/mikro-orm.config.dev.ts",
+ "migration:up": "npx mikro-orm migration:up --config ./src/config/mikro-orm.config.dev.ts",
+ "migration:down": "npx mikro-orm migration:down --config ./src/config/mikro-orm.config.dev.ts",
+ "migration:list": "npx mikro-orm migration:list --config ./src/config/mikro-orm.config.dev.ts",
+ "migration:pending": "npx mikro-orm migration:pending --config ./src/config/mikro-orm.config.dev.ts"
+ },
+ "dependencies": {
+ "@apollo/server": "^5.1.0",
+ "@as-integrations/fastify": "^3.1.0",
+ "@aws-sdk/client-s3": "^3.922.0",
+ "@aws-sdk/s3-request-presigner": "^3.922.0",
+ "@fastify/cookie": "^11.0.2",
+ "@fastify/multipart": "^9.3.0",
+ "@fastify/static": "^8.3.0",
+ "@keyv/redis": "^5.1.3",
+ "@mikro-orm/core": "^6.5.8",
+ "@mikro-orm/nestjs": "^6.1.1",
+ "@mikro-orm/postgresql": "^6.5.8",
+ "@nest-lab/fastify-multer": "^1.3.0",
+ "@nestjs/axios": "^4.0.1",
+ "@nestjs/bullmq": "^11.0.4",
+ "@nestjs/cache-manager": "^3.0.1",
+ "@nestjs/common": "^11.0.1",
+ "@nestjs/config": "^4.0.2",
+ "@nestjs/core": "^11.0.1",
+ "@nestjs/event-emitter": "^3.0.1",
+ "@nestjs/jwt": "^11.0.1",
+ "@nestjs/mapped-types": "*",
+ "@nestjs/platform-express": "^11.0.1",
+ "@nestjs/platform-fastify": "^11.1.8",
+ "@nestjs/platform-socket.io": "^11.1.9",
+ "@nestjs/schedule": "^6.0.1",
+ "@nestjs/swagger": "^11.2.1",
+ "@nestjs/throttler": "^6.4.0",
+ "@types/socket.io": "^3.0.1",
+ "axios": "^1.13.1",
+ "bullmq": "^5.65.1",
+ "cache-manager": "^7.2.4",
+ "cacheable": "^2.3.1",
+ "class-transformer": "^0.5.1",
+ "class-validator": "^0.14.2",
+ "dayjs": "^1.11.19",
+ "fastify": "^5.6.1",
+ "firebase-admin": "^13.6.0",
+ "reflect-metadata": "^0.2.2",
+ "rxjs": "^7.8.1",
+ "sanitize-html": "^2.17.0",
+ "slugify": "^1.6.6",
+ "socket.io": "^4.8.1",
+ "ulid": "^3.0.1",
+ "uuid": "^13.0.0"
+ },
+ "devDependencies": {
+ "@eslint/eslintrc": "^3.2.0",
+ "@eslint/js": "^9.18.0",
+ "@mikro-orm/cli": "^6.5.8",
+ "@mikro-orm/migrations": "^6.5.8",
+ "@mikro-orm/seeder": "^6.5.8",
+ "@nestjs/cli": "^11.0.0",
+ "@nestjs/schematics": "^11.0.0",
+ "@nestjs/testing": "^11.0.1",
+ "@types/express": "^5.0.0",
+ "@types/jest": "^30.0.0",
+ "@types/node": "^22.10.7",
+ "@types/sanitize-html": "^2.16.0",
+ "@types/supertest": "^6.0.2",
+ "@types/uuid": "^10.0.0",
+ "eslint": "^9.18.0",
+ "eslint-config-prettier": "^10.0.1",
+ "eslint-plugin-prettier": "^5.2.2",
+ "globals": "^16.0.0",
+ "jest": "^30.0.0",
+ "prettier": "^3.4.2",
+ "source-map-support": "^0.5.21",
+ "supertest": "^7.0.0",
+ "ts-jest": "^29.2.5",
+ "ts-loader": "^9.5.2",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.7.3",
+ "typescript-eslint": "^8.20.0"
+ },
+ "jest": {
+ "moduleFileExtensions": [
+ "js",
+ "json",
+ "ts"
+ ],
+ "rootDir": "src",
+ "testRegex": ".*\\.spec\\.ts$",
+ "transform": {
+ "^.+\\.(t|j)s$": "ts-jest"
+ },
+ "collectCoverageFrom": [
+ "**/*.(t|j)s"
+ ],
+ "coverageDirectory": "../coverage",
+ "testEnvironment": "node"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..3661e0d
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,14002 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@aws-sdk/client-s3':
+ specifier: ^3.850.0
+ version: 3.850.0
+ '@aws-sdk/s3-request-presigner':
+ specifier: ^3.850.0
+ version: 3.850.0
+ '@fastify/static':
+ specifier: ^8.2.0
+ version: 8.2.0
+ '@keyv/redis':
+ specifier: ^4.5.0
+ version: 4.5.0(keyv@5.3.4)
+ '@mikro-orm/cli':
+ specifier: ^6.4.16
+ version: 6.4.16(pg@8.16.0)
+ '@mikro-orm/core':
+ specifier: ^6.4.16
+ version: 6.4.16
+ '@mikro-orm/nestjs':
+ specifier: ^6.1.1
+ version: 6.1.1(@mikro-orm/core@6.4.16)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
+ '@mikro-orm/postgresql':
+ specifier: ^6.4.16
+ version: 6.4.16(@mikro-orm/core@6.4.16)
+ '@mikro-orm/seeder':
+ specifier: ^6.4.16
+ version: 6.4.16(@mikro-orm/core@6.4.16)
+ '@nest-lab/fastify-multer':
+ specifier: ^1.3.0
+ version: 1.3.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-fastify@11.1.3(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3))(rxjs@7.8.2)
+ '@nest-lab/throttler-storage-redis':
+ specifier: ^1.1.0
+ version: 1.1.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/throttler@6.4.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(reflect-metadata@0.2.2))(ioredis@5.6.1)(reflect-metadata@0.2.2)
+ '@nestjs-modules/mailer':
+ specifier: ^2.0.2
+ version: 2.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(nodemailer@7.0.4)
+ '@nestjs/axios':
+ specifier: ^4.0.0
+ version: 4.0.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.10.0)(rxjs@7.8.2)
+ '@nestjs/bullmq':
+ specifier: ^11.0.2
+ version: 11.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(bullmq@5.56.1)
+ '@nestjs/cache-manager':
+ specifier: ^3.0.1
+ version: 3.0.1(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(cache-manager@7.0.0)(keyv@5.3.4)(rxjs@7.8.2)
+ '@nestjs/cli':
+ specifier: ^11.0.7
+ version: 11.0.7(@swc/cli@0.6.0(@swc/core@1.12.9)(chokidar@4.0.3))(@swc/core@1.12.9)(@types/node@22.16.0)
+ '@nestjs/common':
+ specifier: ^11.1.3
+ version: 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/config':
+ specifier: ^4.0.2
+ version: 4.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)
+ '@nestjs/core':
+ specifier: ^11.1.3
+ version: 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/jwt':
+ specifier: ^11.0.0
+ version: 11.0.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))
+ '@nestjs/passport':
+ specifier: ^11.0.5
+ version: 11.0.5(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)
+ '@nestjs/platform-fastify':
+ specifier: ^11.1.3
+ version: 11.1.3(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
+ '@nestjs/platform-socket.io':
+ specifier: ^11.1.3
+ version: 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(rxjs@7.8.2)
+ '@nestjs/swagger':
+ specifier: ^11.2.0
+ version: 11.2.0(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)
+ '@nestjs/throttler':
+ specifier: ^6.4.0
+ version: 6.4.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(reflect-metadata@0.2.2)
+ '@nestjs/websockets':
+ specifier: ^11.1.3
+ version: 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-socket.io@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ axios:
+ specifier: ^1.10.0
+ version: 1.10.0
+ bcrypt:
+ specifier: ^5.1.1
+ version: 5.1.1
+ bullmq:
+ specifier: ^5.56.1
+ version: 5.56.1
+ class-transformer:
+ specifier: ^0.5.1
+ version: 0.5.1
+ class-validator:
+ specifier: ^0.14.2
+ version: 0.14.2
+ dayjs:
+ specifier: ^1.11.13
+ version: 1.11.13
+ decimal.js:
+ specifier: ^10.5.0
+ version: 10.5.0
+ dotenv:
+ specifier: ^16.6.1
+ version: 16.6.1
+ fastify:
+ specifier: ^5.4.0
+ version: 5.4.0
+ nodemailer:
+ specifier: ^7.0.4
+ version: 7.0.4
+ openai:
+ specifier: ^5.10.2
+ version: 5.10.2
+ parse-json:
+ specifier: ^8.3.0
+ version: 8.3.0
+ passport-jwt:
+ specifier: ^4.0.1
+ version: 4.0.1
+ reflect-metadata:
+ specifier: ^0.2.2
+ version: 0.2.2
+ rxjs:
+ specifier: ^7.8.2
+ version: 7.8.2
+ slugify:
+ specifier: ^1.6.6
+ version: 1.6.6
+ socket.io:
+ specifier: ^4.8.1
+ version: 4.8.1
+ uuid:
+ specifier: ^11.1.0
+ version: 11.1.0
+ web-push:
+ specifier: ^3.6.7
+ version: 3.6.7
+ devDependencies:
+ '@commitlint/cli':
+ specifier: ^19.8.1
+ version: 19.8.1(@types/node@22.16.0)(typescript@5.8.3)
+ '@commitlint/config-conventional':
+ specifier: ^19.8.1
+ version: 19.8.1
+ '@eslint/eslintrc':
+ specifier: ^3.3.1
+ version: 3.3.1
+ '@eslint/js':
+ specifier: ^9.30.1
+ version: 9.30.1
+ '@nestjs/schematics':
+ specifier: ^11.0.5
+ version: 11.0.5(chokidar@4.0.3)(typescript@5.8.3)
+ '@nestjs/testing':
+ specifier: ^11.1.3
+ version: 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
+ '@swc/cli':
+ specifier: ^0.6.0
+ version: 0.6.0(@swc/core@1.12.9)(chokidar@4.0.3)
+ '@swc/core':
+ specifier: ^1.12.9
+ version: 1.12.9
+ '@types/bcrypt':
+ specifier: ^5.0.2
+ version: 5.0.2
+ '@types/jest':
+ specifier: ^29.5.14
+ version: 29.5.14
+ '@types/node':
+ specifier: ^22.16.0
+ version: 22.16.0
+ '@types/nodemailer':
+ specifier: ^6.4.17
+ version: 6.4.17
+ '@types/passport-jwt':
+ specifier: ^4.0.1
+ version: 4.0.1
+ '@types/supertest':
+ specifier: ^6.0.3
+ version: 6.0.3
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^8.35.1
+ version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/parser':
+ specifier: ^8.35.1
+ version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ eslint:
+ specifier: ^9.30.1
+ version: 9.30.1(jiti@2.4.2)
+ eslint-config-prettier:
+ specifier: ^10.1.5
+ version: 10.1.5(eslint@9.30.1(jiti@2.4.2))
+ eslint-import-resolver-typescript:
+ specifier: ^3.10.1
+ version: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.30.1(jiti@2.4.2))
+ eslint-plugin-import:
+ specifier: ^2.32.0
+ version: 2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.30.1(jiti@2.4.2))
+ eslint-plugin-prettier:
+ specifier: ^5.5.1
+ version: 5.5.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2)
+ globals:
+ specifier: ^16.3.0
+ version: 16.3.0
+ husky:
+ specifier: ^9.1.7
+ version: 9.1.7
+ jest:
+ specifier: ^29.7.0
+ version: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ lint-staged:
+ specifier: ^15.5.2
+ version: 15.5.2
+ prettier:
+ specifier: ^3.6.2
+ version: 3.6.2
+ source-map-support:
+ specifier: ^0.5.21
+ version: 0.5.21
+ supertest:
+ specifier: ^7.1.1
+ version: 7.1.1
+ ts-jest:
+ specifier: ^29.4.0
+ version: 29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)))(typescript@5.8.3)
+ ts-loader:
+ specifier: ^9.5.2
+ version: 9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9))
+ ts-node:
+ specifier: ^10.9.2
+ version: 10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)
+ tsconfig-paths:
+ specifier: ^4.2.0
+ version: 4.2.0
+ typescript:
+ specifier: ^5.8.3
+ version: 5.8.3
+ typescript-eslint:
+ specifier: ^8.35.1
+ version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@angular-devkit/core@19.2.6':
+ resolution: {integrity: sha512-WFgiYhrDMq83UNaGRAneIM7CYYdBozD+yYA9BjoU8AgBLKtrvn6S8ZcjKAk5heoHtY/u8pEb0mwDTz9gxFmJZQ==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ peerDependencies:
+ chokidar: ^4.0.0
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+
+ '@angular-devkit/core@19.2.8':
+ resolution: {integrity: sha512-kcxUHKf5Hi98r4gAvMP3ntJV8wuQ3/i6wuU9RcMP0UKUt2Rer5Ryis3MPqT92jvVVwg6lhrLIhXsFuWJMiYjXQ==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ peerDependencies:
+ chokidar: ^4.0.0
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+
+ '@angular-devkit/schematics-cli@19.2.8':
+ resolution: {integrity: sha512-RFnlyu4Ld8I4xvu/eqrhjbQ6kQTr27w79omMiTbQcQZvP3E6oUyZdBjobyih4Np+1VVQrbdEeNz76daP2iUDig==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ hasBin: true
+
+ '@angular-devkit/schematics@19.2.6':
+ resolution: {integrity: sha512-YTAxNnT++5eflx19OUHmOWu597/TbTel+QARiZCv1xQw99+X8DCKKOUXtqBRd53CAHlREDI33Rn/JLY3NYgMLQ==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+
+ '@angular-devkit/schematics@19.2.8':
+ resolution: {integrity: sha512-QsmFuYdAyeCyg9WF/AJBhFXDUfCwmDFTEbsv5t5KPSP6slhk0GoLNZApniiFytU2siRlSxVNpve2uATyYuAYkQ==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+
+ '@aws-crypto/crc32@5.2.0':
+ resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-crypto/crc32c@5.2.0':
+ resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==}
+
+ '@aws-crypto/sha1-browser@5.2.0':
+ resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==}
+
+ '@aws-crypto/sha256-browser@5.2.0':
+ resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
+
+ '@aws-crypto/sha256-js@5.2.0':
+ resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
+
+ '@aws-crypto/util@5.2.0':
+ resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
+
+ '@aws-sdk/client-s3@3.850.0':
+ resolution: {integrity: sha512-tX5bUfqiLOh6jtAlaiAuOUKFYh8KDG9k9zFLUdgGplC5TP47AYTreUEg+deCTHo4DD3YCvrLuyZ8tIDgKu7neQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/client-sso@3.848.0':
+ resolution: {integrity: sha512-mD+gOwoeZQvbecVLGoCmY6pS7kg02BHesbtIxUj+PeBqYoZV5uLvjUOmuGfw1SfoSobKvS11urxC9S7zxU/Maw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/core@3.846.0':
+ resolution: {integrity: sha512-7CX0pM906r4WSS68fCTNMTtBCSkTtf3Wggssmx13gD40gcWEZXsU00KzPp1bYheNRyPlAq3rE22xt4wLPXbuxA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-env@3.846.0':
+ resolution: {integrity: sha512-QuCQZET9enja7AWVISY+mpFrEIeHzvkx/JEEbHYzHhUkxcnC2Kq2c0bB7hDihGD0AZd3Xsm653hk1O97qu69zg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-http@3.846.0':
+ resolution: {integrity: sha512-Jh1iKUuepdmtreMYozV2ePsPcOF5W9p3U4tWhi3v6nDvz0GsBjzjAROW+BW8XMz9vAD3I9R+8VC3/aq63p5nlw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-ini@3.848.0':
+ resolution: {integrity: sha512-r6KWOG+En2xujuMhgZu7dzOZV3/M5U/5+PXrG8dLQ3rdPRB3vgp5tc56KMqLwm/EXKRzAOSuw/UE4HfNOAB8Hw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-node@3.848.0':
+ resolution: {integrity: sha512-AblNesOqdzrfyASBCo1xW3uweiSro4Kft9/htdxLeCVU1KVOnFWA5P937MNahViRmIQm2sPBCqL8ZG0u9lnh5g==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-process@3.846.0':
+ resolution: {integrity: sha512-mEpwDYarJSH+CIXnnHN0QOe0MXI+HuPStD6gsv3z/7Q6ESl8KRWon3weFZCDnqpiJMUVavlDR0PPlAFg2MQoPg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-sso@3.848.0':
+ resolution: {integrity: sha512-pozlDXOwJZL0e7w+dqXLgzVDB7oCx4WvtY0sk6l4i07uFliWF/exupb6pIehFWvTUcOvn5aFTTqcQaEzAD5Wsg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-web-identity@3.848.0':
+ resolution: {integrity: sha512-D1fRpwPxtVDhcSc/D71exa2gYweV+ocp4D3brF0PgFd//JR3XahZ9W24rVnTQwYEcK9auiBZB89Ltv+WbWN8qw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-bucket-endpoint@3.840.0':
+ resolution: {integrity: sha512-+gkQNtPwcSMmlwBHFd4saVVS11In6ID1HczNzpM3MXKXRBfSlbZJbCt6wN//AZ8HMklZEik4tcEOG0qa9UY8SQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-expect-continue@3.840.0':
+ resolution: {integrity: sha512-iJg2r6FKsKKvdiU4oCOuCf7Ro/YE0Q2BT/QyEZN3/Rt8Nr4SAZiQOlcBXOCpGvuIKOEAhvDOUnW3aDHL01PdVw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-flexible-checksums@3.846.0':
+ resolution: {integrity: sha512-CdkeVfkwt3+bDLhmOwBxvkUf6oY9iUhvosaUnqkoPsOqIiUEN54yTGOnO8A0wLz6mMsZ6aBlfFrQhFnxt3c+yw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-host-header@3.840.0':
+ resolution: {integrity: sha512-ub+hXJAbAje94+Ya6c6eL7sYujoE8D4Bumu1NUI8TXjUhVVn0HzVWQjpRLshdLsUp1AW7XyeJaxyajRaJQ8+Xg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-location-constraint@3.840.0':
+ resolution: {integrity: sha512-KVLD0u0YMF3aQkVF8bdyHAGWSUY6N1Du89htTLgqCcIhSxxAJ9qifrosVZ9jkAzqRW99hcufyt2LylcVU2yoKQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-logger@3.840.0':
+ resolution: {integrity: sha512-lSV8FvjpdllpGaRspywss4CtXV8M7NNNH+2/j86vMH+YCOZ6fu2T/TyFd/tHwZ92vDfHctWkRbQxg0bagqwovA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-recursion-detection@3.840.0':
+ resolution: {integrity: sha512-Gu7lGDyfddyhIkj1Z1JtrY5NHb5+x/CRiB87GjaSrKxkDaydtX2CU977JIABtt69l9wLbcGDIQ+W0uJ5xPof7g==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-sdk-s3@3.846.0':
+ resolution: {integrity: sha512-jP9x+2Q87J5l8FOP+jlAd7vGLn0cC6G9QGmf386e5OslBPqxXKcl3RjqGLIOKKos2mVItY3ApP5xdXQx7jGTVA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-ssec@3.840.0':
+ resolution: {integrity: sha512-CBZP9t1QbjDFGOrtnUEHL1oAvmnCUUm7p0aPNbIdSzNtH42TNKjPRN3TuEIJDGjkrqpL3MXyDSmNayDcw/XW7Q==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-user-agent@3.848.0':
+ resolution: {integrity: sha512-rjMuqSWJEf169/ByxvBqfdei1iaduAnfolTshsZxwcmLIUtbYrFUmts0HrLQqsAG8feGPpDLHA272oPl+NTCCA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/nested-clients@3.848.0':
+ resolution: {integrity: sha512-joLsyyo9u61jnZuyYzo1z7kmS7VgWRAkzSGESVzQHfOA1H2PYeUFek6vLT4+c9xMGrX/Z6B0tkRdzfdOPiatLg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/region-config-resolver@3.840.0':
+ resolution: {integrity: sha512-Qjnxd/yDv9KpIMWr90ZDPtRj0v75AqGC92Lm9+oHXZ8p1MjG5JE2CW0HL8JRgK9iKzgKBL7pPQRXI8FkvEVfrA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/s3-request-presigner@3.850.0':
+ resolution: {integrity: sha512-eFvMUCJXoVTkAxkqHKn125mLMGtNa76+oD3wV97ScXUZuL5liaj+kAN9nSqRiQ5vaCz5gsOeB9t/ba/cTGATjg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/signature-v4-multi-region@3.846.0':
+ resolution: {integrity: sha512-ZMfIMxUljqZzPJGOcraC6erwq/z1puNMU35cO1a/WdhB+LdYknMn1lr7SJuH754QwNzzIlZbEgg4hoHw50+DpQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/token-providers@3.848.0':
+ resolution: {integrity: sha512-oNPyM4+Di2Umu0JJRFSxDcKQ35+Chl/rAwD47/bS0cDPI8yrao83mLXLeDqpRPHyQW4sXlP763FZcuAibC0+mg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/types@3.840.0':
+ resolution: {integrity: sha512-xliuHaUFZxEx1NSXeLLZ9Dyu6+EJVQKEoD+yM+zqUo3YDZ7medKJWY6fIOKiPX/N7XbLdBYwajb15Q7IL8KkeA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-arn-parser@3.804.0':
+ resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-endpoints@3.848.0':
+ resolution: {integrity: sha512-fY/NuFFCq/78liHvRyFKr+aqq1aA/uuVSANjzr5Ym8c+9Z3HRPE9OrExAHoMrZ6zC8tHerQwlsXYYH5XZ7H+ww==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-format-url@3.840.0':
+ resolution: {integrity: sha512-VB1PWyI1TQPiPvg4w7tgUGGQER1xxXPNUqfh3baxUSFi1Oh8wHrDnFywkxLm3NMmgDmnLnSZ5Q326qAoyqKLSg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-locate-window@3.804.0':
+ resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-user-agent-browser@3.840.0':
+ resolution: {integrity: sha512-JdyZM3EhhL4PqwFpttZu1afDpPJCCc3eyZOLi+srpX11LsGj6sThf47TYQN75HT1CarZ7cCdQHGzP2uy3/xHfQ==}
+
+ '@aws-sdk/util-user-agent-node@3.848.0':
+ resolution: {integrity: sha512-Zz1ft9NiLqbzNj/M0jVNxaoxI2F4tGXN0ZbZIj+KJ+PbJo+w5+Jo6d0UDAtbj3AEd79pjcCaP4OA9NTVzItUdw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ aws-crt: '>=1.0.0'
+ peerDependenciesMeta:
+ aws-crt:
+ optional: true
+
+ '@aws-sdk/xml-builder@3.821.0':
+ resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==}
+ engines: {node: '>=18.0.0'}
+
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.28.0':
+ resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.28.0':
+ resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.0':
+ resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.27.3':
+ resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.27.1':
+ resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.27.6':
+ resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.28.0':
+ resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-syntax-async-generators@7.8.4':
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-bigint@7.8.3':
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-properties@7.12.13':
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-static-block@7.14.5':
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.27.1':
+ resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-json-strings@7.8.3':
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.27.1':
+ resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4':
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3':
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3':
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3':
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5':
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-top-level-await@7.14.5':
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.27.1':
+ resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/runtime@7.27.6':
+ resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.27.2':
+ resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.0':
+ resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.0':
+ resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==}
+ engines: {node: '>=6.9.0'}
+
+ '@bcoe/v8-coverage@0.2.3':
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+
+ '@colors/colors@1.5.0':
+ resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
+ engines: {node: '>=0.1.90'}
+
+ '@commitlint/cli@19.8.1':
+ resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==}
+ engines: {node: '>=v18'}
+ hasBin: true
+
+ '@commitlint/config-conventional@19.8.1':
+ resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/config-validator@19.8.1':
+ resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/ensure@19.8.1':
+ resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/execute-rule@19.8.1':
+ resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/format@19.8.1':
+ resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/is-ignored@19.8.1':
+ resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/lint@19.8.1':
+ resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/load@19.8.1':
+ resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/message@19.8.1':
+ resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/parse@19.8.1':
+ resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/read@19.8.1':
+ resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/resolve-extends@19.8.1':
+ resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/rules@19.8.1':
+ resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/to-lines@19.8.1':
+ resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/top-level@19.8.1':
+ resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/types@19.8.1':
+ resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==}
+ engines: {node: '>=v18'}
+
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
+ '@css-inline/css-inline-android-arm-eabi@0.14.1':
+ resolution: {integrity: sha512-LNUR8TY4ldfYi0mi/d4UNuHJ+3o8yLQH9r2Nt6i4qeg1i7xswfL3n/LDLRXvGjBYqeEYNlhlBQzbPwMX1qrU6A==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@css-inline/css-inline-android-arm64@0.14.1':
+ resolution: {integrity: sha512-tH5us0NYGoTNBHOUHVV7j9KfJ4DtFOeTLA3cM0XNoMtArNu2pmaaBMFJPqECzavfXkLc7x5Z22UPZYjoyHfvCA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@css-inline/css-inline-darwin-arm64@0.14.1':
+ resolution: {integrity: sha512-QE5W1YRIfRayFrtrcK/wqEaxNaqLULPI0gZB4ArbFRd3d56IycvgBasDTHPre5qL2cXCO3VyPx+80XyHOaVkag==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@css-inline/css-inline-darwin-x64@0.14.1':
+ resolution: {integrity: sha512-mAvv2sN8awNFsbvBzlFkZPbCNZ6GCWY5/YcIz7V5dPYw+bHHRbjnlkNTEZq5BsDxErVrMIGvz05PGgzuNvZvdQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@css-inline/css-inline-linux-arm-gnueabihf@0.14.1':
+ resolution: {integrity: sha512-AWC44xL0X7BgKvrWEqfSqkT2tJA5kwSGrAGT+m0gt11wnTYySvQ6YpX0fTY9i3ppYGu4bEdXFjyK2uY1DTQMHA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@css-inline/css-inline-linux-arm64-gnu@0.14.1':
+ resolution: {integrity: sha512-drj0ciiJgdP3xKXvNAt4W+FH4KKMs8vB5iKLJ3HcH07sNZj58Sx++2GxFRS1el3p+GFp9OoYA6dgouJsGEqt0Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@css-inline/css-inline-linux-arm64-musl@0.14.1':
+ resolution: {integrity: sha512-FzknI+st8eA8YQSdEJU9ykcM0LZjjigBuynVF5/p7hiMm9OMP8aNhWbhZ8LKJpKbZrQsxSGS4g9Vnr6n6FiSdQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@css-inline/css-inline-linux-x64-gnu@0.14.1':
+ resolution: {integrity: sha512-yubbEye+daDY/4vXnyASAxH88s256pPati1DfVoZpU1V0+KP0BZ1dByZOU1ktExurbPH3gZOWisAnBE9xon0Uw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@css-inline/css-inline-linux-x64-musl@0.14.1':
+ resolution: {integrity: sha512-6CRAZzoy1dMLPC/tns2rTt1ZwPo0nL/jYBEIAsYTCWhfAnNnpoLKVh5Nm+fSU3OOwTTqU87UkGrFJhObD/wobQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@css-inline/css-inline-win32-x64-msvc@0.14.1':
+ resolution: {integrity: sha512-nzotGiaiuiQW78EzsiwsHZXbxEt6DiMUFcDJ6dhiliomXxnlaPyBfZb6/FMBgRJOf6sknDt/5695OttNmbMYzg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@css-inline/css-inline@0.14.1':
+ resolution: {integrity: sha512-u4eku+hnPqqHIGq/ZUQcaP0TrCbYeLIYBaK7qClNRGZbnh8RC4gVxLEIo8Pceo1nOK9E5G4Lxzlw5KnXcvflfA==}
+ engines: {node: '>= 10'}
+
+ '@emnapi/core@1.4.3':
+ resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==}
+
+ '@emnapi/runtime@1.4.3':
+ resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
+
+ '@emnapi/wasi-threads@1.0.2':
+ resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==}
+
+ '@eslint-community/eslint-utils@4.7.0':
+ resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.21.0':
+ resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.3.0':
+ resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.14.0':
+ resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.15.1':
+ resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.30.1':
+ resolution: {integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.3.3':
+ resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@fastify/accept-negotiator@2.0.1':
+ resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==}
+
+ '@fastify/ajv-compiler@4.0.2':
+ resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==}
+
+ '@fastify/busboy@1.2.1':
+ resolution: {integrity: sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==}
+ engines: {node: '>=14'}
+
+ '@fastify/cors@11.0.1':
+ resolution: {integrity: sha512-dmZaE7M1f4SM8ZZuk5RhSsDJ+ezTgI7v3HHRj8Ow9CneczsPLZV6+2j2uwdaSLn8zhTv6QV0F4ZRcqdalGx1pQ==}
+
+ '@fastify/error@4.2.0':
+ resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==}
+
+ '@fastify/fast-json-stringify-compiler@5.0.3':
+ resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==}
+
+ '@fastify/formbody@8.0.2':
+ resolution: {integrity: sha512-84v5J2KrkXzjgBpYnaNRPqwgMsmY7ZDjuj0YVuMR3NXCJRCgKEZy/taSP1wUYGn0onfxJpLyRGDLa+NMaDJtnA==}
+
+ '@fastify/forwarded@3.0.0':
+ resolution: {integrity: sha512-kJExsp4JCms7ipzg7SJ3y8DwmePaELHxKYtg+tZow+k0znUTf3cb+npgyqm8+ATZOdmfgfydIebPDWM172wfyA==}
+
+ '@fastify/merge-json-schemas@0.2.1':
+ resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==}
+
+ '@fastify/middie@9.0.3':
+ resolution: {integrity: sha512-7OYovKXp9UKYeVMcjcFLMcSpoMkmcZmfnG+eAvtdiatN35W7c+r9y1dRfpA+pfFVNuHGGqI3W+vDTmjvcfLcMA==}
+
+ '@fastify/proxy-addr@5.0.0':
+ resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==}
+
+ '@fastify/send@4.1.0':
+ resolution: {integrity: sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==}
+
+ '@fastify/static@8.2.0':
+ resolution: {integrity: sha512-PejC/DtT7p1yo3p+W7LiUtLMsV8fEvxAK15sozHy9t8kwo5r0uLYmhV/inURmGz1SkHZFz/8CNtHLPyhKcx4SQ==}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@inquirer/checkbox@4.1.9':
+ resolution: {integrity: sha512-DBJBkzI5Wx4jFaYm221LHvAhpKYkhVS0k9plqHwaHhofGNxvYB7J3Bz8w+bFJ05zaMb0sZNHo4KdmENQFlNTuQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/confirm@5.1.13':
+ resolution: {integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/core@10.1.14':
+ resolution: {integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/editor@4.2.14':
+ resolution: {integrity: sha512-yd2qtLl4QIIax9DTMZ1ZN2pFrrj+yL3kgIWxm34SS6uwCr0sIhsNyudUjAo5q3TqI03xx4SEBkUJqZuAInp9uA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/expand@4.0.16':
+ resolution: {integrity: sha512-oiDqafWzMtofeJyyGkb1CTPaxUkjIcSxePHHQCfif8t3HV9pHcw1Kgdw3/uGpDvaFfeTluwQtWiqzPVjAqS3zA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/figures@1.0.12':
+ resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==}
+ engines: {node: '>=18'}
+
+ '@inquirer/input@4.2.0':
+ resolution: {integrity: sha512-opqpHPB1NjAmDISi3uvZOTrjEEU5CWVu/HBkDby8t93+6UxYX0Z7Ps0Ltjm5sZiEbWenjubwUkivAEYQmy9xHw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/number@3.0.16':
+ resolution: {integrity: sha512-kMrXAaKGavBEoBYUCgualbwA9jWUx2TjMA46ek+pEKy38+LFpL9QHlTd8PO2kWPUgI/KB+qi02o4y2rwXbzr3Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/password@4.0.16':
+ resolution: {integrity: sha512-g8BVNBj5Zeb5/Y3cSN+hDUL7CsIFDIuVxb9EPty3lkxBaYpjL5BNRKSYOF9yOLe+JOcKFd+TSVeADQ4iSY7rbg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/prompts@7.3.2':
+ resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/prompts@7.4.1':
+ resolution: {integrity: sha512-UlmM5FVOZF0gpoe1PT/jN4vk8JmpIWBlMvTL8M+hlvPmzN89K6z03+IFmyeu/oFCenwdwHDr2gky7nIGSEVvlA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/rawlist@4.1.4':
+ resolution: {integrity: sha512-5GGvxVpXXMmfZNtvWw4IsHpR7RzqAR624xtkPd1NxxlV5M+pShMqzL4oRddRkg8rVEOK9fKdJp1jjVML2Lr7TQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/search@3.0.16':
+ resolution: {integrity: sha512-POCmXo+j97kTGU6aeRjsPyuCpQQfKcMXdeTMw708ZMtWrj5aykZvlUxH4Qgz3+Y1L/cAVZsSpA+UgZCu2GMOMg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/select@4.2.4':
+ resolution: {integrity: sha512-unTppUcTjmnbl/q+h8XeQDhAqIOmwWYWNyiiP2e3orXrg6tOaa5DHXja9PChCSbChOsktyKgOieRZFnajzxoBg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/type@3.0.7':
+ resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@ioredis/commands@1.2.0':
+ resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
+
+ '@isaacs/balanced-match@4.0.1':
+ resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/brace-expansion@5.0.0':
+ resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
+ engines: {node: '>=8'}
+
+ '@istanbuljs/schema@0.1.3':
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ engines: {node: '>=8'}
+
+ '@jercle/yargonaut@1.1.5':
+ resolution: {integrity: sha512-zBp2myVvBHp1UaJsNTyS6q4UDKT7eRiqTS4oNTS6VQMd6mpxYOdbeK4pY279cDCdakGy6hG0J3ejoXZVsPwHqw==}
+
+ '@jest/console@29.7.0':
+ resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/core@29.7.0':
+ resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/environment@29.7.0':
+ resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/expect-utils@29.7.0':
+ resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/expect@29.7.0':
+ resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/fake-timers@29.7.0':
+ resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/globals@29.7.0':
+ resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/reporters@29.7.0':
+ resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/schemas@29.6.3':
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/source-map@29.6.3':
+ resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/test-result@29.7.0':
+ resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/test-sequencer@29.7.0':
+ resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/transform@29.7.0':
+ resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/types@29.6.3':
+ resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jridgewell/gen-mapping@0.3.12':
+ resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/source-map@0.3.10':
+ resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==}
+
+ '@jridgewell/sourcemap-codec@1.5.4':
+ resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+
+ '@jridgewell/trace-mapping@0.3.29':
+ resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@keyv/redis@4.5.0':
+ resolution: {integrity: sha512-0uoeT8Ik0R22mqxB19Cf3nDuxCH8dppEMxL98o4LvI/rgVeWS/2iVWyjmZR6yNo6jSchVraXG2Y44iJwj++2IQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ keyv: ^5.3.4
+
+ '@keyv/serialize@1.0.3':
+ resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==}
+
+ '@lukeed/csprng@1.1.0':
+ resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==}
+ engines: {node: '>=8'}
+
+ '@lukeed/ms@2.0.2':
+ resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
+ engines: {node: '>=8'}
+
+ '@mapbox/node-pre-gyp@1.0.11':
+ resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
+ hasBin: true
+
+ '@microsoft/tsdoc@0.15.1':
+ resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==}
+
+ '@mikro-orm/cli@6.4.16':
+ resolution: {integrity: sha512-O1uP+5j/xMYR8aPTamzQKYJnL1GCootGLR5UVH1bQJS9/ukFuAKDsu6VpJkJxE9j0TLxAhTmo56iZFUIS04sFQ==}
+ engines: {node: '>= 18.12.0'}
+ hasBin: true
+
+ '@mikro-orm/core@6.4.16':
+ resolution: {integrity: sha512-BW/My1VlI0R25Eojdh0UiET8J+mEruThksGVfllEnjJQ0uwGs3mm/TbMclv0g+d7Qp4+mpzDQU4+lIo8okHYsw==}
+ engines: {node: '>= 18.12.0'}
+
+ '@mikro-orm/knex@6.4.16':
+ resolution: {integrity: sha512-2xQodj3uh8maPGsLR7PZMmECtdyLutGxzzrGrrhSX2b+7v9k4MeMazTi4/627hJvivdUpuofypW5zMpw3TU1vQ==}
+ engines: {node: '>= 18.12.0'}
+ peerDependencies:
+ '@mikro-orm/core': ^6.0.0
+ better-sqlite3: '*'
+ libsql: '*'
+ mariadb: '*'
+ peerDependenciesMeta:
+ better-sqlite3:
+ optional: true
+ libsql:
+ optional: true
+ mariadb:
+ optional: true
+
+ '@mikro-orm/nestjs@6.1.1':
+ resolution: {integrity: sha512-aluD3eTeuCvIePDk5UBanHIhu1zAJQXqWAg47MZdHJmFkNuXn62DCXbD2c4X5TCpKW/m0zjba22ilyZ/AFG9qg==}
+ engines: {node: '>= 18.12.0'}
+ peerDependencies:
+ '@mikro-orm/core': ^6.0.0 || ^6.0.0-dev.0 || ^7.0.0-dev.0
+ '@nestjs/common': ^10.0.0 || ^11.0.5
+ '@nestjs/core': ^10.0.0 || ^11.0.5
+
+ '@mikro-orm/postgresql@6.4.16':
+ resolution: {integrity: sha512-i14CvyLrtMhQJMk/X3xTT2Mgc8j0VtSWPqhKBN+euiPxbee4u5k39TlJAly72k3luknFBCzpKCh3ZNSGDZ+j4Q==}
+ engines: {node: '>= 18.12.0'}
+ peerDependencies:
+ '@mikro-orm/core': ^6.0.0
+
+ '@mikro-orm/seeder@6.4.16':
+ resolution: {integrity: sha512-5wE8gvZZYhD7N9eGsgGfK+/oe74mCgixZaE4ClSo7xUSL6fJTpzctAU6sr4NTHo3QclNTxtiI5syJD2VByWQhg==}
+ engines: {node: '>= 18.12.0'}
+ peerDependencies:
+ '@mikro-orm/core': ^6.0.0
+
+ '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3':
+ resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3':
+ resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3':
+ resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3':
+ resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3':
+ resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3':
+ resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/nice-android-arm-eabi@1.0.4':
+ resolution: {integrity: sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@napi-rs/nice-android-arm64@1.0.4':
+ resolution: {integrity: sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/nice-darwin-arm64@1.0.4':
+ resolution: {integrity: sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/nice-darwin-x64@1.0.4':
+ resolution: {integrity: sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/nice-freebsd-x64@1.0.4':
+ resolution: {integrity: sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/nice-linux-arm-gnueabihf@1.0.4':
+ resolution: {integrity: sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/nice-linux-arm64-gnu@1.0.4':
+ resolution: {integrity: sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/nice-linux-arm64-musl@1.0.4':
+ resolution: {integrity: sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/nice-linux-ppc64-gnu@1.0.4':
+ resolution: {integrity: sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==}
+ engines: {node: '>= 10'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@napi-rs/nice-linux-riscv64-gnu@1.0.4':
+ resolution: {integrity: sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@napi-rs/nice-linux-s390x-gnu@1.0.4':
+ resolution: {integrity: sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==}
+ engines: {node: '>= 10'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@napi-rs/nice-linux-x64-gnu@1.0.4':
+ resolution: {integrity: sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/nice-linux-x64-musl@1.0.4':
+ resolution: {integrity: sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/nice-win32-arm64-msvc@1.0.4':
+ resolution: {integrity: sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/nice-win32-ia32-msvc@1.0.4':
+ resolution: {integrity: sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/nice-win32-x64-msvc@1.0.4':
+ resolution: {integrity: sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/nice@1.0.4':
+ resolution: {integrity: sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==}
+ engines: {node: '>= 10'}
+
+ '@napi-rs/wasm-runtime@0.2.11':
+ resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==}
+
+ '@nest-lab/fastify-multer@1.3.0':
+ resolution: {integrity: sha512-/4LocG7pBhwwbqN33YiPbv+93NdxlL/z/B2EL+hpulIr+qn2eLs/CxMg8jHCmtGCodA7NFHFERqIh75Fc2fryQ==}
+ peerDependencies:
+ '@nestjs/common': ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@nestjs/platform-fastify': ^9.0.0 || ^10.0.0 || ^11.0.0
+ rxjs: ^7.0.0
+
+ '@nest-lab/throttler-storage-redis@1.1.0':
+ resolution: {integrity: sha512-7DW8MuqoB+ubu8cWby9Vw56eAFqsHFfowEflHbmmAF2sNByRdzcR4ddcyoYLwL3zG53nLmvzUa4EXoHKB4RoaQ==}
+ peerDependencies:
+ '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@nestjs/core': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@nestjs/throttler': '>=6.0.0'
+ ioredis: '>=5.0.0'
+ reflect-metadata: ^0.2.1
+
+ '@nestjs-modules/mailer@2.0.2':
+ resolution: {integrity: sha512-+z4mADQasg0H1ZaGu4zZTuKv2pu+XdErqx99PLFPzCDNTN/q9U59WPgkxVaHnsvKHNopLj5Xap7G4ZpptduoYw==}
+ peerDependencies:
+ '@nestjs/common': '>=7.0.9'
+ '@nestjs/core': '>=7.0.9'
+ nodemailer: '>=6.4.6'
+
+ '@nestjs/axios@4.0.0':
+ resolution: {integrity: sha512-1cB+Jyltu/uUPNQrpUimRHEQHrnQrpLzVj6dU3dgn6iDDDdahr10TgHFGTmw5VuJ9GzKZsCLDL78VSwJAs/9JQ==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ axios: ^1.3.1
+ rxjs: ^7.0.0
+
+ '@nestjs/bull-shared@11.0.2':
+ resolution: {integrity: sha512-dFlttJvBqIFD6M8JVFbkrR4Feb39OTAJPJpFVILU50NOJCM4qziRw3dSNG84Q3v+7/M6xUGMFdZRRGvBBKxoSA==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ '@nestjs/core': ^10.0.0 || ^11.0.0
+
+ '@nestjs/bullmq@11.0.2':
+ resolution: {integrity: sha512-Lq6lGpKkETsm0RDcUktlzsthFoE3A5QTMp2FwPi1eztKqKD6/90KS1TcnC9CJFzjpUaYnQzIMrlNs55e+/wsHA==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ '@nestjs/core': ^10.0.0 || ^11.0.0
+ bullmq: ^3.0.0 || ^4.0.0 || ^5.0.0
+
+ '@nestjs/cache-manager@3.0.1':
+ resolution: {integrity: sha512-4UxTnR0fsmKL5YDalU2eLFVnL+OBebWUpX+hEduKGncrVKH4PPNoiRn1kXyOCjmzb0UvWgqubpssNouc8e0MCw==}
+ peerDependencies:
+ '@nestjs/common': ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@nestjs/core': ^9.0.0 || ^10.0.0 || ^11.0.0
+ cache-manager: '>=6'
+ keyv: '>=5'
+ rxjs: ^7.8.1
+
+ '@nestjs/cli@11.0.7':
+ resolution: {integrity: sha512-svrP8j1R0/lQVJ8ZI3BlDtuZxmkvVJokUJSB04sr6uibunk2wHeVDDVLZvYBUorCdGU/RHJl1IufhqUBM91vAQ==}
+ engines: {node: '>= 20.11'}
+ hasBin: true
+ peerDependencies:
+ '@swc/cli': ^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0
+ '@swc/core': ^1.3.62
+ peerDependenciesMeta:
+ '@swc/cli':
+ optional: true
+ '@swc/core':
+ optional: true
+
+ '@nestjs/common@11.1.3':
+ resolution: {integrity: sha512-ogEK+GriWodIwCw6buQ1rpcH4Kx+G7YQ9EwuPySI3rS05pSdtQ++UhucjusSI9apNidv+QURBztJkRecwwJQXg==}
+ peerDependencies:
+ class-transformer: '>=0.4.1'
+ class-validator: '>=0.13.2'
+ reflect-metadata: ^0.1.12 || ^0.2.0
+ rxjs: ^7.1.0
+ peerDependenciesMeta:
+ class-transformer:
+ optional: true
+ class-validator:
+ optional: true
+
+ '@nestjs/config@4.0.2':
+ resolution: {integrity: sha512-McMW6EXtpc8+CwTUwFdg6h7dYcBUpH5iUILCclAsa+MbCEvC9ZKu4dCHRlJqALuhjLw97pbQu62l4+wRwGeZqA==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ rxjs: ^7.1.0
+
+ '@nestjs/core@11.1.3':
+ resolution: {integrity: sha512-5lTni0TCh8x7bXETRD57pQFnKnEg1T6M+VLE7wAmyQRIecKQU+2inRGZD+A4v2DC1I04eA0WffP0GKLxjOKlzw==}
+ engines: {node: '>= 20'}
+ peerDependencies:
+ '@nestjs/common': ^11.0.0
+ '@nestjs/microservices': ^11.0.0
+ '@nestjs/platform-express': ^11.0.0
+ '@nestjs/websockets': ^11.0.0
+ reflect-metadata: ^0.1.12 || ^0.2.0
+ rxjs: ^7.1.0
+ peerDependenciesMeta:
+ '@nestjs/microservices':
+ optional: true
+ '@nestjs/platform-express':
+ optional: true
+ '@nestjs/websockets':
+ optional: true
+
+ '@nestjs/jwt@11.0.0':
+ resolution: {integrity: sha512-v7YRsW3Xi8HNTsO+jeHSEEqelX37TVWgwt+BcxtkG/OfXJEOs6GZdbdza200d6KqId1pJQZ6UPj1F0M6E+mxaA==}
+ peerDependencies:
+ '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+
+ '@nestjs/mapped-types@2.1.0':
+ resolution: {integrity: sha512-W+n+rM69XsFdwORF11UqJahn4J3xi4g/ZEOlJNL6KoW5ygWSmBB2p0S2BZ4FQeS/NDH72e6xIcu35SfJnE8bXw==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ class-transformer: ^0.4.0 || ^0.5.0
+ class-validator: ^0.13.0 || ^0.14.0
+ reflect-metadata: ^0.1.12 || ^0.2.0
+ peerDependenciesMeta:
+ class-transformer:
+ optional: true
+ class-validator:
+ optional: true
+
+ '@nestjs/passport@11.0.5':
+ resolution: {integrity: sha512-ulQX6mbjlws92PIM15Naes4F4p2JoxGnIJuUsdXQPT+Oo2sqQmENEZXM7eYuimocfHnKlcfZOuyzbA33LwUlOQ==}
+ peerDependencies:
+ '@nestjs/common': ^10.0.0 || ^11.0.0
+ passport: ^0.5.0 || ^0.6.0 || ^0.7.0
+
+ '@nestjs/platform-fastify@11.1.3':
+ resolution: {integrity: sha512-SMIjGV6eAxQv6+/2OumIdNivVLebql6THWjXv8Uh4dR1CI6ipp3gMbpoiYbHP7AGXv8pzuGmpakli86VP9P8NQ==}
+ peerDependencies:
+ '@fastify/static': ^8.0.0
+ '@fastify/view': ^10.0.0 || ^11.0.0
+ '@nestjs/common': ^11.0.0
+ '@nestjs/core': ^11.0.0
+ peerDependenciesMeta:
+ '@fastify/static':
+ optional: true
+ '@fastify/view':
+ optional: true
+
+ '@nestjs/platform-socket.io@11.1.3':
+ resolution: {integrity: sha512-jQ+ccprmh3kKolBp+bb97zoaS3vKaiyeNqyctGqV4CSG8P6mXSaaUObWxAsw6Jdgn5YQAVEBWJ6FhvF4s6QZbg==}
+ peerDependencies:
+ '@nestjs/common': ^11.0.0
+ '@nestjs/websockets': ^11.0.0
+ rxjs: ^7.1.0
+
+ '@nestjs/schematics@11.0.5':
+ resolution: {integrity: sha512-T50SCNyqCZ/fDssaOD7meBKLZ87ebRLaJqZTJPvJKjlib1VYhMOCwXYsr7bjMPmuPgiQHOwvppz77xN/m6GM7A==}
+ peerDependencies:
+ typescript: '>=4.8.2'
+
+ '@nestjs/swagger@11.2.0':
+ resolution: {integrity: sha512-5wolt8GmpNcrQv34tIPUtPoV1EeFbCetm40Ij3+M0FNNnf2RJ3FyWfuQvI8SBlcJyfaounYVTKzKHreFXsUyOg==}
+ peerDependencies:
+ '@fastify/static': ^8.0.0
+ '@nestjs/common': ^11.0.1
+ '@nestjs/core': ^11.0.1
+ class-transformer: '*'
+ class-validator: '*'
+ reflect-metadata: ^0.1.12 || ^0.2.0
+ peerDependenciesMeta:
+ '@fastify/static':
+ optional: true
+ class-transformer:
+ optional: true
+ class-validator:
+ optional: true
+
+ '@nestjs/testing@11.1.3':
+ resolution: {integrity: sha512-CeXG6/eEqgFIkPkmU00y18Dd3DLOIDFhPItzJK1SWckKo6IhcnfoRJzGx75bmuvUMjb51j6An96S/+MJ2ty9jA==}
+ peerDependencies:
+ '@nestjs/common': ^11.0.0
+ '@nestjs/core': ^11.0.0
+ '@nestjs/microservices': ^11.0.0
+ '@nestjs/platform-express': ^11.0.0
+ peerDependenciesMeta:
+ '@nestjs/microservices':
+ optional: true
+ '@nestjs/platform-express':
+ optional: true
+
+ '@nestjs/throttler@6.4.0':
+ resolution: {integrity: sha512-osL67i0PUuwU5nqSuJjtUJZMkxAnYB4VldgYUMGzvYRJDCqGRFMWbsbzm/CkUtPLRL30I8T74Xgt/OQxnYokiA==}
+ peerDependencies:
+ '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@nestjs/core': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+ reflect-metadata: ^0.1.13 || ^0.2.0
+
+ '@nestjs/websockets@11.1.3':
+ resolution: {integrity: sha512-IjhWKfRf0D247JxYIEs8USblJJbcxUsKJpzbCPaZ7TrVy4LrpG3IRQDlSTOw599TRIYP5ixyH9C0+v5DyaI9uA==}
+ peerDependencies:
+ '@nestjs/common': ^11.0.0
+ '@nestjs/core': ^11.0.0
+ '@nestjs/platform-socket.io': ^11.0.0
+ reflect-metadata: ^0.1.12 || ^0.2.0
+ rxjs: ^7.1.0
+ peerDependenciesMeta:
+ '@nestjs/platform-socket.io':
+ optional: true
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@nolyfill/is-core-module@1.0.39':
+ resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
+ engines: {node: '>=12.4.0'}
+
+ '@nuxt/opencollective@0.4.1':
+ resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==}
+ engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'}
+ hasBin: true
+
+ '@one-ini/wasm@0.1.1':
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+
+ '@paralleldrive/cuid2@2.2.2':
+ resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==}
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@pkgr/core@0.2.7':
+ resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@redis/client@1.6.1':
+ resolution: {integrity: sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==}
+ engines: {node: '>=14'}
+
+ '@rtsao/scc@1.1.0':
+ resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+
+ '@scarf/scarf@1.4.0':
+ resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==}
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
+ '@selderee/plugin-htmlparser2@0.11.0':
+ resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
+
+ '@sinclair/typebox@0.27.8':
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+
+ '@sindresorhus/is@5.6.0':
+ resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
+ engines: {node: '>=14.16'}
+
+ '@sinonjs/commons@3.0.1':
+ resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
+
+ '@sinonjs/fake-timers@10.3.0':
+ resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+
+ '@smithy/abort-controller@4.0.4':
+ resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/chunked-blob-reader-native@4.0.0':
+ resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/chunked-blob-reader@5.0.0':
+ resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/config-resolver@4.1.4':
+ resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/core@3.7.2':
+ resolution: {integrity: sha512-JoLw59sT5Bm8SAjFCYZyuCGxK8y3vovmoVbZWLDPTH5XpPEIwpFd9m90jjVMwoypDuB/SdVgje5Y4T7w50lJaw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/credential-provider-imds@4.0.6':
+ resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/eventstream-codec@4.0.4':
+ resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/eventstream-serde-browser@4.0.4':
+ resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/eventstream-serde-config-resolver@4.1.2':
+ resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/eventstream-serde-node@4.0.4':
+ resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/eventstream-serde-universal@4.0.4':
+ resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/fetch-http-handler@5.1.0':
+ resolution: {integrity: sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/hash-blob-browser@4.0.4':
+ resolution: {integrity: sha512-WszRiACJiQV3QG6XMV44i5YWlkrlsM5Yxgz4jvsksuu7LDXA6wAtypfPajtNTadzpJy3KyJPoWehYpmZGKUFIQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/hash-node@4.0.4':
+ resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/hash-stream-node@4.0.4':
+ resolution: {integrity: sha512-wHo0d8GXyVmpmMh/qOR0R7Y46/G1y6OR8U+bSTB4ppEzRxd1xVAQ9xOE9hOc0bSjhz0ujCPAbfNLkLrpa6cevg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/invalid-dependency@4.0.4':
+ resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/is-array-buffer@2.2.0':
+ resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/is-array-buffer@4.0.0':
+ resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/md5-js@4.0.4':
+ resolution: {integrity: sha512-uGLBVqcOwrLvGh/v/jw423yWHq/ofUGK1W31M2TNspLQbUV1Va0F5kTxtirkoHawODAZcjXTSGi7JwbnPcDPJg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-content-length@4.0.4':
+ resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-endpoint@4.1.17':
+ resolution: {integrity: sha512-S3hSGLKmHG1m35p/MObQCBCdRsrpbPU8B129BVzRqRfDvQqPMQ14iO4LyRw+7LNizYc605COYAcjqgawqi+6jA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-retry@4.1.18':
+ resolution: {integrity: sha512-bYLZ4DkoxSsPxpdmeapvAKy7rM5+25gR7PGxq2iMiecmbrRGBHj9s75N74Ylg+aBiw9i5jIowC/cLU2NR0qH8w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-serde@4.0.8':
+ resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-stack@4.0.4':
+ resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/node-config-provider@4.1.3':
+ resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/node-http-handler@4.1.0':
+ resolution: {integrity: sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/property-provider@4.0.4':
+ resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/protocol-http@5.1.2':
+ resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/querystring-builder@4.0.4':
+ resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/querystring-parser@4.0.4':
+ resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/service-error-classification@4.0.6':
+ resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/shared-ini-file-loader@4.0.4':
+ resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/signature-v4@5.1.2':
+ resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/smithy-client@4.4.9':
+ resolution: {integrity: sha512-mbMg8mIUAWwMmb74LoYiArP04zWElPzDoA1jVOp3or0cjlDMgoS6WTC3QXK0Vxoc9I4zdrX0tq6qsOmaIoTWEQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/types@4.3.1':
+ resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/url-parser@4.0.4':
+ resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-base64@4.0.0':
+ resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-body-length-browser@4.0.0':
+ resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-body-length-node@4.0.0':
+ resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-buffer-from@2.2.0':
+ resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-buffer-from@4.0.0':
+ resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-config-provider@4.0.0':
+ resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-defaults-mode-browser@4.0.25':
+ resolution: {integrity: sha512-pxEWsxIsOPLfKNXvpgFHBGFC3pKYKUFhrud1kyooO9CJai6aaKDHfT10Mi5iiipPXN/JhKAu3qX9o75+X85OdQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-defaults-mode-node@4.0.25':
+ resolution: {integrity: sha512-+w4n4hKFayeCyELZLfsSQG5mCC3TwSkmRHv4+el5CzFU8ToQpYGhpV7mrRzqlwKkntlPilT1HJy1TVeEvEjWOQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-endpoints@3.0.6':
+ resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-hex-encoding@4.0.0':
+ resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-middleware@4.0.4':
+ resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-retry@4.0.6':
+ resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-stream@4.2.3':
+ resolution: {integrity: sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-uri-escape@4.0.0':
+ resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-utf8@2.3.0':
+ resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-utf8@4.0.0':
+ resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-waiter@4.0.6':
+ resolution: {integrity: sha512-slcr1wdRbX7NFphXZOxtxRNA7hXAAtJAXJDE/wdoMAos27SIquVCKiSqfB6/28YzQ8FCsB5NKkhdM5gMADbqxg==}
+ engines: {node: '>=18.0.0'}
+
+ '@socket.io/component-emitter@3.1.2':
+ resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+
+ '@swc/cli@0.6.0':
+ resolution: {integrity: sha512-Q5FsI3Cw0fGMXhmsg7c08i4EmXCrcl+WnAxb6LYOLHw4JFFC3yzmx9LaXZ7QMbA+JZXbigU2TirI7RAfO0Qlnw==}
+ engines: {node: '>= 16.14.0'}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1.2.66
+ chokidar: ^4.0.1
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+
+ '@swc/core-darwin-arm64@1.12.9':
+ resolution: {integrity: sha512-GACFEp4nD6V+TZNR2JwbMZRHB+Yyvp14FrcmB6UCUYmhuNWjkxi+CLnEvdbuiKyQYv0zA+TRpCHZ+whEs6gwfA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.12.9':
+ resolution: {integrity: sha512-hv2kls7Ilkm2EpeJz+I9MCil7pGS3z55ZAgZfxklEuYsxpICycxeH+RNRv4EraggN44ms+FWCjtZFu0LGg2V3g==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.12.9':
+ resolution: {integrity: sha512-od9tDPiG+wMU9wKtd6y3nYJdNqgDOyLdgRRcrj1/hrbHoUPOM8wZQZdwQYGarw63iLXGgsw7t5HAF9Yc51ilFA==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.12.9':
+ resolution: {integrity: sha512-6qx1ka9LHcLzxIgn2Mros+CZLkHK2TawlXzi/h7DJeNnzi8F1Hw0Yzjp8WimxNCg6s2n+o3jnmin1oXB7gg8rw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-arm64-musl@1.12.9':
+ resolution: {integrity: sha512-yghFZWKPVVGbUdqiD7ft23G0JX6YFGDJPz9YbLLAwGuKZ9th3/jlWoQDAw1Naci31LQhVC+oIji6ozihSuwB2A==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-x64-gnu@1.12.9':
+ resolution: {integrity: sha512-SFUxyhWLZRNL8QmgGNqdi2Q43PNyFVkRZ2zIif30SOGFSxnxcf2JNeSeBgKIGVgaLSuk6xFVVCtJ3KIeaStgRg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-linux-x64-musl@1.12.9':
+ resolution: {integrity: sha512-9FB0wM+6idCGTI20YsBNBg9xSWtkDBymnpaTCsZM3qDc0l4uOpJMqbfWhQvp17x7r/ulZfb2QY8RDvQmCL6AcQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-win32-arm64-msvc@1.12.9':
+ resolution: {integrity: sha512-zHOusMVbOH9ik5RtRrMiGzLpKwxrPXgXkBm3SbUCa65HAdjV33NZ0/R9Rv1uPESALtEl2tzMYLUxYA5ECFDFhA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.12.9':
+ resolution: {integrity: sha512-aWZf0PqE0ot7tCuhAjRkDFf41AzzSQO0x2xRfTbnhpROp57BRJ/N5eee1VULO/UA2PIJRG7GKQky5bSGBYlFug==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.12.9':
+ resolution: {integrity: sha512-C25fYftXOras3P3anSUeXXIpxmEkdAcsIL9yrr0j1xepTZ/yKwpnQ6g3coj8UXdeJy4GTVlR6+Ow/QiBgZQNOg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.12.9':
+ resolution: {integrity: sha512-O+LfT2JlVMsIMWG9x+rdxg8GzpzeGtCZQfXV7cKc1PjIKUkLFf1QJ7okuseA4f/9vncu37dQ2ZcRrPKy0Ndd5g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': '>=0.5.17'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/types@0.1.23':
+ resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==}
+
+ '@szmarczak/http-timer@5.0.1':
+ resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
+ engines: {node: '>=14.16'}
+
+ '@tokenizer/inflate@0.2.7':
+ resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==}
+ engines: {node: '>=18'}
+
+ '@tokenizer/token@0.3.0':
+ resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
+
+ '@tsconfig/node10@1.0.11':
+ resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
+ '@tybys/wasm-util@0.9.0':
+ resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.20.7':
+ resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
+
+ '@types/bcrypt@5.0.2':
+ resolution: {integrity: sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==}
+
+ '@types/body-parser@1.19.6':
+ resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/conventional-commits-parser@5.0.1':
+ resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
+
+ '@types/cookiejar@2.1.5':
+ resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
+
+ '@types/cors@2.8.19':
+ resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
+
+ '@types/ejs@3.1.5':
+ resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==}
+
+ '@types/eslint-scope@3.7.7':
+ resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
+
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/express-serve-static-core@5.0.6':
+ resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==}
+
+ '@types/express@5.0.3':
+ resolution: {integrity: sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==}
+
+ '@types/graceful-fs@4.1.9':
+ resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
+
+ '@types/http-cache-semantics@4.0.4':
+ resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+
+ '@types/http-errors@2.0.5':
+ resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
+
+ '@types/istanbul-lib-coverage@2.0.6':
+ resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+
+ '@types/istanbul-lib-report@3.0.3':
+ resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
+
+ '@types/istanbul-reports@3.0.4':
+ resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
+
+ '@types/jest@29.5.14':
+ resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/jsonwebtoken@9.0.10':
+ resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==}
+
+ '@types/jsonwebtoken@9.0.7':
+ resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==}
+
+ '@types/methods@1.1.4':
+ resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
+
+ '@types/mime@1.3.5':
+ resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+
+ '@types/mjml-core@4.15.2':
+ resolution: {integrity: sha512-Q7SxFXgoX979HP57DEVsRI50TV8x1V4lfCA4Up9AvfINDM5oD/X9ARgfoyX1qS987JCnDLv85JjkqAjt3hZSiQ==}
+
+ '@types/mjml@4.7.4':
+ resolution: {integrity: sha512-vyi1vzWgMzFMwZY7GSZYX0GU0dmtC8vLHwpgk+NWmwbwRSrlieVyJ9sn5elodwUfklJM7yGl0zQeet1brKTWaQ==}
+
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
+
+ '@types/node@22.16.0':
+ resolution: {integrity: sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==}
+
+ '@types/nodemailer@6.4.17':
+ resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==}
+
+ '@types/passport-jwt@4.0.1':
+ resolution: {integrity: sha512-Y0Ykz6nWP4jpxgEUYq8NoVZeCQPo1ZndJLfapI249g1jHChvRfZRO/LS3tqu26YgAS/laI1qx98sYGz0IalRXQ==}
+
+ '@types/passport-strategy@0.2.38':
+ resolution: {integrity: sha512-GC6eMqqojOooq993Tmnmp7AUTbbQSgilyvpCYQjT+H6JfG/g6RGc7nXEniZlp0zyKJ0WUdOiZWLBZft9Yug1uA==}
+
+ '@types/passport@1.0.17':
+ resolution: {integrity: sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==}
+
+ '@types/pug@2.0.10':
+ resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
+
+ '@types/qs@6.14.0':
+ resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
+
+ '@types/range-parser@1.2.7':
+ resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
+
+ '@types/send@0.17.5':
+ resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
+
+ '@types/serve-static@1.15.8':
+ resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==}
+
+ '@types/stack-utils@2.0.3':
+ resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+
+ '@types/superagent@8.1.9':
+ resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
+
+ '@types/supertest@6.0.3':
+ resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==}
+
+ '@types/uuid@9.0.8':
+ resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
+
+ '@types/validator@13.15.2':
+ resolution: {integrity: sha512-y7pa/oEJJ4iGYBxOpfAKn5b9+xuihvzDVnC/OSvlVnGxVg0pOqmjiMafiJ1KVNQEaPZf9HsEp5icEwGg8uIe5Q==}
+
+ '@types/yargs-parser@21.0.3':
+ resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+
+ '@types/yargs@17.0.33':
+ resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
+
+ '@typescript-eslint/eslint-plugin@8.35.1':
+ resolution: {integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.35.1
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/parser@8.35.1':
+ resolution: {integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/project-service@8.35.1':
+ resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/scope-manager@8.35.1':
+ resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.35.1':
+ resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/type-utils@8.35.1':
+ resolution: {integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/types@8.35.1':
+ resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.35.1':
+ resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/utils@8.35.1':
+ resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/visitor-keys@8.35.1':
+ resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@unrs/resolver-binding-android-arm-eabi@1.10.1':
+ resolution: {integrity: sha512-zohDKXT1Ok0yhbVGff4YAg9HUs5ietG5GpvJBPFSApZnGe7uf2cd26DRhKZbn0Be6xHUZrSzP+RAgMmzyc71EA==}
+ cpu: [arm]
+ os: [android]
+
+ '@unrs/resolver-binding-android-arm64@1.10.1':
+ resolution: {integrity: sha512-tAN6k5UrTd4nicpA7s2PbjR/jagpDzAmvXFjbpTazUe5FRsFxVcBlS1F5Lzp5jtWU6bdiqRhSvd4X8rdpCffeA==}
+ cpu: [arm64]
+ os: [android]
+
+ '@unrs/resolver-binding-darwin-arm64@1.10.1':
+ resolution: {integrity: sha512-+FCsag8WkauI4dQ50XumCXdfvDCZEpMUnvZDsKMxfOisnEklpDFXc6ThY0WqybBYZbiwR5tWcFaZmI0G6b4vrg==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-darwin-x64@1.10.1':
+ resolution: {integrity: sha512-qYKGGm5wk71ONcXTMZ0+J11qQeOAPz3nw6VtqrBUUELRyXFyvK8cHhHsLBFR4GHnilc2pgY1HTB2TvdW9wO26Q==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-freebsd-x64@1.10.1':
+ resolution: {integrity: sha512-hOHMAhbvIQ63gkpgeNsXcWPSyvXH7ZEyeg254hY0Lp/hX8NdW+FsUWq73g9946Pc/BrcVI/I3C1cmZ4RCX9bNw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.10.1':
+ resolution: {integrity: sha512-6ds7+zzHJgTDmpe0gmFcOTvSUhG5oZukkt+cCsSb3k4Uiz2yEQB4iCRITX2hBwSW+p8gAieAfecITjgqCkswXw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.10.1':
+ resolution: {integrity: sha512-P7A0G2/jW00diNJyFeq4W9/nxovD62Ay8CMP4UK9OymC7qO7rG1a8Upad68/bdfpIOn7KSp7Aj/6lEW3yyznAA==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.10.1':
+ resolution: {integrity: sha512-Cg6xzdkrpltcTPO4At+A79zkC7gPDQIgosJmVV8M104ImB6KZi1MrNXgDYIAfkhUYjPzjNooEDFRAwwPadS7ZA==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.10.1':
+ resolution: {integrity: sha512-aNeg99bVkXa4lt+oZbjNRPC8ZpjJTKxijg/wILrJdzNyAymO2UC/HUK1UfDjt6T7U5p/mK24T3CYOi3/+YEQSA==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.10.1':
+ resolution: {integrity: sha512-ylz5ojeXrkPrtnzVhpCO+YegG63/aKhkoTlY8PfMfBfLaUG8v6m6iqrL7sBUKdVBgOB4kSTUPt9efQdA/Y3Z/w==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.10.1':
+ resolution: {integrity: sha512-xcWyhmJfXXOxK7lvE4+rLwBq+on83svlc0AIypfe6x4sMJR+S4oD7n9OynaQShfj2SufPw2KJAotnsNb+4nN2g==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.10.1':
+ resolution: {integrity: sha512-mW9JZAdOCyorgi1eLJr4gX7xS67WNG9XNPYj5P8VuttK72XNsmdw9yhOO4tDANMgiLXFiSFaiL1gEpoNtRPw/A==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.10.1':
+ resolution: {integrity: sha512-NZGKhBy6xkJ0k09cWNZz4DnhBcGlhDd3W+j7EYoNvf5TSwj2K6kbmfqTWITEgkvjsMUjm1wsrc4IJaH6VtjyHQ==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.10.1':
+ resolution: {integrity: sha512-VsjgckJ0gNMw7p0d8In6uPYr+s0p16yrT2rvG4v2jUpEMYkpnfnCiALa9SWshbvlGjKQ98Q2x19agm3iFk8w8Q==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-musl@1.10.1':
+ resolution: {integrity: sha512-idMnajMeejnaFi0Mx9UTLSYFDAOTfAEP7VjXNgxKApso3Eu2Njs0p2V95nNIyFi4oQVGFmIuCkoznAXtF/Zbmw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-wasm32-wasi@1.10.1':
+ resolution: {integrity: sha512-7jyhjIRNFjzlr8x5pth6Oi9hv3a7ubcVYm2GBFinkBQKcFhw4nIs5BtauSNtDW1dPIGrxF0ciynCZqzxMrYMsg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.10.1':
+ resolution: {integrity: sha512-TY79+N+Gkoo7E99K+zmsKNeiuNJYlclZJtKqsHSls8We2iGhgxtletVsiBYie93MSTDRDMI8pkBZJlIJSZPrdA==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.10.1':
+ resolution: {integrity: sha512-BAJN5PEPlEV+1m8+PCtFoKm3LQ1P57B4Z+0+efU0NzmCaGk7pUaOxuPgl+m3eufVeeNBKiPDltG0sSB9qEfCxw==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.10.1':
+ resolution: {integrity: sha512-2v3erKKmmCyIVvvhI2nF15qEbdBpISTq44m9pyd5gfIJB1PN94oePTLWEd82XUbIbvKhv76xTSeUQSCOGesLeg==}
+ cpu: [x64]
+ os: [win32]
+
+ '@webassemblyjs/ast@1.14.1':
+ resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2':
+ resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
+
+ '@webassemblyjs/helper-api-error@1.13.2':
+ resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
+
+ '@webassemblyjs/helper-buffer@1.14.1':
+ resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2':
+ resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
+
+ '@webassemblyjs/ieee754@1.13.2':
+ resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
+
+ '@webassemblyjs/leb128@1.13.2':
+ resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
+
+ '@webassemblyjs/utf8@1.13.2':
+ resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
+
+ '@xhmikosr/archive-type@7.0.0':
+ resolution: {integrity: sha512-sIm84ZneCOJuiy3PpWR5bxkx3HaNt1pqaN+vncUBZIlPZCq8ASZH+hBVdu5H8znR7qYC6sKwx+ie2Q7qztJTxA==}
+ engines: {node: ^14.14.0 || >=16.0.0}
+
+ '@xhmikosr/bin-check@7.0.3':
+ resolution: {integrity: sha512-4UnCLCs8DB+itHJVkqFp9Zjg+w/205/J2j2wNBsCEAm/BuBmtua2hhUOdAMQE47b1c7P9Xmddj0p+X1XVsfHsA==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/bin-wrapper@13.0.5':
+ resolution: {integrity: sha512-DT2SAuHDeOw0G5bs7wZbQTbf4hd8pJ14tO0i4cWhRkIJfgRdKmMfkDilpaJ8uZyPA0NVRwasCNAmMJcWA67osw==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/decompress-tar@8.0.1':
+ resolution: {integrity: sha512-dpEgs0cQKJ2xpIaGSO0hrzz3Kt8TQHYdizHsgDtLorWajuHJqxzot9Hbi0huRxJuAGG2qiHSQkwyvHHQtlE+fg==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/decompress-tarbz2@8.0.2':
+ resolution: {integrity: sha512-p5A2r/AVynTQSsF34Pig6olt9CvRj6J5ikIhzUd3b57pUXyFDGtmBstcw+xXza0QFUh93zJsmY3zGeNDlR2AQQ==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/decompress-targz@8.0.1':
+ resolution: {integrity: sha512-mvy5AIDIZjQ2IagMI/wvauEiSNHhu/g65qpdM4EVoYHUJBAmkQWqcPJa8Xzi1aKVTmOA5xLJeDk7dqSjlHq8Mg==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/decompress-unzip@7.0.0':
+ resolution: {integrity: sha512-GQMpzIpWTsNr6UZbISawsGI0hJ4KA/mz5nFq+cEoPs12UybAqZWKbyIaZZyLbJebKl5FkLpsGBkrplJdjvUoSQ==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/decompress@10.0.1':
+ resolution: {integrity: sha512-6uHnEEt5jv9ro0CDzqWlFgPycdE+H+kbJnwyxgZregIMLQ7unQSCNVsYG255FoqU8cP46DyggI7F7LohzEl8Ag==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/downloader@15.0.1':
+ resolution: {integrity: sha512-fiuFHf3Dt6pkX8HQrVBsK0uXtkgkVlhrZEh8b7VgoDqFf+zrgFBPyrwCqE/3nDwn3hLeNz+BsrS7q3mu13Lp1g==}
+ engines: {node: '>=18'}
+
+ '@xhmikosr/os-filter-obj@3.0.0':
+ resolution: {integrity: sha512-siPY6BD5dQ2SZPl3I0OZBHL27ZqZvLEosObsZRQ1NUB8qcxegwt0T9eKtV96JMFQpIz1elhkzqOg4c/Ri6Dp9A==}
+ engines: {node: ^14.14.0 || >=16.0.0}
+
+ '@xtuc/ieee754@1.2.0':
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ '@xtuc/long@4.2.2':
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
+ JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+
+ abbrev@1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ abstract-logging@2.0.1:
+ resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
+
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-walk@8.3.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+
+ agent-base@7.1.4:
+ resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
+ engines: {node: '>= 14'}
+
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-formats@3.0.1:
+ resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-keywords@3.5.2:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv-keywords@5.1.0:
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
+ alce@1.2.0:
+ resolution: {integrity: sha512-XppPf2S42nO2WhvKzlwzlfcApcXHzjlod30pKmcWjRgLOtqoe5DMuqdiYoM6AgyXksc6A6pV4v1L/WW217e57w==}
+ engines: {node: '>=0.8.0'}
+
+ ansi-colors@4.1.3:
+ resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+ engines: {node: '>=6'}
+
+ ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+
+ ansi-escapes@7.0.0:
+ resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+ engines: {node: '>=18'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.1.0:
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ engines: {node: '>=12'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ ansis@3.17.0:
+ resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==}
+ engines: {node: '>=14'}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ append-field@1.0.0:
+ resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==}
+
+ aproba@2.0.0:
+ resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
+
+ arch@3.0.0:
+ resolution: {integrity: sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q==}
+
+ are-we-there-yet@2.0.0:
+ resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
+ engines: {node: '>=10'}
+ deprecated: This package is no longer supported.
+
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
+ argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-ify@1.0.0:
+ resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
+
+ array-includes@3.1.9:
+ resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
+ engines: {node: '>= 0.4'}
+
+ array-timsort@1.0.3:
+ resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ array.prototype.findlastindex@1.2.6:
+ resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flat@1.3.3:
+ resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flatmap@1.3.3:
+ resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
+ engines: {node: '>= 0.4'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+
+ asn1.js@5.4.1:
+ resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
+
+ assert-never@1.4.0:
+ resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ atomic-sleep@1.0.0:
+ resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
+ engines: {node: '>=8.0.0'}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ avvio@9.1.0:
+ resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==}
+
+ axios@1.10.0:
+ resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==}
+
+ b4a@1.6.7:
+ resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==}
+
+ babel-jest@29.7.0:
+ resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@babel/core': ^7.8.0
+
+ babel-plugin-istanbul@6.1.1:
+ resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
+ engines: {node: '>=8'}
+
+ babel-plugin-jest-hoist@29.6.3:
+ resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ babel-preset-current-node-syntax@1.1.0:
+ resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ babel-preset-jest@29.6.3:
+ resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ babel-walk@3.0.0-canary-5:
+ resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==}
+ engines: {node: '>= 10.0.0'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ bare-events@2.5.4:
+ resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ base64id@2.0.0:
+ resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
+ engines: {node: ^4.5.0 || >= 5.9}
+
+ bcrypt@5.1.1:
+ resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==}
+ engines: {node: '>= 10.0.0'}
+
+ bin-version-check@5.1.0:
+ resolution: {integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==}
+ engines: {node: '>=12'}
+
+ bin-version@6.0.0:
+ resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==}
+ engines: {node: '>=12'}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
+ bn.js@4.12.2:
+ resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ bowser@2.11.0:
+ resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.25.1:
+ resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bs-logger@0.2.6:
+ resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
+ engines: {node: '>= 6'}
+
+ bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+
+ buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ buffer-equal-constant-time@1.0.1:
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bullmq@5.56.1:
+ resolution: {integrity: sha512-HmX53sf24bbDj5NVrDLDEjy8OSDmbGMESfvFhVK8NpHsA4WlAdKxPDf7c5b9RZf5wZGHyAd2XhWSkE9dmNPYww==}
+
+ cache-manager@7.0.0:
+ resolution: {integrity: sha512-5HLGorfU4g2GyLTXd+bbq8RhZPwLRlVm7hfS1EssJx4Ujq1FjyQAjHND93sI6ByQTlUlCQ0jrHZqLI0qtBFyHA==}
+
+ cacheable-lookup@7.0.0:
+ resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
+ engines: {node: '>=14.16'}
+
+ cacheable-request@10.2.14:
+ resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
+ engines: {node: '>=14.16'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camel-case@3.0.0:
+ resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==}
+
+ camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ caniuse-lite@1.0.30001726:
+ resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==}
+
+ chalk@3.0.0:
+ resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
+ engines: {node: '>=8'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.4.1:
+ resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ char-regex@1.0.2:
+ resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
+ engines: {node: '>=10'}
+
+ character-parser@2.2.0:
+ resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==}
+
+ chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
+ cheerio-select@2.1.0:
+ resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
+
+ cheerio@1.0.0-rc.12:
+ resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
+ engines: {node: '>= 6'}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
+ chownr@2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+
+ chrome-trace-event@1.0.4:
+ resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
+ engines: {node: '>=6.0'}
+
+ ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+
+ cjs-module-lexer@1.4.3:
+ resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
+
+ class-transformer@0.5.1:
+ resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==}
+
+ class-validator@0.14.2:
+ resolution: {integrity: sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==}
+
+ clean-css@4.2.4:
+ resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==}
+ engines: {node: '>= 4.0'}
+
+ cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
+ cli-spinners@2.9.2:
+ resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
+ engines: {node: '>=6'}
+
+ cli-table3@0.6.5:
+ resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==}
+ engines: {node: 10.* || >= 12.*}
+
+ cli-truncate@4.0.0:
+ resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
+ engines: {node: '>=18'}
+
+ cli-width@4.1.0:
+ resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
+ engines: {node: '>= 12'}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ cluster-key-slot@1.1.2:
+ resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
+ engines: {node: '>=0.10.0'}
+
+ co@4.6.0:
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
+ collect-v8-coverage@1.0.2:
+ resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ color-support@1.1.3:
+ resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
+ hasBin: true
+
+ colorette@2.0.19:
+ resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
+
+ colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+
+ commander@13.1.0:
+ resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
+ engines: {node: '>=18'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@6.2.1:
+ resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
+ engines: {node: '>= 6'}
+
+ commander@8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+
+ comment-json@4.2.5:
+ resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==}
+ engines: {node: '>= 6'}
+
+ compare-func@2.0.0:
+ resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
+
+ component-emitter@1.3.1:
+ resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ concat-stream@2.0.0:
+ resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
+ engines: {'0': node >= 6.0}
+
+ config-chain@1.1.13:
+ resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
+
+ consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
+ console-control-strings@1.1.0:
+ resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
+
+ constantinople@4.0.1:
+ resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
+
+ content-disposition@0.5.4:
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
+ engines: {node: '>= 0.6'}
+
+ conventional-changelog-angular@7.0.0:
+ resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
+ engines: {node: '>=16'}
+
+ conventional-changelog-conventionalcommits@7.0.2:
+ resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==}
+ engines: {node: '>=16'}
+
+ conventional-commits-parser@5.0.0:
+ resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie@0.7.2:
+ resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
+ engines: {node: '>= 0.6'}
+
+ cookie@1.0.2:
+ resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
+ engines: {node: '>=18'}
+
+ cookiejar@2.1.4:
+ resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cors@2.8.5:
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ engines: {node: '>= 0.10'}
+
+ cosmiconfig-typescript-loader@6.1.0:
+ resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==}
+ engines: {node: '>=v18'}
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=9'
+ typescript: '>=5'
+
+ cosmiconfig@8.3.6:
+ resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ cosmiconfig@9.0.0:
+ resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ create-jest@29.7.0:
+ resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+
+ create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
+ cron-parser@4.9.0:
+ resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==}
+ engines: {node: '>=12.0.0'}
+
+ cross-spawn@6.0.6:
+ resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==}
+ engines: {node: '>=4.8'}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ css-select@5.2.2:
+ resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
+
+ css-what@6.2.2:
+ resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
+ engines: {node: '>= 6'}
+
+ dargs@8.1.0:
+ resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==}
+ engines: {node: '>=12'}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ dataloader@2.2.3:
+ resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==}
+
+ dayjs@1.11.13:
+ resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decimal.js@10.5.0:
+ resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
+
+ decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+
+ dedent@1.6.0:
+ resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==}
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+
+ deep-extend@0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+
+ defaults@3.0.0:
+ resolution: {integrity: sha512-RsqXDEAALjfRTro+IFNKpcPCt0/Cy2FqHSIlnomiJp9YGadpQnrtbRpSgN2+np21qHcIKiva4fiOQGjS9/qR/A==}
+ engines: {node: '>=18'}
+
+ defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ delegates@1.0.0:
+ resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
+
+ denque@2.1.0:
+ resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
+ engines: {node: '>=0.10'}
+
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
+ detect-indent@6.1.0:
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ engines: {node: '>=8'}
+
+ detect-libc@2.0.4:
+ resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
+ engines: {node: '>=8'}
+
+ detect-newline@3.1.0:
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+ engines: {node: '>=8'}
+
+ detect-node@2.1.0:
+ resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
+
+ dezalgo@1.0.4:
+ resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
+
+ diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+
+ dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+
+ display-notification@2.0.0:
+ resolution: {integrity: sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw==}
+ engines: {node: '>=4'}
+
+ doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+
+ doctypes@1.1.0:
+ resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
+
+ dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ domhandler@3.3.0:
+ resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==}
+ engines: {node: '>= 4'}
+
+ domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+
+ domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
+
+ dot-prop@5.3.0:
+ resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+ engines: {node: '>=8'}
+
+ dotenv-expand@12.0.1:
+ resolution: {integrity: sha512-LaKRbou8gt0RNID/9RoI+J2rvXsBRPMV7p+ElHlPhcSARbCPDYcYG2s1TIzAfWv4YSgyY5taidWzzs31lNV3yQ==}
+ engines: {node: '>=12'}
+
+ dotenv@16.4.7:
+ resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
+ engines: {node: '>=12'}
+
+ dotenv@16.5.0:
+ resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
+ engines: {node: '>=12'}
+
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
+ engines: {node: '>=12'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ ecdsa-sig-formatter@1.0.11:
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+
+ editorconfig@1.0.4:
+ resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
+ electron-to-chromium@1.5.179:
+ resolution: {integrity: sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==}
+
+ emittery@0.13.1:
+ resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
+ engines: {node: '>=12'}
+
+ emoji-regex@10.4.0:
+ resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ encoding-japanese@2.2.0:
+ resolution: {integrity: sha512-EuJWwlHPZ1LbADuKTClvHtwbaFn4rOD+dRAbWysqEOXRc2Uui0hJInNJrsdH0c+OhJA4nrCBdSkW4DD5YxAo6A==}
+ engines: {node: '>=8.10.0'}
+
+ engine.io-parser@5.2.3:
+ resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+ engines: {node: '>=10.0.0'}
+
+ engine.io@6.6.4:
+ resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
+ engines: {node: '>=10.2.0'}
+
+ enhanced-resolve@5.18.2:
+ resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==}
+ engines: {node: '>=10.13.0'}
+
+ entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+
+ env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+
+ environment@1.1.0:
+ resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+ engines: {node: '>=18'}
+
+ error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+ es-abstract@1.24.0:
+ resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-shim-unscopables@1.1.0:
+ resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-goat@3.0.0:
+ resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==}
+ engines: {node: '>=10'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-applescript@1.0.0:
+ resolution: {integrity: sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA==}
+ engines: {node: '>=0.10.0'}
+
+ escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-config-prettier@10.1.5:
+ resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+
+ eslint-import-resolver-typescript@3.10.1:
+ resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ eslint-plugin-import-x: '*'
+ peerDependenciesMeta:
+ eslint-plugin-import:
+ optional: true
+ eslint-plugin-import-x:
+ optional: true
+
+ eslint-module-utils@2.12.1:
+ resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+
+ eslint-plugin-import@2.32.0:
+ resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+
+ eslint-plugin-prettier@5.5.1:
+ resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.30.1:
+ resolution: {integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ esm@3.2.25:
+ resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
+ engines: {node: '>=6'}
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ esprima@1.2.5:
+ resolution: {integrity: sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@1.9.3:
+ resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==}
+ engines: {node: '>=0.10.0'}
+
+ estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
+ events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
+ execa@0.10.0:
+ resolution: {integrity: sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==}
+ engines: {node: '>=4'}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ execa@8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
+
+ exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+ engines: {node: '>= 0.8.0'}
+
+ expect@29.7.0:
+ resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ ext-list@2.2.2:
+ resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==}
+ engines: {node: '>=0.10.0'}
+
+ ext-name@5.0.0:
+ resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==}
+ engines: {node: '>=4'}
+
+ extend-object@1.0.0:
+ resolution: {integrity: sha512-0dHDIXC7y7LDmCh/lp1oYkmv73K25AMugQI07r8eFopkW6f7Ufn1q+ETMsJjnV9Am14SlElkqy3O92r6xEaxPw==}
+
+ external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+
+ fast-decode-uri-component@1.0.1:
+ resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
+ fast-fifo@1.3.2:
+ resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-json-stringify@6.0.1:
+ resolution: {integrity: sha512-s7SJE83QKBZwg54dIbD5rCtzOBVD43V1ReWXXYqBgwCwHLYAAT0RQc/FmrQglXqWPpz6omtryJQOau5jI4Nrvg==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-querystring@1.1.2:
+ resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==}
+
+ fast-redact@3.5.0:
+ resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
+ engines: {node: '>=6'}
+
+ fast-safe-stringify@2.1.1:
+ resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
+
+ fast-uri@3.0.6:
+ resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+
+ fast-xml-parser@5.2.5:
+ resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==}
+ hasBin: true
+
+ fastify-multer@2.0.3:
+ resolution: {integrity: sha512-QnFqrRgxmUwWHTgX9uyQSu0C/hmVCfcxopqjApZ4uaZD5W9MJ+nHUlW4+9q7Yd3BRxDIuHvgiM5mjrh6XG8cAA==}
+ engines: {node: '>=10.17.0'}
+
+ fastify-plugin@2.3.4:
+ resolution: {integrity: sha512-I+Oaj6p9oiRozbam30sh39BiuiqBda7yK2nmSPVwDCfIBlKnT8YB3MY+pRQc2Fcd07bf6KPGklHJaQ2Qu81TYQ==}
+
+ fastify-plugin@5.0.1:
+ resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==}
+
+ fastify@5.3.3:
+ resolution: {integrity: sha512-nCBiBCw9q6jPx+JJNVgO8JVnTXeUyrGcyTKPQikRkA/PanrFcOIo4R+ZnLeOLPZPGgzjomqfVarzE0kYx7qWiQ==}
+
+ fastify@5.4.0:
+ resolution: {integrity: sha512-I4dVlUe+WNQAhKSyv15w+dwUh2EPiEl4X2lGYMmNSgF83WzTMAPKGdWEv5tPsCQOb+SOZwz8Vlta2vF+OeDgRw==}
+
+ fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
+
+ fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fflate@0.8.2:
+ resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
+
+ figlet@1.8.1:
+ resolution: {integrity: sha512-kEC3Sme+YvA8Hkibv0NR1oClGcWia0VB2fC1SlMy027cwe795Xx40Xiv/nw/iFAwQLupymWh+uhAAErn/7hwPg==}
+ engines: {node: '>= 0.4.0'}
+ hasBin: true
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ file-type@19.6.0:
+ resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==}
+ engines: {node: '>=18'}
+
+ file-type@21.0.0:
+ resolution: {integrity: sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg==}
+ engines: {node: '>=20'}
+
+ filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+
+ filename-reserved-regex@3.0.0:
+ resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ filenamify@6.0.0:
+ resolution: {integrity: sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==}
+ engines: {node: '>=16'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-my-way@9.3.0:
+ resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==}
+ engines: {node: '>=20'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ find-up@7.0.0:
+ resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
+ engines: {node: '>=18'}
+
+ find-versions@5.1.0:
+ resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==}
+ engines: {node: '>=12'}
+
+ fixpack@4.0.0:
+ resolution: {integrity: sha512-5SM1+H2CcuJ3gGEwTiVo/+nd/hYpNj9Ch3iMDOQ58ndY+VGQ2QdvaUTkd3otjZvYnd/8LF/HkJ5cx7PBq0orCQ==}
+ hasBin: true
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
+ follow-redirects@1.15.9:
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
+ engines: {node: '>=14'}
+
+ fork-ts-checker-webpack-plugin@9.1.0:
+ resolution: {integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==}
+ engines: {node: '>=14.21.3'}
+ peerDependencies:
+ typescript: '>3.6.0'
+ webpack: ^5.11.0
+
+ form-data-encoder@2.1.4:
+ resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
+ engines: {node: '>= 14.17'}
+
+ form-data@4.0.3:
+ resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==}
+ engines: {node: '>= 6'}
+
+ formidable@3.5.4:
+ resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==}
+ engines: {node: '>=14.0.0'}
+
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
+ fs-extra@11.3.0:
+ resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
+ engines: {node: '>=14.14'}
+
+ fs-minipass@2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+
+ fs-monkey@1.0.6:
+ resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ gauge@3.0.2:
+ resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
+ engines: {node: '>=10'}
+ deprecated: This package is no longer supported.
+
+ generic-pool@3.9.0:
+ resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==}
+ engines: {node: '>= 4'}
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-east-asian-width@1.3.0:
+ resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+ engines: {node: '>=18'}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-package-type@0.1.0:
+ resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
+ engines: {node: '>=8.0.0'}
+
+ get-port@5.1.1:
+ resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
+ engines: {node: '>=8'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@3.0.0:
+ resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
+ engines: {node: '>=4'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-stream@8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.10.1:
+ resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
+
+ getopts@2.3.0:
+ resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==}
+
+ git-raw-commits@4.0.0:
+ resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
+ glob@10.3.12:
+ resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ glob@10.4.5:
+ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ hasBin: true
+
+ glob@11.0.1:
+ resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
+ glob@11.0.3:
+ resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ global-directory@4.0.1:
+ resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
+ engines: {node: '>=18'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@16.3.0:
+ resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==}
+ engines: {node: '>=18'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ got@13.0.0:
+ resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==}
+ engines: {node: '>=16'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ handlebars@4.7.8:
+ resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-own-prop@2.0.0:
+ resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ has-unicode@2.0.1:
+ resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
+ html-escaper@2.0.2:
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+
+ html-minifier@4.0.0:
+ resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ html-to-text@9.0.5:
+ resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==}
+ engines: {node: '>=14'}
+
+ htmlparser2@5.0.1:
+ resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==}
+
+ htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+
+ htmlparser2@9.1.0:
+ resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==}
+
+ http-cache-semantics@4.2.0:
+ resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
+
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
+ http2-wrapper@2.2.1:
+ resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
+ engines: {node: '>=10.19.0'}
+
+ http_ece@1.2.0:
+ resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==}
+ engines: {node: '>=16'}
+
+ https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+
+ husky@9.1.7:
+ resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ import-local@3.2.0:
+ resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ import-meta-resolve@4.1.0:
+ resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ index-to-position@1.1.0:
+ resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==}
+ engines: {node: '>=18'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ ini@4.1.1:
+ resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ inspect-with-kind@1.0.5:
+ resolution: {integrity: sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ interpret@2.2.0:
+ resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==}
+ engines: {node: '>= 0.10'}
+
+ ioredis@5.6.1:
+ resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==}
+ engines: {node: '>=12.22.0'}
+
+ ipaddr.js@2.2.0:
+ resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
+ engines: {node: '>= 10'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
+
+ is-bun-module@2.0.0:
+ resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ is-expression@4.0.0:
+ resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-fullwidth-code-point@4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+
+ is-fullwidth-code-point@5.0.0:
+ resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+ engines: {node: '>=18'}
+
+ is-generator-fn@2.1.0:
+ resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
+ engines: {node: '>=6'}
+
+ is-generator-function@1.1.0:
+ resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-obj@2.0.0:
+ resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
+ is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@1.1.0:
+ resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-text-path@2.0.0:
+ resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==}
+ engines: {node: '>=8'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ istanbul-lib-coverage@3.2.2:
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@5.2.1:
+ resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@6.0.3:
+ resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-report@3.0.1:
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-source-maps@4.0.1:
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
+ engines: {node: '>=10'}
+
+ istanbul-reports@3.1.7:
+ resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ engines: {node: '>=8'}
+
+ iterare@1.2.1:
+ resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==}
+ engines: {node: '>=6'}
+
+ jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
+
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jackspeak@4.1.1:
+ resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
+ engines: {node: 20 || >=22}
+
+ jake@10.9.2:
+ resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ jest-changed-files@29.7.0:
+ resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-circus@29.7.0:
+ resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-cli@29.7.0:
+ resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jest-config@29.7.0:
+ resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@types/node': '*'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ ts-node:
+ optional: true
+
+ jest-diff@29.7.0:
+ resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-docblock@29.7.0:
+ resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-each@29.7.0:
+ resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-environment-node@29.7.0:
+ resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-get-type@29.6.3:
+ resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-haste-map@29.7.0:
+ resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-leak-detector@29.7.0:
+ resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-matcher-utils@29.7.0:
+ resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-message-util@29.7.0:
+ resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-mock@29.7.0:
+ resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-pnp-resolver@1.2.3:
+ resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ jest-resolve: '*'
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+
+ jest-regex-util@29.6.3:
+ resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-resolve-dependencies@29.7.0:
+ resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-resolve@29.7.0:
+ resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-runner@29.7.0:
+ resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-runtime@29.7.0:
+ resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-snapshot@29.7.0:
+ resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-util@29.7.0:
+ resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-validate@29.7.0:
+ resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-watcher@29.7.0:
+ resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
+ jest-worker@29.7.0:
+ resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest@29.7.0:
+ resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jiti@2.4.2:
+ resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+ hasBin: true
+
+ js-beautify@1.15.4:
+ resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ js-cookie@3.0.5:
+ resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
+ engines: {node: '>=14'}
+
+ js-stringify@1.0.2:
+ resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-ref-resolver@2.0.1:
+ resolution: {integrity: sha512-HG0SIB9X4J8bwbxCbnd5FfPEbcXAJYTi1pBJeP/QPON+w8ovSME8iRG+ElHNxZNX2Qh6eYn1GdzJFS4cDFfx0Q==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+
+ jsonwebtoken@9.0.2:
+ resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
+ engines: {node: '>=12', npm: '>=6'}
+
+ jstransformer@1.0.0:
+ resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==}
+
+ juice@10.0.1:
+ resolution: {integrity: sha512-ZhJT1soxJCkOiO55/mz8yeBKTAJhRzX9WBO+16ZTqNTONnnVlUPyVBIzQ7lDRjaBdTbid+bAnyIon/GM3yp4cA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ jwa@1.4.2:
+ resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==}
+
+ jwa@2.0.1:
+ resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
+
+ jws@3.2.2:
+ resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
+
+ jws@4.0.0:
+ resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ keyv@5.3.4:
+ resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==}
+
+ kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+
+ knex@3.1.0:
+ resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==}
+ engines: {node: '>=16'}
+ hasBin: true
+ peerDependencies:
+ better-sqlite3: '*'
+ mysql: '*'
+ mysql2: '*'
+ pg: '*'
+ pg-native: '*'
+ sqlite3: '*'
+ tedious: '*'
+ peerDependenciesMeta:
+ better-sqlite3:
+ optional: true
+ mysql:
+ optional: true
+ mysql2:
+ optional: true
+ pg:
+ optional: true
+ pg-native:
+ optional: true
+ sqlite3:
+ optional: true
+ tedious:
+ optional: true
+
+ leac@0.6.0:
+ resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
+
+ leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ libbase64@1.3.0:
+ resolution: {integrity: sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==}
+
+ libmime@5.3.7:
+ resolution: {integrity: sha512-FlDb3Wtha8P01kTL3P9M+ZDNDWPKPmKHWaU/cG/lg5pfuAwdflVpZE+wm9m7pKmC5ww6s+zTxBKS1p6yl3KpSw==}
+
+ libphonenumber-js@1.12.9:
+ resolution: {integrity: sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg==}
+
+ libqp@2.1.1:
+ resolution: {integrity: sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==}
+
+ light-my-request@6.6.0:
+ resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ linkify-it@5.0.0:
+ resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+ lint-staged@15.5.2:
+ resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==}
+ engines: {node: '>=18.12.0'}
+ hasBin: true
+
+ liquidjs@10.21.1:
+ resolution: {integrity: sha512-NZXmCwv3RG5nire3fmIn9HsOyJX3vo+ptp0yaXUHAMzSNBhx74Hm+dAGJvscUA6lNqbLuYfXgNavRQ9UbUJhQQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ listr2@8.3.3:
+ resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==}
+ engines: {node: '>=18.0.0'}
+
+ load-esm@1.0.2:
+ resolution: {integrity: sha512-nVAvWk/jeyrWyXEAs84mpQCYccxRqgKY4OznLuJhJCa0XsPSfdOIr2zvBZEj3IHEHbX97jjscKRRV539bW0Gpw==}
+ engines: {node: '>=13.2.0'}
+
+ loader-runner@4.3.0:
+ resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ engines: {node: '>=6.11.5'}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
+ lodash.defaults@4.2.0:
+ resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
+
+ lodash.includes@4.3.0:
+ resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
+
+ lodash.isarguments@3.1.0:
+ resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
+
+ lodash.isboolean@3.0.3:
+ resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
+
+ lodash.isinteger@4.0.4:
+ resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
+
+ lodash.isnumber@3.0.3:
+ resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
+
+ lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ lodash.isstring@4.0.1:
+ resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
+
+ lodash.kebabcase@4.1.1:
+ resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
+
+ lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.mergewith@4.6.2:
+ resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
+
+ lodash.once@4.1.1:
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
+
+ lodash.snakecase@4.1.1:
+ resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
+
+ lodash.startcase@4.4.0:
+ resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+
+ lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ lodash.upperfirst@4.3.1:
+ resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ log-update@6.1.0:
+ resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+ engines: {node: '>=18'}
+
+ lower-case@1.1.4:
+ resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==}
+
+ lowercase-keys@3.0.0:
+ resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ lru-cache@11.1.0:
+ resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
+ engines: {node: 20 || >=22}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ luxon@3.6.1:
+ resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==}
+ engines: {node: '>=12'}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+ mailparser@3.7.4:
+ resolution: {integrity: sha512-Beh4yyR4jLq3CZZ32asajByrXnW8dLyKCAQD3WvtTiBnMtFWhxO+wa93F6sJNjDmfjxXs4NRNjw3XAGLqZR3Vg==}
+
+ mailsplit@5.4.5:
+ resolution: {integrity: sha512-oMfhmvclR689IIaQmIcR5nODnZRRVwAKtqFT407TIvmhX2OLUBnshUTcxzQBt3+96sZVDud9NfSe1NxAkUNXEQ==}
+
+ make-dir@3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+
+ make-dir@4.0.0:
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+ engines: {node: '>=10'}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ media-typer@0.3.0:
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
+ engines: {node: '>= 0.6'}
+
+ memfs@3.5.3:
+ resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
+ engines: {node: '>= 4.0.0'}
+
+ mensch@0.3.4:
+ resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==}
+
+ meow@12.1.1:
+ resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
+ engines: {node: '>=16.10'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ methods@1.1.2:
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
+ engines: {node: '>= 0.6'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mikro-orm@6.4.16:
+ resolution: {integrity: sha512-a+19cRuEPEJ3qf5Vpv4HO9TAxo/I6/rP1bZT93ln8YtNzAbCrcLC766EG6upLS6Sf7OLqdq0cXs5mUN9ESQQrg==}
+ engines: {node: '>= 18.12.0'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-db@1.54.0:
+ resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime@2.6.0:
+ resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+ engines: {node: '>=4.0.0'}
+ hasBin: true
+
+ mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
+
+ mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+
+ mimic-response@4.0.0:
+ resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ minimalistic-assert@1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+
+ minimatch@10.0.3:
+ resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
+ engines: {node: 20 || >=22}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+
+ minimatch@9.0.1:
+ resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+
+ minipass@5.0.0:
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+ engines: {node: '>=8'}
+
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minizlib@2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+
+ mjml-accordion@4.15.3:
+ resolution: {integrity: sha512-LPNVSj1LyUVYT9G1gWwSw3GSuDzDsQCu0tPB2uDsq4VesYNnU6v3iLCQidMiR6azmIt13OEozG700ygAUuA6Ng==}
+
+ mjml-body@4.15.3:
+ resolution: {integrity: sha512-7pfUOVPtmb0wC+oUOn4xBsAw4eT5DyD6xqaxj/kssu6RrFXOXgJaVnDPAI9AzIvXJ/5as9QrqRGYAddehwWpHQ==}
+
+ mjml-button@4.15.3:
+ resolution: {integrity: sha512-79qwn9AgdGjJR1vLnrcm2rq2AsAZkKC5JPwffTMG+Nja6zGYpTDZFZ56ekHWr/r1b5WxkukcPj2PdevUug8c+Q==}
+
+ mjml-carousel@4.15.3:
+ resolution: {integrity: sha512-3ju6I4l7uUhPRrJfN3yK9AMsfHvrYbRkcJ1GRphFHzUj37B2J6qJOQUpzA547Y4aeh69TSb7HFVf1t12ejQxVw==}
+
+ mjml-cli@4.15.3:
+ resolution: {integrity: sha512-+V2TDw3tXUVEptFvLSerz125C2ogYl8klIBRY1m5BHd4JvGVf3yhx8N3PngByCzA6PGcv/eydGQN+wy34SHf0Q==}
+ hasBin: true
+
+ mjml-column@4.15.3:
+ resolution: {integrity: sha512-hYdEFdJGHPbZJSEysykrevEbB07yhJGSwfDZEYDSbhQQFjV2tXrEgYcFD5EneMaowjb55e3divSJxU4c5q4Qgw==}
+
+ mjml-core@4.15.3:
+ resolution: {integrity: sha512-Dmwk+2cgSD9L9GmTbEUNd8QxkTZtW9P7FN/ROZW/fGZD6Hq6/4TB0zEspg2Ow9eYjZXO2ofOJ3PaQEEShKV0kQ==}
+
+ mjml-divider@4.15.3:
+ resolution: {integrity: sha512-vh27LQ9FG/01y0b9ntfqm+GT5AjJnDSDY9hilss2ixIUh0FemvfGRfsGVeV5UBVPBKK7Ffhvfqc7Rciob9Spzw==}
+
+ mjml-group@4.15.3:
+ resolution: {integrity: sha512-HSu/rKnGZVKFq3ciT46vi1EOy+9mkB0HewO4+P6dP/Y0UerWkN6S3UK11Cxsj0cAp0vFwkPDCdOeEzRdpFEkzA==}
+
+ mjml-head-attributes@4.15.3:
+ resolution: {integrity: sha512-2ISo0r5ZKwkrvJgDou9xVPxxtXMaETe2AsAA02L89LnbB2KC0N5myNsHV0sEysTw9+CfCmgjAb0GAI5QGpxKkQ==}
+
+ mjml-head-breakpoint@4.15.3:
+ resolution: {integrity: sha512-Eo56FA5C2v6ucmWQL/JBJ2z641pLOom4k0wP6CMZI2utfyiJ+e2Uuinj1KTrgDcEvW4EtU9HrfAqLK9UosLZlg==}
+
+ mjml-head-font@4.15.3:
+ resolution: {integrity: sha512-CzV2aDPpiNIIgGPHNcBhgyedKY4SX3BJoTwOobSwZVIlEA6TAWB4Z9WwFUmQqZOgo1AkkiTHPZQvGcEhFFXH6g==}
+
+ mjml-head-html-attributes@4.15.3:
+ resolution: {integrity: sha512-MDNDPMBOgXUZYdxhosyrA2kudiGO8aogT0/cODyi2Ed9o/1S7W+je11JUYskQbncqhWKGxNyaP4VWa+6+vUC/g==}
+
+ mjml-head-preview@4.15.3:
+ resolution: {integrity: sha512-J2PxCefUVeFwsAExhrKo4lwxDevc5aKj888HBl/wN4EuWOoOg06iOGCxz4Omd8dqyFsrqvbBuPqRzQ+VycGmaA==}
+
+ mjml-head-style@4.15.3:
+ resolution: {integrity: sha512-9J+JuH+mKrQU65CaJ4KZegACUgNIlYmWQYx3VOBR/tyz+8kDYX7xBhKJCjQ1I4wj2Tvga3bykd89Oc2kFZ5WOw==}
+
+ mjml-head-title@4.15.3:
+ resolution: {integrity: sha512-IM59xRtsxID4DubQ0iLmoCGXguEe+9BFG4z6y2xQDrscIa4QY3KlfqgKGT69ojW+AVbXXJPEVqrAi4/eCsLItQ==}
+
+ mjml-head@4.15.3:
+ resolution: {integrity: sha512-o3mRuuP/MB5fZycjD3KH/uXsnaPl7Oo8GtdbJTKtH1+O/3pz8GzGMkscTKa97l03DAG2EhGrzzLcU2A6eshwFw==}
+
+ mjml-hero@4.15.3:
+ resolution: {integrity: sha512-9cLAPuc69yiuzNrMZIN58j+HMK1UWPaq2i3/Fg2ZpimfcGFKRcPGCbEVh0v+Pb6/J0+kf8yIO0leH20opu3AyQ==}
+
+ mjml-image@4.15.3:
+ resolution: {integrity: sha512-g1OhSdofIytE9qaOGdTPmRIp7JsCtgO0zbsn1Fk6wQh2gEL55Z40j/VoghslWAWTgT2OHFdBKnMvWtN6U5+d2Q==}
+
+ mjml-migrate@4.15.3:
+ resolution: {integrity: sha512-sr/+35RdxZroNQVegjpfRHJ5hda9XCgaS4mK2FGO+Mb1IUevKfeEPII3F/cHDpNwFeYH3kAgyqQ22ClhGLWNBA==}
+ hasBin: true
+
+ mjml-navbar@4.15.3:
+ resolution: {integrity: sha512-VsKH/Jdlf8Yu3y7GpzQV5n7JMdpqvZvTSpF6UQXL0PWOm7k6+LX+sCZimOfpHJ+wCaaybpxokjWZ71mxOoCWoA==}
+
+ mjml-parser-xml@4.15.3:
+ resolution: {integrity: sha512-Tz0UX8/JVYICLjT+U8J1f/TFxIYVYjzZHeh4/Oyta0pLpRLeZlxEd71f3u3kdnulCKMP4i37pFRDmyLXAlEuLw==}
+
+ mjml-preset-core@4.15.3:
+ resolution: {integrity: sha512-1zZS8P4O0KweWUqNS655+oNnVMPQ1Rq1GaZq5S9JfwT1Vh/m516lSmiTW9oko6gGHytt5s6Yj6oOeu5Zm8FoLw==}
+
+ mjml-raw@4.15.3:
+ resolution: {integrity: sha512-IGyHheOYyRchBLiAEgw3UM11kFNmBSMupu2BDdejC6ZiDhEAdG+tyERlsCwDPYtXanvFpGWULIu3XlsUPc+RZw==}
+
+ mjml-section@4.15.3:
+ resolution: {integrity: sha512-JfVPRXH++Hd933gmQfG8JXXCBCR6fIzC3DwiYycvanL/aW1cEQ2EnebUfQkt5QzlYjOkJEH+JpccAsq3ln6FZQ==}
+
+ mjml-social@4.15.3:
+ resolution: {integrity: sha512-7sD5FXrESOxpT9Z4Oh36bS6u/geuUrMP1aCg2sjyAwbPcF1aWa2k9OcatQfpRf6pJEhUZ18y6/WBBXmMVmSzXg==}
+
+ mjml-spacer@4.15.3:
+ resolution: {integrity: sha512-3B7Qj+17EgDdAtZ3NAdMyOwLTX1jfmJuY7gjyhS2HtcZAmppW+cxqHUBwCKfvSRgTQiccmEvtNxaQK+tfyrZqA==}
+
+ mjml-table@4.15.3:
+ resolution: {integrity: sha512-FLx7DcRKTdKdcOCbMyBaeudeHaHpwPveRrBm6WyQe3LXx6FfdmOh59i71/16LFQMgBOD3N4/UJkzxLzlTJzMqQ==}
+
+ mjml-text@4.15.3:
+ resolution: {integrity: sha512-+C0hxCmw9kg0XzT6vhE5mFkK6y225nC8UEQcN94K0fBCjPKkM+HqZMwGX205fzdGRi+Bxa55b/VhrIVwdv+8vw==}
+
+ mjml-validator@4.15.3:
+ resolution: {integrity: sha512-Xb72KdqRwjv/qM2rJpV22syyP2N3cRQ9VVDrN6u2FSzLq02buFNxmSPJ7CKhat3PrUNdVHU75KZwOf/tz4UEhA==}
+
+ mjml-wrapper@4.15.3:
+ resolution: {integrity: sha512-ditsCijeHJrmBmObtJmQ18ddLxv5oPyMTdPU8Di8APOnD2zPk7Z4UAuJSl7HXB45oFiivr3MJf4koFzMUSZ6Gg==}
+
+ mjml@4.15.3:
+ resolution: {integrity: sha512-bW2WpJxm6HS+S3Yu6tq1DUPFoTxU9sPviUSmnL7Ua+oVO3WA5ILFWqvujUlz+oeuM+HCwEyMiP5xvKNPENVjYA==}
+ hasBin: true
+
+ mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ msgpackr-extract@3.0.3:
+ resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==}
+ hasBin: true
+
+ msgpackr@1.11.4:
+ resolution: {integrity: sha512-uaff7RG9VIC4jacFW9xzL3jc0iM32DNHe4jYVycBcjUePT/Klnfj7pqtWJt9khvDFizmjN2TlYniYmSS2LIaZg==}
+
+ mute-stream@2.0.0:
+ resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ napi-postinstall@0.3.0:
+ resolution: {integrity: sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ nice-try@1.0.5:
+ resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
+ no-case@2.3.2:
+ resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==}
+
+ node-abort-controller@3.1.1:
+ resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
+
+ node-addon-api@5.1.0:
+ resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
+
+ node-emoji@1.11.0:
+ resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-gyp-build-optional-packages@5.2.2:
+ resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==}
+ hasBin: true
+
+ node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ nodemailer@6.10.1:
+ resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==}
+ engines: {node: '>=6.0.0'}
+
+ nodemailer@7.0.4:
+ resolution: {integrity: sha512-9O00Vh89/Ld2EcVCqJ/etd7u20UhME0f/NToPfArwPEe1Don1zy4mAIz6ariRr7mJ2RDxtaDzN0WJVdVXPtZaw==}
+ engines: {node: '>=6.0.0'}
+
+ nopt@5.0.0:
+ resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-url@8.0.2:
+ resolution: {integrity: sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==}
+ engines: {node: '>=14.16'}
+
+ npm-run-path@2.0.2:
+ resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
+ engines: {node: '>=4'}
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ npmlog@5.0.1:
+ resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
+ deprecated: This package is no longer supported.
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.fromentries@2.0.8:
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
+ engines: {node: '>= 0.4'}
+
+ object.groupby@1.0.3:
+ resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
+ engines: {node: '>= 0.4'}
+
+ object.values@1.2.1:
+ resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
+ engines: {node: '>= 0.4'}
+
+ on-exit-leak-free@2.1.2:
+ resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
+ engines: {node: '>=14.0.0'}
+
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
+ open@7.4.2:
+ resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
+ engines: {node: '>=8'}
+
+ openai@5.10.2:
+ resolution: {integrity: sha512-n+vi74LzHtvlKcDPn9aApgELGiu5CwhaLG40zxLTlFQdoSJCLACORIPC2uVQ3JEYAbqapM+XyRKFy2Thej7bIw==}
+ hasBin: true
+ peerDependencies:
+ ws: ^8.18.0
+ zod: ^3.23.8
+ peerDependenciesMeta:
+ ws:
+ optional: true
+ zod:
+ optional: true
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ora@5.4.1:
+ resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+ engines: {node: '>=10'}
+
+ os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
+ own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+
+ p-cancelable@3.0.0:
+ resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
+ engines: {node: '>=12.20'}
+
+ p-event@4.2.0:
+ resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
+ engines: {node: '>=8'}
+
+ p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-timeout@3.2.0:
+ resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
+ engines: {node: '>=8'}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ p-wait-for@3.2.0:
+ resolution: {integrity: sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==}
+ engines: {node: '>=8'}
+
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+ param-case@2.1.1:
+ resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parent-require@1.0.0:
+ resolution: {integrity: sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ==}
+ engines: {node: '>= 0.4.0'}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parse-json@8.3.0:
+ resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
+ engines: {node: '>=18'}
+
+ parse5-htmlparser2-tree-adapter@7.1.0:
+ resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==}
+
+ parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+
+ parseley@0.12.1:
+ resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
+
+ passport-jwt@4.0.1:
+ resolution: {integrity: sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==}
+
+ passport-strategy@1.0.0:
+ resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==}
+ engines: {node: '>= 0.4.0'}
+
+ passport@0.7.0:
+ resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==}
+ engines: {node: '>= 0.4.0'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@2.0.1:
+ resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
+ path-to-regexp@8.2.0:
+ resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
+ engines: {node: '>=16'}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pause@0.0.1:
+ resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==}
+
+ peberminta@0.9.0:
+ resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
+
+ peek-readable@5.4.2:
+ resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==}
+ engines: {node: '>=14.16'}
+
+ pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+
+ pg-cloudflare@1.2.7:
+ resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
+
+ pg-connection-string@2.6.2:
+ resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==}
+
+ pg-connection-string@2.9.1:
+ resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==}
+
+ pg-int8@1.0.1:
+ resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
+ engines: {node: '>=4.0.0'}
+
+ pg-pool@3.10.1:
+ resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==}
+ peerDependencies:
+ pg: '>=8.0'
+
+ pg-protocol@1.10.3:
+ resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
+
+ pg-types@2.2.0:
+ resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
+ engines: {node: '>=4'}
+
+ pg@8.16.0:
+ resolution: {integrity: sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ pg-native: '>=3.0.1'
+ peerDependenciesMeta:
+ pg-native:
+ optional: true
+
+ pgpass@1.0.5:
+ resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.2:
+ resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ engines: {node: '>=12'}
+
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ pino-abstract-transport@2.0.0:
+ resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==}
+
+ pino-std-serializers@7.0.0:
+ resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
+
+ pino@9.7.0:
+ resolution: {integrity: sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==}
+ hasBin: true
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ piscina@4.9.2:
+ resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==}
+
+ pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ postgres-array@2.0.0:
+ resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
+ engines: {node: '>=4'}
+
+ postgres-array@3.0.4:
+ resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
+ engines: {node: '>=12'}
+
+ postgres-bytea@1.0.0:
+ resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-date@1.0.7:
+ resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-date@2.1.0:
+ resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==}
+ engines: {node: '>=12'}
+
+ postgres-interval@1.2.0:
+ resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-interval@4.0.2:
+ resolution: {integrity: sha512-EMsphSQ1YkQqKZL2cuG0zHkmjCCzQqQ71l2GXITqRwjhRleCdv00bDk/ktaSi0LnlaPzAc3535KTrjXsTdtx7A==}
+ engines: {node: '>=12'}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@3.6.2:
+ resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ pretty-format@29.7.0:
+ resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ preview-email@3.1.0:
+ resolution: {integrity: sha512-ZtV1YrwscEjlrUzYrTSs6Nwo49JM3pXLM4fFOBSC3wSni+bxaWlw9/Qgk75PZO8M7cX2EybmL2iwvaV3vkAttw==}
+ engines: {node: '>=14'}
+
+ process-warning@4.0.1:
+ resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==}
+
+ process-warning@5.0.0:
+ resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==}
+
+ promise@7.3.1:
+ resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
+
+ prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+
+ proto-list@1.2.4:
+ resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
+ pug-attrs@3.0.0:
+ resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==}
+
+ pug-code-gen@3.0.3:
+ resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==}
+
+ pug-error@2.1.0:
+ resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==}
+
+ pug-filters@4.0.0:
+ resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==}
+
+ pug-lexer@5.0.1:
+ resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==}
+
+ pug-linker@4.0.0:
+ resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==}
+
+ pug-load@3.0.0:
+ resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==}
+
+ pug-parser@6.0.0:
+ resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==}
+
+ pug-runtime@3.0.1:
+ resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==}
+
+ pug-strip-comments@2.0.0:
+ resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==}
+
+ pug-walk@2.0.0:
+ resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==}
+
+ pug@3.0.3:
+ resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==}
+
+ punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ pure-rand@6.1.0:
+ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
+
+ qs@6.14.0:
+ resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
+ engines: {node: '>=0.6'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ quick-format-unescaped@4.0.4:
+ resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
+
+ quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ rc@1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
+ real-require@0.2.0:
+ resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
+ engines: {node: '>= 12.13.0'}
+
+ rechoir@0.8.0:
+ resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
+ engines: {node: '>= 10.13.0'}
+
+ redis-errors@1.2.0:
+ resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
+ engines: {node: '>=4'}
+
+ redis-parser@3.0.0:
+ resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
+ engines: {node: '>=4'}
+
+ reflect-metadata@0.2.2:
+ resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
+
+ reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ relateurl@0.2.7:
+ resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
+ engines: {node: '>= 0.10'}
+
+ repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ resolve-alpn@1.2.1:
+ resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
+
+ resolve-cwd@3.0.0:
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
+ engines: {node: '>=8'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve.exports@2.0.3:
+ resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
+ engines: {node: '>=10'}
+
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ responselike@3.0.0:
+ resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
+ engines: {node: '>=14.16'}
+
+ restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
+ ret@0.5.0:
+ resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==}
+ engines: {node: '>=10'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rfdc@1.4.1:
+ resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ run-applescript@3.2.0:
+ resolution: {integrity: sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg==}
+ engines: {node: '>=4'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ rxjs@7.8.1:
+ resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
+ safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex2@5.0.0:
+ resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==}
+
+ safe-stable-stringify@2.5.0:
+ resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
+ engines: {node: '>=10'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ schema-utils@3.3.0:
+ resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ engines: {node: '>= 10.13.0'}
+
+ schema-utils@4.3.2:
+ resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
+ engines: {node: '>= 10.13.0'}
+
+ secure-json-parse@4.0.0:
+ resolution: {integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==}
+
+ seek-bzip@2.0.0:
+ resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==}
+ hasBin: true
+
+ selderee@0.11.0:
+ resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
+
+ semver-regex@4.0.5:
+ resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==}
+ engines: {node: '>=12'}
+
+ semver-truncate@3.0.0:
+ resolution: {integrity: sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==}
+ engines: {node: '>=12'}
+
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
+ set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+
+ set-cookie-parser@2.7.1:
+ resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+
+ slice-ansi@7.1.0:
+ resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
+ engines: {node: '>=18'}
+
+ slick@1.12.2:
+ resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==}
+
+ slugify@1.6.6:
+ resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
+ engines: {node: '>=8.0.0'}
+
+ socket.io-adapter@2.5.5:
+ resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
+
+ socket.io-parser@4.2.4:
+ resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
+ engines: {node: '>=10.0.0'}
+
+ socket.io@4.8.1:
+ resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
+ engines: {node: '>=10.2.0'}
+
+ sonic-boom@4.2.0:
+ resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
+
+ sort-keys-length@1.0.1:
+ resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==}
+ engines: {node: '>=0.10.0'}
+
+ sort-keys@1.1.2:
+ resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-support@0.5.13:
+ resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
+ split2@4.2.0:
+ resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
+ engines: {node: '>= 10.x'}
+
+ sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+
+ sqlstring@2.3.3:
+ resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
+ engines: {node: '>= 0.6'}
+
+ stable-hash@0.0.5:
+ resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
+
+ stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+
+ standard-as-callback@2.1.0:
+ resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
+
+ statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
+
+ streamx@2.22.1:
+ resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==}
+
+ string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+
+ string-length@4.0.2:
+ resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
+ engines: {node: '>=10'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
+ string-width@7.2.0:
+ resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+ engines: {node: '>=18'}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
+ strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+
+ strip-bom@4.0.0:
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
+ engines: {node: '>=8'}
+
+ strip-dirs@3.0.0:
+ resolution: {integrity: sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==}
+
+ strip-eof@1.0.0:
+ resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
+ engines: {node: '>=0.10.0'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+
+ strip-json-comments@2.0.1:
+ resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
+ engines: {node: '>=0.10.0'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strnum@2.1.1:
+ resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==}
+
+ strtok3@10.3.1:
+ resolution: {integrity: sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw==}
+ engines: {node: '>=18'}
+
+ strtok3@9.1.1:
+ resolution: {integrity: sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==}
+ engines: {node: '>=16'}
+
+ superagent@10.2.1:
+ resolution: {integrity: sha512-O+PCv11lgTNJUzy49teNAWLjBZfc+A1enOwTpLlH6/rsvKcTwcdTT8m9azGkVqM7HBl5jpyZ7KTPhHweokBcdg==}
+ engines: {node: '>=14.18.0'}
+
+ supertest@7.1.1:
+ resolution: {integrity: sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==}
+ engines: {node: '>=14.18.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ swagger-ui-dist@5.21.0:
+ resolution: {integrity: sha512-E0K3AB6HvQd8yQNSMR7eE5bk+323AUxjtCz/4ZNKiahOlPhPJxqn3UPIGs00cyY/dhrTDJ61L7C/a8u6zhGrZg==}
+
+ symbol-observable@4.0.0:
+ resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==}
+ engines: {node: '>=0.10'}
+
+ synckit@0.11.8:
+ resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ tapable@2.2.2:
+ resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
+ engines: {node: '>=6'}
+
+ tar-stream@3.1.7:
+ resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
+
+ tar@6.2.1:
+ resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
+ engines: {node: '>=10'}
+
+ tarn@3.0.2:
+ resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==}
+ engines: {node: '>=8.0.0'}
+
+ terser-webpack-plugin@5.3.14:
+ resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
+ terser@5.43.1:
+ resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ test-exclude@6.0.0:
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
+ engines: {node: '>=8'}
+
+ text-decoder@1.2.3:
+ resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==}
+
+ text-decoding@1.0.0:
+ resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==}
+
+ text-extensions@2.4.0:
+ resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
+ engines: {node: '>=8'}
+
+ thread-stream@3.1.0:
+ resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ tildify@2.0.0:
+ resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==}
+ engines: {node: '>=8'}
+
+ tinyexec@1.0.1:
+ resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
+ engines: {node: '>=12.0.0'}
+
+ tlds@1.259.0:
+ resolution: {integrity: sha512-AldGGlDP0PNgwppe2quAvuBl18UcjuNtOnDuUkqhd6ipPqrYYBt3aTxK1QTsBVknk97lS2JcafWMghjGWFtunw==}
+ hasBin: true
+
+ tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+
+ tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toad-cache@3.7.0:
+ resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==}
+ engines: {node: '>=12'}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ token-stream@1.0.0:
+ resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==}
+
+ token-types@6.0.3:
+ resolution: {integrity: sha512-IKJ6EzuPPWtKtEIEPpIdXv9j5j2LGJEYk0CKY2efgKoYKLBiZdh6iQkLVBow/CB3phyWAWCyk+bZeaimJn6uRQ==}
+ engines: {node: '>=14.16'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+
+ ts-api-utils@2.1.0:
+ resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
+ ts-jest@29.4.0:
+ resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@babel/core': '>=7.0.0-beta.0 <8'
+ '@jest/transform': ^29.0.0 || ^30.0.0
+ '@jest/types': ^29.0.0 || ^30.0.0
+ babel-jest: ^29.0.0 || ^30.0.0
+ esbuild: '*'
+ jest: ^29.0.0 || ^30.0.0
+ jest-util: ^29.0.0 || ^30.0.0
+ typescript: '>=4.3 <6'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@jest/transform':
+ optional: true
+ '@jest/types':
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
+ jest-util:
+ optional: true
+
+ ts-loader@9.5.2:
+ resolution: {integrity: sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ typescript: '*'
+ webpack: ^5.0.0
+
+ ts-node@10.9.2:
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+
+ tsconfig-paths-webpack-plugin@4.2.0:
+ resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==}
+ engines: {node: '>=10.13.0'}
+
+ tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+
+ tsconfig-paths@4.2.0:
+ resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
+ engines: {node: '>=6'}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
+ engines: {node: '>=16'}
+
+ type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
+
+ typedarray@0.0.6:
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
+ typescript-eslint@8.35.1:
+ resolution: {integrity: sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ typescript@5.8.3:
+ resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
+ uid@2.0.2:
+ resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==}
+ engines: {node: '>=8'}
+
+ uint8array-extras@1.4.0:
+ resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==}
+ engines: {node: '>=18'}
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ unbzip2-stream@1.4.3:
+ resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
+
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
+ unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unrs-resolver@1.10.1:
+ resolution: {integrity: sha512-EFrL7Hw4kmhZdwWO3dwwFJo6hO3FXuQ6Bg8BK/faHZ9m1YxqBS31BNSTxklIQkxK/4LlV8zTYnPsIRLBzTzjCA==}
+
+ update-browserslist-db@1.1.3:
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ upper-case@1.1.3:
+ resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==}
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
+ uuid@9.0.1:
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
+ hasBin: true
+
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
+ v8-to-istanbul@9.3.0:
+ resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
+ engines: {node: '>=10.12.0'}
+
+ valid-data-url@3.0.1:
+ resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==}
+ engines: {node: '>=10'}
+
+ validator@13.15.15:
+ resolution: {integrity: sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==}
+ engines: {node: '>= 0.10'}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ void-elements@3.1.0:
+ resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
+ engines: {node: '>=0.10.0'}
+
+ walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+
+ watchpack@2.4.4:
+ resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==}
+ engines: {node: '>=10.13.0'}
+
+ wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+
+ web-push@3.6.7:
+ resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==}
+ engines: {node: '>= 16'}
+ hasBin: true
+
+ web-resource-inliner@6.0.1:
+ resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==}
+ engines: {node: '>=10.0.0'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webpack-node-externals@3.0.0:
+ resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==}
+ engines: {node: '>=6'}
+
+ webpack-sources@3.3.3:
+ resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==}
+ engines: {node: '>=10.13.0'}
+
+ webpack@5.99.6:
+ resolution: {integrity: sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
+ engines: {node: '>= 0.4'}
+
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ wide-align@1.1.5:
+ resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
+
+ with@7.0.2:
+ resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==}
+ engines: {node: '>= 10.0.0'}
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
+ wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrap-ansi@9.0.0:
+ resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
+ engines: {node: '>=18'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ write-file-atomic@4.0.2:
+ resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+
+ ws@8.17.1:
+ resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ yaml@2.8.0:
+ resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yauzl@3.2.0:
+ resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==}
+ engines: {node: '>=12'}
+
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yocto-queue@1.2.1:
+ resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
+ engines: {node: '>=12.20'}
+
+ yoctocolors-cjs@2.1.2:
+ resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==}
+ engines: {node: '>=18'}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@angular-devkit/core@19.2.6(chokidar@4.0.3)':
+ dependencies:
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
+ jsonc-parser: 3.3.1
+ picomatch: 4.0.2
+ rxjs: 7.8.1
+ source-map: 0.7.4
+ optionalDependencies:
+ chokidar: 4.0.3
+
+ '@angular-devkit/core@19.2.8(chokidar@4.0.3)':
+ dependencies:
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
+ jsonc-parser: 3.3.1
+ picomatch: 4.0.2
+ rxjs: 7.8.1
+ source-map: 0.7.4
+ optionalDependencies:
+ chokidar: 4.0.3
+
+ '@angular-devkit/schematics-cli@19.2.8(@types/node@22.16.0)(chokidar@4.0.3)':
+ dependencies:
+ '@angular-devkit/core': 19.2.8(chokidar@4.0.3)
+ '@angular-devkit/schematics': 19.2.8(chokidar@4.0.3)
+ '@inquirer/prompts': 7.3.2(@types/node@22.16.0)
+ ansi-colors: 4.1.3
+ symbol-observable: 4.0.0
+ yargs-parser: 21.1.1
+ transitivePeerDependencies:
+ - '@types/node'
+ - chokidar
+
+ '@angular-devkit/schematics@19.2.6(chokidar@4.0.3)':
+ dependencies:
+ '@angular-devkit/core': 19.2.6(chokidar@4.0.3)
+ jsonc-parser: 3.3.1
+ magic-string: 0.30.17
+ ora: 5.4.1
+ rxjs: 7.8.1
+ transitivePeerDependencies:
+ - chokidar
+
+ '@angular-devkit/schematics@19.2.8(chokidar@4.0.3)':
+ dependencies:
+ '@angular-devkit/core': 19.2.8(chokidar@4.0.3)
+ jsonc-parser: 3.3.1
+ magic-string: 0.30.17
+ ora: 5.4.1
+ rxjs: 7.8.1
+ transitivePeerDependencies:
+ - chokidar
+
+ '@aws-crypto/crc32@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.840.0
+ tslib: 2.8.1
+
+ '@aws-crypto/crc32c@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.840.0
+ tslib: 2.8.1
+
+ '@aws-crypto/sha1-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-locate-window': 3.804.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.8.1
+
+ '@aws-crypto/sha256-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-locate-window': 3.804.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.8.1
+
+ '@aws-crypto/sha256-js@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.840.0
+ tslib: 2.8.1
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@aws-crypto/util@5.2.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.8.1
+
+ '@aws-sdk/client-s3@3.850.0':
+ dependencies:
+ '@aws-crypto/sha1-browser': 5.2.0
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/credential-provider-node': 3.848.0
+ '@aws-sdk/middleware-bucket-endpoint': 3.840.0
+ '@aws-sdk/middleware-expect-continue': 3.840.0
+ '@aws-sdk/middleware-flexible-checksums': 3.846.0
+ '@aws-sdk/middleware-host-header': 3.840.0
+ '@aws-sdk/middleware-location-constraint': 3.840.0
+ '@aws-sdk/middleware-logger': 3.840.0
+ '@aws-sdk/middleware-recursion-detection': 3.840.0
+ '@aws-sdk/middleware-sdk-s3': 3.846.0
+ '@aws-sdk/middleware-ssec': 3.840.0
+ '@aws-sdk/middleware-user-agent': 3.848.0
+ '@aws-sdk/region-config-resolver': 3.840.0
+ '@aws-sdk/signature-v4-multi-region': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-endpoints': 3.848.0
+ '@aws-sdk/util-user-agent-browser': 3.840.0
+ '@aws-sdk/util-user-agent-node': 3.848.0
+ '@aws-sdk/xml-builder': 3.821.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.7.2
+ '@smithy/eventstream-serde-browser': 4.0.4
+ '@smithy/eventstream-serde-config-resolver': 4.1.2
+ '@smithy/eventstream-serde-node': 4.0.4
+ '@smithy/fetch-http-handler': 5.1.0
+ '@smithy/hash-blob-browser': 4.0.4
+ '@smithy/hash-node': 4.0.4
+ '@smithy/hash-stream-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/md5-js': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.17
+ '@smithy/middleware-retry': 4.1.18
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.1.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.25
+ '@smithy/util-defaults-mode-node': 4.0.25
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.6
+ '@smithy/util-stream': 4.2.3
+ '@smithy/util-utf8': 4.0.0
+ '@smithy/util-waiter': 4.0.6
+ '@types/uuid': 9.0.8
+ tslib: 2.8.1
+ uuid: 9.0.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sso@3.848.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/middleware-host-header': 3.840.0
+ '@aws-sdk/middleware-logger': 3.840.0
+ '@aws-sdk/middleware-recursion-detection': 3.840.0
+ '@aws-sdk/middleware-user-agent': 3.848.0
+ '@aws-sdk/region-config-resolver': 3.840.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-endpoints': 3.848.0
+ '@aws-sdk/util-user-agent-browser': 3.840.0
+ '@aws-sdk/util-user-agent-node': 3.848.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.7.2
+ '@smithy/fetch-http-handler': 5.1.0
+ '@smithy/hash-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.17
+ '@smithy/middleware-retry': 4.1.18
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.1.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.25
+ '@smithy/util-defaults-mode-node': 4.0.25
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.6
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/core@3.846.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/xml-builder': 3.821.0
+ '@smithy/core': 3.7.2
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/signature-v4': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-utf8': 4.0.0
+ fast-xml-parser: 5.2.5
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-env@3.846.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-http@3.846.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/fetch-http-handler': 5.1.0
+ '@smithy/node-http-handler': 4.1.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/util-stream': 4.2.3
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-ini@3.848.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/credential-provider-env': 3.846.0
+ '@aws-sdk/credential-provider-http': 3.846.0
+ '@aws-sdk/credential-provider-process': 3.846.0
+ '@aws-sdk/credential-provider-sso': 3.848.0
+ '@aws-sdk/credential-provider-web-identity': 3.848.0
+ '@aws-sdk/nested-clients': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-node@3.848.0':
+ dependencies:
+ '@aws-sdk/credential-provider-env': 3.846.0
+ '@aws-sdk/credential-provider-http': 3.846.0
+ '@aws-sdk/credential-provider-ini': 3.848.0
+ '@aws-sdk/credential-provider-process': 3.846.0
+ '@aws-sdk/credential-provider-sso': 3.848.0
+ '@aws-sdk/credential-provider-web-identity': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-process@3.846.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-sso@3.848.0':
+ dependencies:
+ '@aws-sdk/client-sso': 3.848.0
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/token-providers': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-web-identity@3.848.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/nested-clients': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/middleware-bucket-endpoint@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-arn-parser': 3.804.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-expect-continue@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-flexible-checksums@3.846.0':
+ dependencies:
+ '@aws-crypto/crc32': 5.2.0
+ '@aws-crypto/crc32c': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/is-array-buffer': 4.0.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-stream': 4.2.3
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-host-header@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-location-constraint@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-logger@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-recursion-detection@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-sdk-s3@3.846.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-arn-parser': 3.804.0
+ '@smithy/core': 3.7.2
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/signature-v4': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-stream': 4.2.3
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-ssec@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-user-agent@3.848.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-endpoints': 3.848.0
+ '@smithy/core': 3.7.2
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/nested-clients@3.848.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/middleware-host-header': 3.840.0
+ '@aws-sdk/middleware-logger': 3.840.0
+ '@aws-sdk/middleware-recursion-detection': 3.840.0
+ '@aws-sdk/middleware-user-agent': 3.848.0
+ '@aws-sdk/region-config-resolver': 3.840.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-endpoints': 3.848.0
+ '@aws-sdk/util-user-agent-browser': 3.840.0
+ '@aws-sdk/util-user-agent-node': 3.848.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.7.2
+ '@smithy/fetch-http-handler': 5.1.0
+ '@smithy/hash-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.17
+ '@smithy/middleware-retry': 4.1.18
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.1.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.25
+ '@smithy/util-defaults-mode-node': 4.0.25
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.6
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/region-config-resolver@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@aws-sdk/s3-request-presigner@3.850.0':
+ dependencies:
+ '@aws-sdk/signature-v4-multi-region': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@aws-sdk/util-format-url': 3.840.0
+ '@smithy/middleware-endpoint': 4.1.17
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/signature-v4-multi-region@3.846.0':
+ dependencies:
+ '@aws-sdk/middleware-sdk-s3': 3.846.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/signature-v4': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/token-providers@3.848.0':
+ dependencies:
+ '@aws-sdk/core': 3.846.0
+ '@aws-sdk/nested-clients': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/types@3.840.0':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/util-arn-parser@3.804.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@aws-sdk/util-endpoints@3.848.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-endpoints': 3.0.6
+ tslib: 2.8.1
+
+ '@aws-sdk/util-format-url@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/querystring-builder': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/util-locate-window@3.804.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@aws-sdk/util-user-agent-browser@3.840.0':
+ dependencies:
+ '@aws-sdk/types': 3.840.0
+ '@smithy/types': 4.3.1
+ bowser: 2.11.0
+ tslib: 2.8.1
+
+ '@aws-sdk/util-user-agent-node@3.848.0':
+ dependencies:
+ '@aws-sdk/middleware-user-agent': 3.848.0
+ '@aws-sdk/types': 3.840.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/xml-builder@3.821.0':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.28.0': {}
+
+ '@babel/core@7.28.0':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helpers': 7.27.6
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.0
+ convert-source-map: 2.0.0
+ debug: 4.4.1
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.28.0':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.28.0
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.25.1
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-globals@7.28.0': {}
+
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.27.1': {}
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helpers@7.27.6':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.0
+
+ '@babel/parser@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.0
+
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/runtime@7.27.6':
+ optional: true
+
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+
+ '@babel/traverse@7.28.0':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.0
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.28.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@bcoe/v8-coverage@0.2.3': {}
+
+ '@colors/colors@1.5.0':
+ optional: true
+
+ '@commitlint/cli@19.8.1(@types/node@22.16.0)(typescript@5.8.3)':
+ dependencies:
+ '@commitlint/format': 19.8.1
+ '@commitlint/lint': 19.8.1
+ '@commitlint/load': 19.8.1(@types/node@22.16.0)(typescript@5.8.3)
+ '@commitlint/read': 19.8.1
+ '@commitlint/types': 19.8.1
+ tinyexec: 1.0.1
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ '@commitlint/config-conventional@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ conventional-changelog-conventionalcommits: 7.0.2
+
+ '@commitlint/config-validator@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ ajv: 8.17.1
+
+ '@commitlint/ensure@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ lodash.camelcase: 4.3.0
+ lodash.kebabcase: 4.1.1
+ lodash.snakecase: 4.1.1
+ lodash.startcase: 4.4.0
+ lodash.upperfirst: 4.3.1
+
+ '@commitlint/execute-rule@19.8.1': {}
+
+ '@commitlint/format@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ chalk: 5.4.1
+
+ '@commitlint/is-ignored@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ semver: 7.7.2
+
+ '@commitlint/lint@19.8.1':
+ dependencies:
+ '@commitlint/is-ignored': 19.8.1
+ '@commitlint/parse': 19.8.1
+ '@commitlint/rules': 19.8.1
+ '@commitlint/types': 19.8.1
+
+ '@commitlint/load@19.8.1(@types/node@22.16.0)(typescript@5.8.3)':
+ dependencies:
+ '@commitlint/config-validator': 19.8.1
+ '@commitlint/execute-rule': 19.8.1
+ '@commitlint/resolve-extends': 19.8.1
+ '@commitlint/types': 19.8.1
+ chalk: 5.4.1
+ cosmiconfig: 9.0.0(typescript@5.8.3)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@22.16.0)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3)
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ lodash.uniq: 4.5.0
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ '@commitlint/message@19.8.1': {}
+
+ '@commitlint/parse@19.8.1':
+ dependencies:
+ '@commitlint/types': 19.8.1
+ conventional-changelog-angular: 7.0.0
+ conventional-commits-parser: 5.0.0
+
+ '@commitlint/read@19.8.1':
+ dependencies:
+ '@commitlint/top-level': 19.8.1
+ '@commitlint/types': 19.8.1
+ git-raw-commits: 4.0.0
+ minimist: 1.2.8
+ tinyexec: 1.0.1
+
+ '@commitlint/resolve-extends@19.8.1':
+ dependencies:
+ '@commitlint/config-validator': 19.8.1
+ '@commitlint/types': 19.8.1
+ global-directory: 4.0.1
+ import-meta-resolve: 4.1.0
+ lodash.mergewith: 4.6.2
+ resolve-from: 5.0.0
+
+ '@commitlint/rules@19.8.1':
+ dependencies:
+ '@commitlint/ensure': 19.8.1
+ '@commitlint/message': 19.8.1
+ '@commitlint/to-lines': 19.8.1
+ '@commitlint/types': 19.8.1
+
+ '@commitlint/to-lines@19.8.1': {}
+
+ '@commitlint/top-level@19.8.1':
+ dependencies:
+ find-up: 7.0.0
+
+ '@commitlint/types@19.8.1':
+ dependencies:
+ '@types/conventional-commits-parser': 5.0.1
+ chalk: 5.4.1
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@css-inline/css-inline-android-arm-eabi@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-android-arm64@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-darwin-arm64@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-darwin-x64@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-linux-arm-gnueabihf@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-linux-arm64-gnu@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-linux-arm64-musl@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-linux-x64-gnu@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-linux-x64-musl@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline-win32-x64-msvc@0.14.1':
+ optional: true
+
+ '@css-inline/css-inline@0.14.1':
+ optionalDependencies:
+ '@css-inline/css-inline-android-arm-eabi': 0.14.1
+ '@css-inline/css-inline-android-arm64': 0.14.1
+ '@css-inline/css-inline-darwin-arm64': 0.14.1
+ '@css-inline/css-inline-darwin-x64': 0.14.1
+ '@css-inline/css-inline-linux-arm-gnueabihf': 0.14.1
+ '@css-inline/css-inline-linux-arm64-gnu': 0.14.1
+ '@css-inline/css-inline-linux-arm64-musl': 0.14.1
+ '@css-inline/css-inline-linux-x64-gnu': 0.14.1
+ '@css-inline/css-inline-linux-x64-musl': 0.14.1
+ '@css-inline/css-inline-win32-x64-msvc': 0.14.1
+
+ '@emnapi/core@1.4.3':
+ dependencies:
+ '@emnapi/wasi-threads': 1.0.2
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.4.3':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.0.2':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@eslint-community/eslint-utils@4.7.0(eslint@9.30.1(jiti@2.4.2))':
+ dependencies:
+ eslint: 9.30.1(jiti@2.4.2)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/config-array@0.21.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.1
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.3.0': {}
+
+ '@eslint/core@0.14.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/core@0.15.1':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.1':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.1
+ espree: 10.4.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.30.1': {}
+
+ '@eslint/object-schema@2.1.6': {}
+
+ '@eslint/plugin-kit@0.3.3':
+ dependencies:
+ '@eslint/core': 0.15.1
+ levn: 0.4.1
+
+ '@fastify/accept-negotiator@2.0.1': {}
+
+ '@fastify/ajv-compiler@4.0.2':
+ dependencies:
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
+ fast-uri: 3.0.6
+
+ '@fastify/busboy@1.2.1':
+ dependencies:
+ text-decoding: 1.0.0
+
+ '@fastify/cors@11.0.1':
+ dependencies:
+ fastify-plugin: 5.0.1
+ toad-cache: 3.7.0
+
+ '@fastify/error@4.2.0': {}
+
+ '@fastify/fast-json-stringify-compiler@5.0.3':
+ dependencies:
+ fast-json-stringify: 6.0.1
+
+ '@fastify/formbody@8.0.2':
+ dependencies:
+ fast-querystring: 1.1.2
+ fastify-plugin: 5.0.1
+
+ '@fastify/forwarded@3.0.0': {}
+
+ '@fastify/merge-json-schemas@0.2.1':
+ dependencies:
+ dequal: 2.0.3
+
+ '@fastify/middie@9.0.3':
+ dependencies:
+ '@fastify/error': 4.2.0
+ fastify-plugin: 5.0.1
+ path-to-regexp: 8.2.0
+ reusify: 1.1.0
+
+ '@fastify/proxy-addr@5.0.0':
+ dependencies:
+ '@fastify/forwarded': 3.0.0
+ ipaddr.js: 2.2.0
+
+ '@fastify/send@4.1.0':
+ dependencies:
+ '@lukeed/ms': 2.0.2
+ escape-html: 1.0.3
+ fast-decode-uri-component: 1.0.1
+ http-errors: 2.0.0
+ mime: 3.0.0
+
+ '@fastify/static@8.2.0':
+ dependencies:
+ '@fastify/accept-negotiator': 2.0.1
+ '@fastify/send': 4.1.0
+ content-disposition: 0.5.4
+ fastify-plugin: 5.0.1
+ fastq: 1.19.1
+ glob: 11.0.3
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
+ '@inquirer/checkbox@4.1.9(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/figures': 1.0.12
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ ansi-escapes: 4.3.2
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/confirm@5.1.13(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/core@10.1.14(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/figures': 1.0.12
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ ansi-escapes: 4.3.2
+ cli-width: 4.1.0
+ mute-stream: 2.0.0
+ signal-exit: 4.1.0
+ wrap-ansi: 6.2.0
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/editor@4.2.14(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ external-editor: 3.1.0
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/expand@4.0.16(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/figures@1.0.12': {}
+
+ '@inquirer/input@4.2.0(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/number@3.0.16(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/password@4.0.16(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ ansi-escapes: 4.3.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/prompts@7.3.2(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/checkbox': 4.1.9(@types/node@22.16.0)
+ '@inquirer/confirm': 5.1.13(@types/node@22.16.0)
+ '@inquirer/editor': 4.2.14(@types/node@22.16.0)
+ '@inquirer/expand': 4.0.16(@types/node@22.16.0)
+ '@inquirer/input': 4.2.0(@types/node@22.16.0)
+ '@inquirer/number': 3.0.16(@types/node@22.16.0)
+ '@inquirer/password': 4.0.16(@types/node@22.16.0)
+ '@inquirer/rawlist': 4.1.4(@types/node@22.16.0)
+ '@inquirer/search': 3.0.16(@types/node@22.16.0)
+ '@inquirer/select': 4.2.4(@types/node@22.16.0)
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/prompts@7.4.1(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/checkbox': 4.1.9(@types/node@22.16.0)
+ '@inquirer/confirm': 5.1.13(@types/node@22.16.0)
+ '@inquirer/editor': 4.2.14(@types/node@22.16.0)
+ '@inquirer/expand': 4.0.16(@types/node@22.16.0)
+ '@inquirer/input': 4.2.0(@types/node@22.16.0)
+ '@inquirer/number': 3.0.16(@types/node@22.16.0)
+ '@inquirer/password': 4.0.16(@types/node@22.16.0)
+ '@inquirer/rawlist': 4.1.4(@types/node@22.16.0)
+ '@inquirer/search': 3.0.16(@types/node@22.16.0)
+ '@inquirer/select': 4.2.4(@types/node@22.16.0)
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/rawlist@4.1.4(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/search@3.0.16(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/figures': 1.0.12
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/select@4.2.4(@types/node@22.16.0)':
+ dependencies:
+ '@inquirer/core': 10.1.14(@types/node@22.16.0)
+ '@inquirer/figures': 1.0.12
+ '@inquirer/type': 3.0.7(@types/node@22.16.0)
+ ansi-escapes: 4.3.2
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@inquirer/type@3.0.7(@types/node@22.16.0)':
+ optionalDependencies:
+ '@types/node': 22.16.0
+
+ '@ioredis/commands@1.2.0': {}
+
+ '@isaacs/balanced-match@4.0.1': {}
+
+ '@isaacs/brace-expansion@5.0.0':
+ dependencies:
+ '@isaacs/balanced-match': 4.0.1
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ dependencies:
+ camelcase: 5.3.1
+ find-up: 4.1.0
+ get-package-type: 0.1.0
+ js-yaml: 3.14.1
+ resolve-from: 5.0.0
+
+ '@istanbuljs/schema@0.1.3': {}
+
+ '@jercle/yargonaut@1.1.5':
+ dependencies:
+ chalk: 4.1.2
+ figlet: 1.8.1
+ parent-require: 1.0.0
+
+ '@jest/console@29.7.0':
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ slash: 3.0.0
+
+ '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))':
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/reporters': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-changed-files: 29.7.0
+ jest-config: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-resolve-dependencies: 29.7.0
+ jest-runner: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ jest-watcher: 29.7.0
+ micromatch: 4.0.8
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ '@jest/environment@29.7.0':
+ dependencies:
+ '@jest/fake-timers': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ jest-mock: 29.7.0
+
+ '@jest/expect-utils@29.7.0':
+ dependencies:
+ jest-get-type: 29.6.3
+
+ '@jest/expect@29.7.0':
+ dependencies:
+ expect: 29.7.0
+ jest-snapshot: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/fake-timers@29.7.0':
+ dependencies:
+ '@jest/types': 29.6.3
+ '@sinonjs/fake-timers': 10.3.0
+ '@types/node': 22.16.0
+ jest-message-util: 29.7.0
+ jest-mock: 29.7.0
+ jest-util: 29.7.0
+
+ '@jest/globals@29.7.0':
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/types': 29.6.3
+ jest-mock: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/reporters@29.7.0':
+ dependencies:
+ '@bcoe/v8-coverage': 0.2.3
+ '@jest/console': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@jridgewell/trace-mapping': 0.3.29
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ collect-v8-coverage: 1.0.2
+ exit: 0.1.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-instrument: 6.0.3
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.7
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ jest-worker: 29.7.0
+ slash: 3.0.0
+ string-length: 4.0.2
+ strip-ansi: 6.0.1
+ v8-to-istanbul: 9.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/schemas@29.6.3':
+ dependencies:
+ '@sinclair/typebox': 0.27.8
+
+ '@jest/source-map@29.6.3':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.29
+ callsites: 3.1.0
+ graceful-fs: 4.2.11
+
+ '@jest/test-result@29.7.0':
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/istanbul-lib-coverage': 2.0.6
+ collect-v8-coverage: 1.0.2
+
+ '@jest/test-sequencer@29.7.0':
+ dependencies:
+ '@jest/test-result': 29.7.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ slash: 3.0.0
+
+ '@jest/transform@29.7.0':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@jest/types': 29.6.3
+ '@jridgewell/trace-mapping': 0.3.29
+ babel-plugin-istanbul: 6.1.1
+ chalk: 4.1.2
+ convert-source-map: 2.0.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-util: 29.7.0
+ micromatch: 4.0.8
+ pirates: 4.0.7
+ slash: 3.0.0
+ write-file-atomic: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/types@29.6.3':
+ dependencies:
+ '@jest/schemas': 29.6.3
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 22.16.0
+ '@types/yargs': 17.0.33
+ chalk: 4.1.2
+
+ '@jridgewell/gen-mapping@0.3.12':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/source-map@0.3.10':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/sourcemap-codec@1.5.4': {}
+
+ '@jridgewell/trace-mapping@0.3.29':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ '@keyv/redis@4.5.0(keyv@5.3.4)':
+ dependencies:
+ '@redis/client': 1.6.1
+ cluster-key-slot: 1.1.2
+ keyv: 5.3.4
+
+ '@keyv/serialize@1.0.3':
+ dependencies:
+ buffer: 6.0.3
+
+ '@lukeed/csprng@1.1.0': {}
+
+ '@lukeed/ms@2.0.2': {}
+
+ '@mapbox/node-pre-gyp@1.0.11':
+ dependencies:
+ detect-libc: 2.0.4
+ https-proxy-agent: 5.0.1
+ make-dir: 3.1.0
+ node-fetch: 2.7.0
+ nopt: 5.0.0
+ npmlog: 5.0.1
+ rimraf: 3.0.2
+ semver: 7.7.2
+ tar: 6.2.1
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@microsoft/tsdoc@0.15.1': {}
+
+ '@mikro-orm/cli@6.4.16(pg@8.16.0)':
+ dependencies:
+ '@jercle/yargonaut': 1.1.5
+ '@mikro-orm/core': 6.4.16
+ '@mikro-orm/knex': 6.4.16(@mikro-orm/core@6.4.16)(pg@8.16.0)
+ fs-extra: 11.3.0
+ tsconfig-paths: 4.2.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - better-sqlite3
+ - libsql
+ - mariadb
+ - mysql
+ - mysql2
+ - pg
+ - pg-native
+ - sqlite3
+ - supports-color
+ - tedious
+
+ '@mikro-orm/core@6.4.16':
+ dependencies:
+ dataloader: 2.2.3
+ dotenv: 16.5.0
+ esprima: 4.0.1
+ fs-extra: 11.3.0
+ globby: 11.1.0
+ mikro-orm: 6.4.16
+ reflect-metadata: 0.2.2
+
+ '@mikro-orm/knex@6.4.16(@mikro-orm/core@6.4.16)(pg@8.16.0)':
+ dependencies:
+ '@mikro-orm/core': 6.4.16
+ fs-extra: 11.3.0
+ knex: 3.1.0(pg@8.16.0)
+ sqlstring: 2.3.3
+ transitivePeerDependencies:
+ - mysql
+ - mysql2
+ - pg
+ - pg-native
+ - sqlite3
+ - supports-color
+ - tedious
+
+ '@mikro-orm/nestjs@6.1.1(@mikro-orm/core@6.4.16)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)':
+ dependencies:
+ '@mikro-orm/core': 6.4.16
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+
+ '@mikro-orm/postgresql@6.4.16(@mikro-orm/core@6.4.16)':
+ dependencies:
+ '@mikro-orm/core': 6.4.16
+ '@mikro-orm/knex': 6.4.16(@mikro-orm/core@6.4.16)(pg@8.16.0)
+ pg: 8.16.0
+ postgres-array: 3.0.4
+ postgres-date: 2.1.0
+ postgres-interval: 4.0.2
+ transitivePeerDependencies:
+ - better-sqlite3
+ - libsql
+ - mariadb
+ - mysql
+ - mysql2
+ - pg-native
+ - sqlite3
+ - supports-color
+ - tedious
+
+ '@mikro-orm/seeder@6.4.16(@mikro-orm/core@6.4.16)':
+ dependencies:
+ '@mikro-orm/core': 6.4.16
+ fs-extra: 11.3.0
+ globby: 11.1.0
+
+ '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3':
+ optional: true
+
+ '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3':
+ optional: true
+
+ '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3':
+ optional: true
+
+ '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3':
+ optional: true
+
+ '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3':
+ optional: true
+
+ '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3':
+ optional: true
+
+ '@napi-rs/nice-android-arm-eabi@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-android-arm64@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-darwin-arm64@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-darwin-x64@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-freebsd-x64@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-arm-gnueabihf@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-arm64-gnu@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-arm64-musl@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-ppc64-gnu@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-riscv64-gnu@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-s390x-gnu@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-x64-gnu@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-linux-x64-musl@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-win32-arm64-msvc@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-win32-ia32-msvc@1.0.4':
+ optional: true
+
+ '@napi-rs/nice-win32-x64-msvc@1.0.4':
+ optional: true
+
+ '@napi-rs/nice@1.0.4':
+ optionalDependencies:
+ '@napi-rs/nice-android-arm-eabi': 1.0.4
+ '@napi-rs/nice-android-arm64': 1.0.4
+ '@napi-rs/nice-darwin-arm64': 1.0.4
+ '@napi-rs/nice-darwin-x64': 1.0.4
+ '@napi-rs/nice-freebsd-x64': 1.0.4
+ '@napi-rs/nice-linux-arm-gnueabihf': 1.0.4
+ '@napi-rs/nice-linux-arm64-gnu': 1.0.4
+ '@napi-rs/nice-linux-arm64-musl': 1.0.4
+ '@napi-rs/nice-linux-ppc64-gnu': 1.0.4
+ '@napi-rs/nice-linux-riscv64-gnu': 1.0.4
+ '@napi-rs/nice-linux-s390x-gnu': 1.0.4
+ '@napi-rs/nice-linux-x64-gnu': 1.0.4
+ '@napi-rs/nice-linux-x64-musl': 1.0.4
+ '@napi-rs/nice-win32-arm64-msvc': 1.0.4
+ '@napi-rs/nice-win32-ia32-msvc': 1.0.4
+ '@napi-rs/nice-win32-x64-msvc': 1.0.4
+ optional: true
+
+ '@napi-rs/wasm-runtime@0.2.11':
+ dependencies:
+ '@emnapi/core': 1.4.3
+ '@emnapi/runtime': 1.4.3
+ '@tybys/wasm-util': 0.9.0
+ optional: true
+
+ '@nest-lab/fastify-multer@1.3.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-fastify@11.1.3(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3))(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/platform-fastify': 11.1.3(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
+ fastify-multer: 2.0.3
+ rxjs: 7.8.2
+
+ '@nest-lab/throttler-storage-redis@1.1.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/throttler@6.4.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(reflect-metadata@0.2.2))(ioredis@5.6.1)(reflect-metadata@0.2.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/throttler': 6.4.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(reflect-metadata@0.2.2)
+ ioredis: 5.6.1
+ reflect-metadata: 0.2.2
+ tslib: 2.8.1
+
+ '@nestjs-modules/mailer@2.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(nodemailer@7.0.4)':
+ dependencies:
+ '@css-inline/css-inline': 0.14.1
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ glob: 10.3.12
+ nodemailer: 7.0.4
+ optionalDependencies:
+ '@types/ejs': 3.1.5
+ '@types/mjml': 4.7.4
+ '@types/pug': 2.0.10
+ ejs: 3.1.10
+ handlebars: 4.7.8
+ liquidjs: 10.21.1
+ mjml: 4.15.3
+ preview-email: 3.1.0
+ pug: 3.0.3
+ transitivePeerDependencies:
+ - encoding
+
+ '@nestjs/axios@4.0.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.10.0)(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ axios: 1.10.0
+ rxjs: 7.8.2
+
+ '@nestjs/bull-shared@11.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ tslib: 2.8.1
+
+ '@nestjs/bullmq@11.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(bullmq@5.56.1)':
+ dependencies:
+ '@nestjs/bull-shared': 11.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ bullmq: 5.56.1
+ tslib: 2.8.1
+
+ '@nestjs/cache-manager@3.0.1(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(cache-manager@7.0.0)(keyv@5.3.4)(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ cache-manager: 7.0.0
+ keyv: 5.3.4
+ rxjs: 7.8.2
+
+ '@nestjs/cli@11.0.7(@swc/cli@0.6.0(@swc/core@1.12.9)(chokidar@4.0.3))(@swc/core@1.12.9)(@types/node@22.16.0)':
+ dependencies:
+ '@angular-devkit/core': 19.2.8(chokidar@4.0.3)
+ '@angular-devkit/schematics': 19.2.8(chokidar@4.0.3)
+ '@angular-devkit/schematics-cli': 19.2.8(@types/node@22.16.0)(chokidar@4.0.3)
+ '@inquirer/prompts': 7.4.1(@types/node@22.16.0)
+ '@nestjs/schematics': 11.0.5(chokidar@4.0.3)(typescript@5.8.3)
+ ansis: 3.17.0
+ chokidar: 4.0.3
+ cli-table3: 0.6.5
+ commander: 4.1.1
+ fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9))
+ glob: 11.0.1
+ node-emoji: 1.11.0
+ ora: 5.4.1
+ tree-kill: 1.2.2
+ tsconfig-paths: 4.2.0
+ tsconfig-paths-webpack-plugin: 4.2.0
+ typescript: 5.8.3
+ webpack: 5.99.6(@swc/core@1.12.9)
+ webpack-node-externals: 3.0.0
+ optionalDependencies:
+ '@swc/cli': 0.6.0(@swc/core@1.12.9)(chokidar@4.0.3)
+ '@swc/core': 1.12.9
+ transitivePeerDependencies:
+ - '@types/node'
+ - esbuild
+ - uglify-js
+ - webpack-cli
+
+ '@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)':
+ dependencies:
+ file-type: 21.0.0
+ iterare: 1.2.1
+ load-esm: 1.0.2
+ reflect-metadata: 0.2.2
+ rxjs: 7.8.2
+ tslib: 2.8.1
+ uid: 2.0.2
+ optionalDependencies:
+ class-transformer: 0.5.1
+ class-validator: 0.14.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@nestjs/config@4.0.2(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ dotenv: 16.4.7
+ dotenv-expand: 12.0.1
+ lodash: 4.17.21
+ rxjs: 7.8.2
+
+ '@nestjs/core@11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nuxt/opencollective': 0.4.1
+ fast-safe-stringify: 2.1.1
+ iterare: 1.2.1
+ path-to-regexp: 8.2.0
+ reflect-metadata: 0.2.2
+ rxjs: 7.8.2
+ tslib: 2.8.1
+ uid: 2.0.2
+ optionalDependencies:
+ '@nestjs/websockets': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-socket.io@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+
+ '@nestjs/jwt@11.0.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@types/jsonwebtoken': 9.0.7
+ jsonwebtoken: 9.0.2
+
+ '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ reflect-metadata: 0.2.2
+ optionalDependencies:
+ class-transformer: 0.5.1
+ class-validator: 0.14.2
+
+ '@nestjs/passport@11.0.5(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ passport: 0.7.0
+
+ '@nestjs/platform-fastify@11.1.3(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)':
+ dependencies:
+ '@fastify/cors': 11.0.1
+ '@fastify/formbody': 8.0.2
+ '@fastify/middie': 9.0.3
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ fast-querystring: 1.1.2
+ fastify: 5.3.3
+ light-my-request: 6.6.0
+ path-to-regexp: 8.2.0
+ tslib: 2.8.1
+ optionalDependencies:
+ '@fastify/static': 8.2.0
+
+ '@nestjs/platform-socket.io@11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/websockets': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-socket.io@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ rxjs: 7.8.2
+ socket.io: 4.8.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ '@nestjs/schematics@11.0.5(chokidar@4.0.3)(typescript@5.8.3)':
+ dependencies:
+ '@angular-devkit/core': 19.2.6(chokidar@4.0.3)
+ '@angular-devkit/schematics': 19.2.6(chokidar@4.0.3)
+ comment-json: 4.2.5
+ jsonc-parser: 3.3.1
+ pluralize: 8.0.0
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - chokidar
+
+ '@nestjs/swagger@11.2.0(@fastify/static@8.2.0)(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)':
+ dependencies:
+ '@microsoft/tsdoc': 0.15.1
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)
+ js-yaml: 4.1.0
+ lodash: 4.17.21
+ path-to-regexp: 8.2.0
+ reflect-metadata: 0.2.2
+ swagger-ui-dist: 5.21.0
+ optionalDependencies:
+ '@fastify/static': 8.2.0
+ class-transformer: 0.5.1
+ class-validator: 0.14.2
+
+ '@nestjs/testing@11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ tslib: 2.8.1
+
+ '@nestjs/throttler@6.4.0(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(reflect-metadata@0.2.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ reflect-metadata: 0.2.2
+
+ '@nestjs/websockets@11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-socket.io@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)':
+ dependencies:
+ '@nestjs/common': 11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)
+ iterare: 1.2.1
+ object-hash: 3.0.0
+ reflect-metadata: 0.2.2
+ rxjs: 7.8.2
+ tslib: 2.8.1
+ optionalDependencies:
+ '@nestjs/platform-socket.io': 11.1.3(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.3)(rxjs@7.8.2)
+
+ '@noble/hashes@1.8.0': {}
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.19.1
+
+ '@nolyfill/is-core-module@1.0.39': {}
+
+ '@nuxt/opencollective@0.4.1':
+ dependencies:
+ consola: 3.4.2
+
+ '@one-ini/wasm@0.1.1':
+ optional: true
+
+ '@paralleldrive/cuid2@2.2.2':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pkgr/core@0.2.7': {}
+
+ '@redis/client@1.6.1':
+ dependencies:
+ cluster-key-slot: 1.1.2
+ generic-pool: 3.9.0
+ yallist: 4.0.0
+
+ '@rtsao/scc@1.1.0': {}
+
+ '@scarf/scarf@1.4.0': {}
+
+ '@sec-ant/readable-stream@0.4.1': {}
+
+ '@selderee/plugin-htmlparser2@0.11.0':
+ dependencies:
+ domhandler: 5.0.3
+ selderee: 0.11.0
+ optional: true
+
+ '@sinclair/typebox@0.27.8': {}
+
+ '@sindresorhus/is@5.6.0': {}
+
+ '@sinonjs/commons@3.0.1':
+ dependencies:
+ type-detect: 4.0.8
+
+ '@sinonjs/fake-timers@10.3.0':
+ dependencies:
+ '@sinonjs/commons': 3.0.1
+
+ '@smithy/abort-controller@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/chunked-blob-reader-native@4.0.0':
+ dependencies:
+ '@smithy/util-base64': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/chunked-blob-reader@5.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/config-resolver@4.1.4':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/core@3.7.2':
+ dependencies:
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-stream': 4.2.3
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/credential-provider-imds@4.0.6':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/eventstream-codec@4.0.4':
+ dependencies:
+ '@aws-crypto/crc32': 5.2.0
+ '@smithy/types': 4.3.1
+ '@smithy/util-hex-encoding': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/eventstream-serde-browser@4.0.4':
+ dependencies:
+ '@smithy/eventstream-serde-universal': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/eventstream-serde-config-resolver@4.1.2':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/eventstream-serde-node@4.0.4':
+ dependencies:
+ '@smithy/eventstream-serde-universal': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/eventstream-serde-universal@4.0.4':
+ dependencies:
+ '@smithy/eventstream-codec': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/fetch-http-handler@5.1.0':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/querystring-builder': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/hash-blob-browser@4.0.4':
+ dependencies:
+ '@smithy/chunked-blob-reader': 5.0.0
+ '@smithy/chunked-blob-reader-native': 4.0.0
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/hash-node@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/hash-stream-node@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/invalid-dependency@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/is-array-buffer@2.2.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/is-array-buffer@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/md5-js@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/middleware-content-length@4.0.4':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/middleware-endpoint@4.1.17':
+ dependencies:
+ '@smithy/core': 3.7.2
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/middleware-retry@4.1.18':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/service-error-classification': 4.0.6
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.6
+ tslib: 2.8.1
+ uuid: 9.0.1
+
+ '@smithy/middleware-serde@4.0.8':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/middleware-stack@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/node-config-provider@4.1.3':
+ dependencies:
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/node-http-handler@4.1.0':
+ dependencies:
+ '@smithy/abort-controller': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/querystring-builder': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/property-provider@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/protocol-http@5.1.2':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/querystring-builder@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-uri-escape': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/querystring-parser@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/service-error-classification@4.0.6':
+ dependencies:
+ '@smithy/types': 4.3.1
+
+ '@smithy/shared-ini-file-loader@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/signature-v4@5.1.2':
+ dependencies:
+ '@smithy/is-array-buffer': 4.0.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-hex-encoding': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-uri-escape': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/smithy-client@4.4.9':
+ dependencies:
+ '@smithy/core': 3.7.2
+ '@smithy/middleware-endpoint': 4.1.17
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-stream': 4.2.3
+ tslib: 2.8.1
+
+ '@smithy/types@4.3.1':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/url-parser@4.0.4':
+ dependencies:
+ '@smithy/querystring-parser': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-base64@4.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-body-length-browser@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-body-length-node@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-buffer-from@2.2.0':
+ dependencies:
+ '@smithy/is-array-buffer': 2.2.0
+ tslib: 2.8.1
+
+ '@smithy/util-buffer-from@4.0.0':
+ dependencies:
+ '@smithy/is-array-buffer': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-config-provider@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-defaults-mode-browser@4.0.25':
+ dependencies:
+ '@smithy/property-provider': 4.0.4
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ bowser: 2.11.0
+ tslib: 2.8.1
+
+ '@smithy/util-defaults-mode-node@4.0.25':
+ dependencies:
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/smithy-client': 4.4.9
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-endpoints@3.0.6':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-hex-encoding@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-middleware@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-retry@4.0.6':
+ dependencies:
+ '@smithy/service-error-classification': 4.0.6
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-stream@4.2.3':
+ dependencies:
+ '@smithy/fetch-http-handler': 5.1.0
+ '@smithy/node-http-handler': 4.1.0
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-hex-encoding': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-uri-escape@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-utf8@2.3.0':
+ dependencies:
+ '@smithy/util-buffer-from': 2.2.0
+ tslib: 2.8.1
+
+ '@smithy/util-utf8@4.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-waiter@4.0.6':
+ dependencies:
+ '@smithy/abort-controller': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@socket.io/component-emitter@3.1.2': {}
+
+ '@swc/cli@0.6.0(@swc/core@1.12.9)(chokidar@4.0.3)':
+ dependencies:
+ '@swc/core': 1.12.9
+ '@swc/counter': 0.1.3
+ '@xhmikosr/bin-wrapper': 13.0.5
+ commander: 8.3.0
+ fast-glob: 3.3.3
+ minimatch: 9.0.5
+ piscina: 4.9.2
+ semver: 7.7.2
+ slash: 3.0.0
+ source-map: 0.7.4
+ optionalDependencies:
+ chokidar: 4.0.3
+
+ '@swc/core-darwin-arm64@1.12.9':
+ optional: true
+
+ '@swc/core-darwin-x64@1.12.9':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.12.9':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.12.9':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.12.9':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.12.9':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.12.9':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.12.9':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.12.9':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.12.9':
+ optional: true
+
+ '@swc/core@1.12.9':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.23
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.12.9
+ '@swc/core-darwin-x64': 1.12.9
+ '@swc/core-linux-arm-gnueabihf': 1.12.9
+ '@swc/core-linux-arm64-gnu': 1.12.9
+ '@swc/core-linux-arm64-musl': 1.12.9
+ '@swc/core-linux-x64-gnu': 1.12.9
+ '@swc/core-linux-x64-musl': 1.12.9
+ '@swc/core-win32-arm64-msvc': 1.12.9
+ '@swc/core-win32-ia32-msvc': 1.12.9
+ '@swc/core-win32-x64-msvc': 1.12.9
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/types@0.1.23':
+ dependencies:
+ '@swc/counter': 0.1.3
+
+ '@szmarczak/http-timer@5.0.1':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@tokenizer/inflate@0.2.7':
+ dependencies:
+ debug: 4.4.1
+ fflate: 0.8.2
+ token-types: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@tokenizer/token@0.3.0': {}
+
+ '@tsconfig/node10@1.0.11': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@tybys/wasm-util@0.9.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.7
+
+ '@types/babel__generator@7.27.0':
+ dependencies:
+ '@babel/types': 7.28.0
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+
+ '@types/babel__traverse@7.20.7':
+ dependencies:
+ '@babel/types': 7.28.0
+
+ '@types/bcrypt@5.0.2':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/body-parser@1.19.6':
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 22.16.0
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/conventional-commits-parser@5.0.1':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/cookiejar@2.1.5': {}
+
+ '@types/cors@2.8.19':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/ejs@3.1.5':
+ optional: true
+
+ '@types/eslint-scope@3.7.7':
+ dependencies:
+ '@types/eslint': 9.6.1
+ '@types/estree': 1.0.8
+
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+
+ '@types/estree@1.0.8': {}
+
+ '@types/express-serve-static-core@5.0.6':
+ dependencies:
+ '@types/node': 22.16.0
+ '@types/qs': 6.14.0
+ '@types/range-parser': 1.2.7
+ '@types/send': 0.17.5
+
+ '@types/express@5.0.3':
+ dependencies:
+ '@types/body-parser': 1.19.6
+ '@types/express-serve-static-core': 5.0.6
+ '@types/serve-static': 1.15.8
+
+ '@types/graceful-fs@4.1.9':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/http-cache-semantics@4.0.4': {}
+
+ '@types/http-errors@2.0.5': {}
+
+ '@types/istanbul-lib-coverage@2.0.6': {}
+
+ '@types/istanbul-lib-report@3.0.3':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+
+ '@types/istanbul-reports@3.0.4':
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.3
+
+ '@types/jest@29.5.14':
+ dependencies:
+ expect: 29.7.0
+ pretty-format: 29.7.0
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/json5@0.0.29': {}
+
+ '@types/jsonwebtoken@9.0.10':
+ dependencies:
+ '@types/ms': 2.1.0
+ '@types/node': 22.16.0
+
+ '@types/jsonwebtoken@9.0.7':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/methods@1.1.4': {}
+
+ '@types/mime@1.3.5': {}
+
+ '@types/mjml-core@4.15.2':
+ optional: true
+
+ '@types/mjml@4.7.4':
+ dependencies:
+ '@types/mjml-core': 4.15.2
+ optional: true
+
+ '@types/ms@2.1.0': {}
+
+ '@types/node@22.16.0':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/nodemailer@6.4.17':
+ dependencies:
+ '@types/node': 22.16.0
+
+ '@types/passport-jwt@4.0.1':
+ dependencies:
+ '@types/jsonwebtoken': 9.0.10
+ '@types/passport-strategy': 0.2.38
+
+ '@types/passport-strategy@0.2.38':
+ dependencies:
+ '@types/express': 5.0.3
+ '@types/passport': 1.0.17
+
+ '@types/passport@1.0.17':
+ dependencies:
+ '@types/express': 5.0.3
+
+ '@types/pug@2.0.10':
+ optional: true
+
+ '@types/qs@6.14.0': {}
+
+ '@types/range-parser@1.2.7': {}
+
+ '@types/send@0.17.5':
+ dependencies:
+ '@types/mime': 1.3.5
+ '@types/node': 22.16.0
+
+ '@types/serve-static@1.15.8':
+ dependencies:
+ '@types/http-errors': 2.0.5
+ '@types/node': 22.16.0
+ '@types/send': 0.17.5
+
+ '@types/stack-utils@2.0.3': {}
+
+ '@types/superagent@8.1.9':
+ dependencies:
+ '@types/cookiejar': 2.1.5
+ '@types/methods': 1.1.4
+ '@types/node': 22.16.0
+ form-data: 4.0.3
+
+ '@types/supertest@6.0.3':
+ dependencies:
+ '@types/methods': 1.1.4
+ '@types/superagent': 8.1.9
+
+ '@types/uuid@9.0.8': {}
+
+ '@types/validator@13.15.2': {}
+
+ '@types/yargs-parser@21.0.3': {}
+
+ '@types/yargs@17.0.33':
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+
+ '@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/scope-manager': 8.35.1
+ '@typescript-eslint/type-utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.35.1
+ eslint: 9.30.1(jiti@2.4.2)
+ graphemer: 1.4.0
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.35.1
+ '@typescript-eslint/types': 8.35.1
+ '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.35.1
+ debug: 4.4.1
+ eslint: 9.30.1(jiti@2.4.2)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.35.1(typescript@5.8.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3)
+ '@typescript-eslint/types': 8.35.1
+ debug: 4.4.1
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.35.1':
+ dependencies:
+ '@typescript-eslint/types': 8.35.1
+ '@typescript-eslint/visitor-keys': 8.35.1
+
+ '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)':
+ dependencies:
+ typescript: 5.8.3
+
+ '@typescript-eslint/type-utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ debug: 4.4.1
+ eslint: 9.30.1(jiti@2.4.2)
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.35.1': {}
+
+ '@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.35.1(typescript@5.8.3)
+ '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3)
+ '@typescript-eslint/types': 8.35.1
+ '@typescript-eslint/visitor-keys': 8.35.1
+ debug: 4.4.1
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.2
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.35.1
+ '@typescript-eslint/types': 8.35.1
+ '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
+ eslint: 9.30.1(jiti@2.4.2)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.35.1':
+ dependencies:
+ '@typescript-eslint/types': 8.35.1
+ eslint-visitor-keys: 4.2.1
+
+ '@unrs/resolver-binding-android-arm-eabi@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-android-arm64@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-arm64@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-x64@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-freebsd-x64@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-musl@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-wasm32-wasi@1.10.1':
+ dependencies:
+ '@napi-rs/wasm-runtime': 0.2.11
+ optional: true
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.10.1':
+ optional: true
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.10.1':
+ optional: true
+
+ '@webassemblyjs/ast@1.14.1':
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2': {}
+
+ '@webassemblyjs/helper-api-error@1.13.2': {}
+
+ '@webassemblyjs/helper-buffer@1.14.1': {}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ dependencies:
+ '@webassemblyjs/floating-point-hex-parser': 1.13.2
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/wasm-gen': 1.14.1
+
+ '@webassemblyjs/ieee754@1.13.2':
+ dependencies:
+ '@xtuc/ieee754': 1.2.0
+
+ '@webassemblyjs/leb128@1.13.2':
+ dependencies:
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/utf8@1.13.2': {}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/helper-wasm-section': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-opt': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ '@webassemblyjs/wast-printer': 1.14.1
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@xtuc/long': 4.2.2
+
+ '@xhmikosr/archive-type@7.0.0':
+ dependencies:
+ file-type: 19.6.0
+
+ '@xhmikosr/bin-check@7.0.3':
+ dependencies:
+ execa: 5.1.1
+ isexe: 2.0.0
+
+ '@xhmikosr/bin-wrapper@13.0.5':
+ dependencies:
+ '@xhmikosr/bin-check': 7.0.3
+ '@xhmikosr/downloader': 15.0.1
+ '@xhmikosr/os-filter-obj': 3.0.0
+ bin-version-check: 5.1.0
+
+ '@xhmikosr/decompress-tar@8.0.1':
+ dependencies:
+ file-type: 19.6.0
+ is-stream: 2.0.1
+ tar-stream: 3.1.7
+
+ '@xhmikosr/decompress-tarbz2@8.0.2':
+ dependencies:
+ '@xhmikosr/decompress-tar': 8.0.1
+ file-type: 19.6.0
+ is-stream: 2.0.1
+ seek-bzip: 2.0.0
+ unbzip2-stream: 1.4.3
+
+ '@xhmikosr/decompress-targz@8.0.1':
+ dependencies:
+ '@xhmikosr/decompress-tar': 8.0.1
+ file-type: 19.6.0
+ is-stream: 2.0.1
+
+ '@xhmikosr/decompress-unzip@7.0.0':
+ dependencies:
+ file-type: 19.6.0
+ get-stream: 6.0.1
+ yauzl: 3.2.0
+
+ '@xhmikosr/decompress@10.0.1':
+ dependencies:
+ '@xhmikosr/decompress-tar': 8.0.1
+ '@xhmikosr/decompress-tarbz2': 8.0.2
+ '@xhmikosr/decompress-targz': 8.0.1
+ '@xhmikosr/decompress-unzip': 7.0.0
+ graceful-fs: 4.2.11
+ make-dir: 4.0.0
+ strip-dirs: 3.0.0
+
+ '@xhmikosr/downloader@15.0.1':
+ dependencies:
+ '@xhmikosr/archive-type': 7.0.0
+ '@xhmikosr/decompress': 10.0.1
+ content-disposition: 0.5.4
+ defaults: 3.0.0
+ ext-name: 5.0.0
+ file-type: 19.6.0
+ filenamify: 6.0.0
+ get-stream: 6.0.1
+ got: 13.0.0
+
+ '@xhmikosr/os-filter-obj@3.0.0':
+ dependencies:
+ arch: 3.0.0
+
+ '@xtuc/ieee754@1.2.0': {}
+
+ '@xtuc/long@4.2.2': {}
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ abbrev@1.1.1: {}
+
+ abbrev@2.0.0:
+ optional: true
+
+ abstract-logging@2.0.1: {}
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ acorn-jsx@5.3.2(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-walk@8.3.4:
+ dependencies:
+ acorn: 8.15.0
+
+ acorn@7.4.1:
+ optional: true
+
+ acorn@8.15.0: {}
+
+ agent-base@6.0.2:
+ dependencies:
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ agent-base@7.1.4: {}
+
+ ajv-formats@2.1.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
+ ajv-formats@3.0.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
+ ajv-keywords@3.5.2(ajv@6.12.6):
+ dependencies:
+ ajv: 6.12.6
+
+ ajv-keywords@5.1.0(ajv@8.17.1):
+ dependencies:
+ ajv: 8.17.1
+ fast-deep-equal: 3.1.3
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.6
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
+ alce@1.2.0:
+ dependencies:
+ esprima: 1.2.5
+ estraverse: 1.9.3
+ optional: true
+
+ ansi-colors@4.1.3: {}
+
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-escapes@7.0.0:
+ dependencies:
+ environment: 1.1.0
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@5.2.0: {}
+
+ ansi-styles@6.2.1: {}
+
+ ansis@3.17.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ append-field@1.0.0: {}
+
+ aproba@2.0.0: {}
+
+ arch@3.0.0: {}
+
+ are-we-there-yet@2.0.0:
+ dependencies:
+ delegates: 1.0.0
+ readable-stream: 3.6.2
+
+ arg@4.1.3: {}
+
+ argparse@1.0.10:
+ dependencies:
+ sprintf-js: 1.0.3
+
+ argparse@2.0.1: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
+
+ array-ify@1.0.0: {}
+
+ array-includes@3.1.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ is-string: 1.1.1
+ math-intrinsics: 1.1.0
+
+ array-timsort@1.0.3: {}
+
+ array-union@2.1.0: {}
+
+ array.prototype.findlastindex@1.2.6:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.flat@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.flatmap@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-shim-unscopables: 1.1.0
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
+
+ asap@2.0.6: {}
+
+ asn1.js@5.4.1:
+ dependencies:
+ bn.js: 4.12.2
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ safer-buffer: 2.1.2
+
+ assert-never@1.4.0:
+ optional: true
+
+ async-function@1.0.0: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ atomic-sleep@1.0.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ avvio@9.1.0:
+ dependencies:
+ '@fastify/error': 4.2.0
+ fastq: 1.19.1
+
+ axios@1.10.0:
+ dependencies:
+ follow-redirects: 1.15.9
+ form-data: 4.0.3
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ b4a@1.6.7: {}
+
+ babel-jest@29.7.0(@babel/core@7.28.0):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@jest/transform': 29.7.0
+ '@types/babel__core': 7.20.5
+ babel-plugin-istanbul: 6.1.1
+ babel-preset-jest: 29.6.3(@babel/core@7.28.0)
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-istanbul@6.1.1:
+ dependencies:
+ '@babel/helper-plugin-utils': 7.27.1
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 5.2.1
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-jest-hoist@29.6.3:
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.0
+ '@types/babel__core': 7.20.5
+ '@types/babel__traverse': 7.20.7
+
+ babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
+
+ babel-preset-jest@29.6.3(@babel/core@7.28.0):
+ dependencies:
+ '@babel/core': 7.28.0
+ babel-plugin-jest-hoist: 29.6.3
+ babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0)
+
+ babel-walk@3.0.0-canary-5:
+ dependencies:
+ '@babel/types': 7.28.0
+ optional: true
+
+ balanced-match@1.0.2: {}
+
+ bare-events@2.5.4:
+ optional: true
+
+ base64-js@1.5.1: {}
+
+ base64id@2.0.0: {}
+
+ bcrypt@5.1.1:
+ dependencies:
+ '@mapbox/node-pre-gyp': 1.0.11
+ node-addon-api: 5.1.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ bin-version-check@5.1.0:
+ dependencies:
+ bin-version: 6.0.0
+ semver: 7.7.2
+ semver-truncate: 3.0.0
+
+ bin-version@6.0.0:
+ dependencies:
+ execa: 5.1.1
+ find-versions: 5.1.0
+
+ binary-extensions@2.3.0:
+ optional: true
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ bn.js@4.12.2: {}
+
+ boolbase@1.0.0:
+ optional: true
+
+ bowser@2.11.0: {}
+
+ brace-expansion@1.1.12:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.2:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.25.1:
+ dependencies:
+ caniuse-lite: 1.0.30001726
+ electron-to-chromium: 1.5.179
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.25.1)
+
+ bs-logger@0.2.6:
+ dependencies:
+ fast-json-stable-stringify: 2.1.0
+
+ bser@2.1.1:
+ dependencies:
+ node-int64: 0.4.0
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-equal-constant-time@1.0.1: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bullmq@5.56.1:
+ dependencies:
+ cron-parser: 4.9.0
+ ioredis: 5.6.1
+ msgpackr: 1.11.4
+ node-abort-controller: 3.1.1
+ semver: 7.7.2
+ tslib: 2.8.1
+ uuid: 9.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ cache-manager@7.0.0:
+ dependencies:
+ keyv: 5.3.4
+
+ cacheable-lookup@7.0.0: {}
+
+ cacheable-request@10.2.14:
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ get-stream: 6.0.1
+ http-cache-semantics: 4.2.0
+ keyv: 4.5.4
+ mimic-response: 4.0.0
+ normalize-url: 8.0.2
+ responselike: 3.0.0
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ camel-case@3.0.0:
+ dependencies:
+ no-case: 2.3.2
+ upper-case: 1.1.3
+ optional: true
+
+ camelcase@5.3.1: {}
+
+ camelcase@6.3.0: {}
+
+ caniuse-lite@1.0.30001726: {}
+
+ chalk@3.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ optional: true
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.4.1: {}
+
+ char-regex@1.0.2: {}
+
+ character-parser@2.2.0:
+ dependencies:
+ is-regex: 1.2.1
+ optional: true
+
+ chardet@0.7.0: {}
+
+ cheerio-select@2.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-select: 5.2.2
+ css-what: 6.2.2
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ optional: true
+
+ cheerio@1.0.0-rc.12:
+ dependencies:
+ cheerio-select: 2.1.0
+ dom-serializer: 2.0.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ htmlparser2: 8.0.2
+ parse5: 7.3.0
+ parse5-htmlparser2-tree-adapter: 7.1.0
+ optional: true
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ optional: true
+
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
+ chownr@2.0.0: {}
+
+ chrome-trace-event@1.0.4: {}
+
+ ci-info@3.9.0: {}
+
+ cjs-module-lexer@1.4.3: {}
+
+ class-transformer@0.5.1: {}
+
+ class-validator@0.14.2:
+ dependencies:
+ '@types/validator': 13.15.2
+ libphonenumber-js: 1.12.9
+ validator: 13.15.15
+
+ clean-css@4.2.4:
+ dependencies:
+ source-map: 0.6.1
+ optional: true
+
+ cli-cursor@3.1.0:
+ dependencies:
+ restore-cursor: 3.1.0
+
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-spinners@2.9.2: {}
+
+ cli-table3@0.6.5:
+ dependencies:
+ string-width: 4.2.3
+ optionalDependencies:
+ '@colors/colors': 1.5.0
+
+ cli-truncate@4.0.0:
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 7.2.0
+
+ cli-width@4.1.0: {}
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone@1.0.4: {}
+
+ cluster-key-slot@1.1.2: {}
+
+ co@4.6.0: {}
+
+ collect-v8-coverage@1.0.2: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ color-support@1.1.3: {}
+
+ colorette@2.0.19: {}
+
+ colorette@2.0.20: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@10.0.1: {}
+
+ commander@13.1.0: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ commander@6.2.1: {}
+
+ commander@8.3.0: {}
+
+ comment-json@4.2.5:
+ dependencies:
+ array-timsort: 1.0.3
+ core-util-is: 1.0.3
+ esprima: 4.0.1
+ has-own-prop: 2.0.0
+ repeat-string: 1.6.1
+
+ compare-func@2.0.0:
+ dependencies:
+ array-ify: 1.0.0
+ dot-prop: 5.3.0
+
+ component-emitter@1.3.1: {}
+
+ concat-map@0.0.1: {}
+
+ concat-stream@2.0.0:
+ dependencies:
+ buffer-from: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ typedarray: 0.0.6
+
+ config-chain@1.1.13:
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+ optional: true
+
+ consola@3.4.2: {}
+
+ console-control-strings@1.1.0: {}
+
+ constantinople@4.0.1:
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+ optional: true
+
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ conventional-changelog-angular@7.0.0:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-changelog-conventionalcommits@7.0.2:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-commits-parser@5.0.0:
+ dependencies:
+ JSONStream: 1.3.5
+ is-text-path: 2.0.0
+ meow: 12.1.1
+ split2: 4.2.0
+
+ convert-source-map@2.0.0: {}
+
+ cookie@0.7.2: {}
+
+ cookie@1.0.2: {}
+
+ cookiejar@2.1.4: {}
+
+ core-util-is@1.0.3: {}
+
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ cosmiconfig-typescript-loader@6.1.0(@types/node@22.16.0)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3):
+ dependencies:
+ '@types/node': 22.16.0
+ cosmiconfig: 9.0.0(typescript@5.8.3)
+ jiti: 2.4.2
+ typescript: 5.8.3
+
+ cosmiconfig@8.3.6(typescript@5.8.3):
+ dependencies:
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ optionalDependencies:
+ typescript: 5.8.3
+
+ cosmiconfig@9.0.0(typescript@5.8.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 5.8.3
+
+ create-jest@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)):
+ dependencies:
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-config: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ jest-util: 29.7.0
+ prompts: 2.4.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ create-require@1.1.1: {}
+
+ cron-parser@4.9.0:
+ dependencies:
+ luxon: 3.6.1
+
+ cross-spawn@6.0.6:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+ optional: true
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ css-select@5.2.2:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.2.2
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ nth-check: 2.1.1
+ optional: true
+
+ css-what@6.2.2:
+ optional: true
+
+ dargs@8.1.0: {}
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ dataloader@2.2.3: {}
+
+ dayjs@1.11.13: {}
+
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.3.4:
+ dependencies:
+ ms: 2.1.2
+
+ debug@4.4.1:
+ dependencies:
+ ms: 2.1.3
+
+ decimal.js@10.5.0: {}
+
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
+ dedent@1.6.0: {}
+
+ deep-extend@0.6.0:
+ optional: true
+
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1: {}
+
+ defaults@1.0.4:
+ dependencies:
+ clone: 1.0.4
+
+ defaults@3.0.0: {}
+
+ defer-to-connect@2.0.1: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delayed-stream@1.0.0: {}
+
+ delegates@1.0.0: {}
+
+ denque@2.1.0: {}
+
+ depd@2.0.0: {}
+
+ dequal@2.0.3: {}
+
+ detect-indent@6.1.0:
+ optional: true
+
+ detect-libc@2.0.4: {}
+
+ detect-newline@3.1.0: {}
+
+ detect-node@2.1.0:
+ optional: true
+
+ dezalgo@1.0.4:
+ dependencies:
+ asap: 2.0.6
+ wrappy: 1.0.2
+
+ diff-sequences@29.6.3: {}
+
+ diff@4.0.2: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ display-notification@2.0.0:
+ dependencies:
+ escape-string-applescript: 1.0.0
+ run-applescript: 3.2.0
+ optional: true
+
+ doctrine@2.1.0:
+ dependencies:
+ esutils: 2.0.3
+
+ doctypes@1.1.0:
+ optional: true
+
+ dom-serializer@1.4.1:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+ optional: true
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+ optional: true
+
+ domelementtype@2.3.0:
+ optional: true
+
+ domhandler@3.3.0:
+ dependencies:
+ domelementtype: 2.3.0
+ optional: true
+
+ domhandler@4.3.1:
+ dependencies:
+ domelementtype: 2.3.0
+ optional: true
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+ optional: true
+
+ domutils@2.8.0:
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ optional: true
+
+ domutils@3.2.2:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ optional: true
+
+ dot-prop@5.3.0:
+ dependencies:
+ is-obj: 2.0.0
+
+ dotenv-expand@12.0.1:
+ dependencies:
+ dotenv: 16.6.1
+
+ dotenv@16.4.7: {}
+
+ dotenv@16.5.0: {}
+
+ dotenv@16.6.1: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ eastasianwidth@0.2.0: {}
+
+ ecdsa-sig-formatter@1.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ editorconfig@1.0.4:
+ dependencies:
+ '@one-ini/wasm': 0.1.1
+ commander: 10.0.1
+ minimatch: 9.0.1
+ semver: 7.7.2
+ optional: true
+
+ ee-first@1.1.1: {}
+
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
+ electron-to-chromium@1.5.179: {}
+
+ emittery@0.13.1: {}
+
+ emoji-regex@10.4.0: {}
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ encoding-japanese@2.2.0:
+ optional: true
+
+ engine.io-parser@5.2.3: {}
+
+ engine.io@6.6.4:
+ dependencies:
+ '@types/cors': 2.8.19
+ '@types/node': 22.16.0
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cookie: 0.7.2
+ cors: 2.8.5
+ debug: 4.3.4
+ engine.io-parser: 5.2.3
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ enhanced-resolve@5.18.2:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.2
+
+ entities@2.2.0:
+ optional: true
+
+ entities@4.5.0:
+ optional: true
+
+ entities@6.0.1:
+ optional: true
+
+ env-paths@2.2.1: {}
+
+ environment@1.1.0: {}
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-abstract@1.24.0:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.3
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.19
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@1.7.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-shim-unscopables@1.1.0:
+ dependencies:
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ escalade@3.2.0: {}
+
+ escape-goat@3.0.0:
+ optional: true
+
+ escape-html@1.0.3: {}
+
+ escape-string-applescript@1.0.0:
+ optional: true
+
+ escape-string-regexp@2.0.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.30.1(jiti@2.4.2)
+
+ eslint-import-resolver-node@0.3.9:
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.16.1
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.30.1(jiti@2.4.2)):
+ dependencies:
+ '@nolyfill/is-core-module': 1.0.39
+ debug: 4.4.1
+ eslint: 9.30.1(jiti@2.4.2)
+ get-tsconfig: 4.10.1
+ is-bun-module: 2.0.0
+ stable-hash: 0.0.5
+ tinyglobby: 0.2.14
+ unrs-resolver: 1.10.1
+ optionalDependencies:
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.30.1(jiti@2.4.2))
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.30.1(jiti@2.4.2)):
+ dependencies:
+ debug: 3.2.7
+ optionalDependencies:
+ '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ eslint: 9.30.1(jiti@2.4.2)
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.30.1(jiti@2.4.2))
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.30.1(jiti@2.4.2)):
+ dependencies:
+ '@rtsao/scc': 1.1.0
+ array-includes: 3.1.9
+ array.prototype.findlastindex: 1.2.6
+ array.prototype.flat: 1.3.3
+ array.prototype.flatmap: 1.3.3
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 9.30.1(jiti@2.4.2)
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.30.1(jiti@2.4.2))
+ hasown: 2.0.2
+ is-core-module: 2.16.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ object.groupby: 1.0.3
+ object.values: 1.2.1
+ semver: 6.3.1
+ string.prototype.trimend: 1.0.9
+ tsconfig-paths: 3.15.0
+ optionalDependencies:
+ '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
+ eslint-plugin-prettier@5.5.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2):
+ dependencies:
+ eslint: 9.30.1(jiti@2.4.2)
+ prettier: 3.6.2
+ prettier-linter-helpers: 1.0.0
+ synckit: 0.11.8
+ optionalDependencies:
+ '@types/eslint': 9.6.1
+ eslint-config-prettier: 10.1.5(eslint@9.30.1(jiti@2.4.2))
+
+ eslint-scope@5.1.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.1: {}
+
+ eslint@9.30.1(jiti@2.4.2):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.21.0
+ '@eslint/config-helpers': 0.3.0
+ '@eslint/core': 0.14.0
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.30.1
+ '@eslint/plugin-kit': 0.3.3
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.1
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ esm@3.2.25: {}
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ esprima@1.2.5:
+ optional: true
+
+ esprima@4.0.1: {}
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@1.9.3:
+ optional: true
+
+ estraverse@4.3.0: {}
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ eventemitter3@5.0.1: {}
+
+ events@3.3.0: {}
+
+ execa@0.10.0:
+ dependencies:
+ cross-spawn: 6.0.6
+ get-stream: 3.0.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+ optional: true
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@8.0.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+
+ exit@0.1.2: {}
+
+ expect@29.7.0:
+ dependencies:
+ '@jest/expect-utils': 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+
+ ext-list@2.2.2:
+ dependencies:
+ mime-db: 1.54.0
+
+ ext-name@5.0.0:
+ dependencies:
+ ext-list: 2.2.2
+ sort-keys-length: 1.0.1
+
+ extend-object@1.0.0:
+ optional: true
+
+ external-editor@3.1.0:
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+
+ fast-decode-uri-component@1.0.1: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-fifo@1.3.2: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-json-stringify@6.0.1:
+ dependencies:
+ '@fastify/merge-json-schemas': 0.2.1
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
+ fast-uri: 3.0.6
+ json-schema-ref-resolver: 2.0.1
+ rfdc: 1.4.1
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-querystring@1.1.2:
+ dependencies:
+ fast-decode-uri-component: 1.0.1
+
+ fast-redact@3.5.0: {}
+
+ fast-safe-stringify@2.1.1: {}
+
+ fast-uri@3.0.6: {}
+
+ fast-xml-parser@5.2.5:
+ dependencies:
+ strnum: 2.1.1
+
+ fastify-multer@2.0.3:
+ dependencies:
+ '@fastify/busboy': 1.2.1
+ append-field: 1.0.0
+ concat-stream: 2.0.0
+ fastify-plugin: 2.3.4
+ mkdirp: 1.0.4
+ on-finished: 2.4.1
+ type-is: 1.6.18
+ xtend: 4.0.2
+
+ fastify-plugin@2.3.4:
+ dependencies:
+ semver: 7.7.2
+
+ fastify-plugin@5.0.1: {}
+
+ fastify@5.3.3:
+ dependencies:
+ '@fastify/ajv-compiler': 4.0.2
+ '@fastify/error': 4.2.0
+ '@fastify/fast-json-stringify-compiler': 5.0.3
+ '@fastify/proxy-addr': 5.0.0
+ abstract-logging: 2.0.1
+ avvio: 9.1.0
+ fast-json-stringify: 6.0.1
+ find-my-way: 9.3.0
+ light-my-request: 6.6.0
+ pino: 9.7.0
+ process-warning: 5.0.0
+ rfdc: 1.4.1
+ secure-json-parse: 4.0.0
+ semver: 7.7.2
+ toad-cache: 3.7.0
+
+ fastify@5.4.0:
+ dependencies:
+ '@fastify/ajv-compiler': 4.0.2
+ '@fastify/error': 4.2.0
+ '@fastify/fast-json-stringify-compiler': 5.0.3
+ '@fastify/proxy-addr': 5.0.0
+ abstract-logging: 2.0.1
+ avvio: 9.1.0
+ fast-json-stringify: 6.0.1
+ find-my-way: 9.3.0
+ light-my-request: 6.6.0
+ pino: 9.7.0
+ process-warning: 5.0.0
+ rfdc: 1.4.1
+ secure-json-parse: 4.0.0
+ semver: 7.7.2
+ toad-cache: 3.7.0
+
+ fastq@1.19.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fb-watchman@2.0.2:
+ dependencies:
+ bser: 2.1.1
+
+ fdir@6.4.6(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
+ fflate@0.8.2: {}
+
+ figlet@1.8.1: {}
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ file-type@19.6.0:
+ dependencies:
+ get-stream: 9.0.1
+ strtok3: 9.1.1
+ token-types: 6.0.3
+ uint8array-extras: 1.4.0
+
+ file-type@21.0.0:
+ dependencies:
+ '@tokenizer/inflate': 0.2.7
+ strtok3: 10.3.1
+ token-types: 6.0.3
+ uint8array-extras: 1.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
+ filename-reserved-regex@3.0.0: {}
+
+ filenamify@6.0.0:
+ dependencies:
+ filename-reserved-regex: 3.0.0
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-my-way@9.3.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-querystring: 1.1.2
+ safe-regex2: 5.0.0
+
+ find-up@4.1.0:
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ find-up@7.0.0:
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ unicorn-magic: 0.1.0
+
+ find-versions@5.1.0:
+ dependencies:
+ semver-regex: 4.0.5
+
+ fixpack@4.0.0:
+ dependencies:
+ alce: 1.2.0
+ chalk: 3.0.0
+ detect-indent: 6.1.0
+ detect-newline: 3.1.0
+ extend-object: 1.0.0
+ rc: 1.2.8
+ optional: true
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
+ follow-redirects@1.15.9: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ foreground-child@3.3.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
+ fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9)):
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ chalk: 4.1.2
+ chokidar: 4.0.3
+ cosmiconfig: 8.3.6(typescript@5.8.3)
+ deepmerge: 4.3.1
+ fs-extra: 10.1.0
+ memfs: 3.5.3
+ minimatch: 3.1.2
+ node-abort-controller: 3.1.1
+ schema-utils: 3.3.0
+ semver: 7.7.2
+ tapable: 2.2.2
+ typescript: 5.8.3
+ webpack: 5.99.6(@swc/core@1.12.9)
+
+ form-data-encoder@2.1.4: {}
+
+ form-data@4.0.3:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
+ mime-types: 2.1.35
+
+ formidable@3.5.4:
+ dependencies:
+ '@paralleldrive/cuid2': 2.2.2
+ dezalgo: 1.0.4
+ once: 1.4.0
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@11.3.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-minipass@2.1.0:
+ dependencies:
+ minipass: 3.3.6
+
+ fs-monkey@1.0.6: {}
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ gauge@3.0.2:
+ dependencies:
+ aproba: 2.0.0
+ color-support: 1.1.3
+ console-control-strings: 1.1.0
+ has-unicode: 2.0.1
+ object-assign: 4.1.1
+ signal-exit: 3.0.7
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wide-align: 1.1.5
+
+ generic-pool@3.9.0: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-east-asian-width@1.3.0: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-package-type@0.1.0: {}
+
+ get-port@5.1.1:
+ optional: true
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-stream@3.0.0:
+ optional: true
+
+ get-stream@6.0.1: {}
+
+ get-stream@8.0.1: {}
+
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+
+ get-tsconfig@4.10.1:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ getopts@2.3.0: {}
+
+ git-raw-commits@4.0.0:
+ dependencies:
+ dargs: 8.1.0
+ meow: 12.1.1
+ split2: 4.2.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-to-regexp@0.4.1: {}
+
+ glob@10.3.12:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ path-scurry: 1.11.1
+
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+ optional: true
+
+ glob@11.0.1:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 4.1.1
+ minimatch: 10.0.3
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
+ glob@11.0.3:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 4.1.1
+ minimatch: 10.0.3
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global-directory@4.0.1:
+ dependencies:
+ ini: 4.1.1
+
+ globals@14.0.0: {}
+
+ globals@16.3.0: {}
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.2.0: {}
+
+ got@13.0.0:
+ dependencies:
+ '@sindresorhus/is': 5.6.0
+ '@szmarczak/http-timer': 5.0.1
+ cacheable-lookup: 7.0.0
+ cacheable-request: 10.2.14
+ decompress-response: 6.0.0
+ form-data-encoder: 2.1.4
+ get-stream: 6.0.1
+ http2-wrapper: 2.2.1
+ lowercase-keys: 3.0.0
+ p-cancelable: 3.0.0
+ responselike: 3.0.0
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ handlebars@4.7.8:
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.19.3
+ optional: true
+
+ has-bigints@1.1.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-own-prop@2.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ has-unicode@2.0.1: {}
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ he@1.2.0:
+ optional: true
+
+ html-escaper@2.0.2: {}
+
+ html-minifier@4.0.0:
+ dependencies:
+ camel-case: 3.0.0
+ clean-css: 4.2.4
+ commander: 2.20.3
+ he: 1.2.0
+ param-case: 2.1.1
+ relateurl: 0.2.7
+ uglify-js: 3.19.3
+ optional: true
+
+ html-to-text@9.0.5:
+ dependencies:
+ '@selderee/plugin-htmlparser2': 0.11.0
+ deepmerge: 4.3.1
+ dom-serializer: 2.0.0
+ htmlparser2: 8.0.2
+ selderee: 0.11.0
+ optional: true
+
+ htmlparser2@5.0.1:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 3.3.0
+ domutils: 2.8.0
+ entities: 2.2.0
+ optional: true
+
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ entities: 4.5.0
+ optional: true
+
+ htmlparser2@9.1.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ entities: 4.5.0
+ optional: true
+
+ http-cache-semantics@4.2.0: {}
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ http2-wrapper@2.2.1:
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
+ http_ece@1.2.0: {}
+
+ https-proxy-agent@5.0.1:
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ human-signals@2.1.0: {}
+
+ human-signals@5.0.0: {}
+
+ husky@9.1.7: {}
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+ optional: true
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ ignore@7.0.5: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-local@3.2.0:
+ dependencies:
+ pkg-dir: 4.2.0
+ resolve-cwd: 3.0.0
+
+ import-meta-resolve@4.1.0: {}
+
+ imurmurhash@0.1.4: {}
+
+ index-to-position@1.1.0: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ ini@1.3.8:
+ optional: true
+
+ ini@4.1.1: {}
+
+ inspect-with-kind@1.0.5:
+ dependencies:
+ kind-of: 6.0.3
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ interpret@2.2.0: {}
+
+ ioredis@5.6.1:
+ dependencies:
+ '@ioredis/commands': 1.2.0
+ cluster-key-slot: 1.1.2
+ debug: 4.4.1
+ denque: 2.1.0
+ lodash.defaults: 4.2.0
+ lodash.isarguments: 3.1.0
+ redis-errors: 1.2.0
+ redis-parser: 3.0.0
+ standard-as-callback: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ ipaddr.js@2.2.0: {}
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-arrayish@0.2.1: {}
+
+ is-async-function@2.1.1:
+ dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+ optional: true
+
+ is-boolean-object@1.2.2:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-bun-module@2.0.0:
+ dependencies:
+ semver: 7.7.2
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-docker@2.2.1:
+ optional: true
+
+ is-expression@4.0.0:
+ dependencies:
+ acorn: 7.4.1
+ object-assign: 4.1.1
+ optional: true
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-fullwidth-code-point@4.0.0: {}
+
+ is-fullwidth-code-point@5.0.0:
+ dependencies:
+ get-east-asian-width: 1.3.0
+
+ is-generator-fn@2.1.0: {}
+
+ is-generator-function@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-interactive@1.0.0: {}
+
+ is-map@2.0.3: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-obj@2.0.0: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-promise@2.2.2:
+ optional: true
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-stream@1.1.0:
+ optional: true
+
+ is-stream@2.0.1: {}
+
+ is-stream@3.0.0: {}
+
+ is-stream@4.0.1: {}
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-text-path@2.0.0:
+ dependencies:
+ text-extensions: 2.4.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.19
+
+ is-unicode-supported@0.1.0: {}
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+ optional: true
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ istanbul-lib-coverage@3.2.2: {}
+
+ istanbul-lib-instrument@5.2.1:
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/parser': 7.28.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-instrument@6.0.3:
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/parser': 7.28.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-report@3.0.1:
+ dependencies:
+ istanbul-lib-coverage: 3.2.2
+ make-dir: 4.0.0
+ supports-color: 7.2.0
+
+ istanbul-lib-source-maps@4.0.1:
+ dependencies:
+ debug: 4.4.1
+ istanbul-lib-coverage: 3.2.2
+ source-map: 0.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-reports@3.1.7:
+ dependencies:
+ html-escaper: 2.0.2
+ istanbul-lib-report: 3.0.1
+
+ iterare@1.2.1: {}
+
+ jackspeak@2.3.6:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+ optional: true
+
+ jackspeak@4.1.1:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.6
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
+ jest-changed-files@29.7.0:
+ dependencies:
+ execa: 5.1.1
+ jest-util: 29.7.0
+ p-limit: 3.1.0
+
+ jest-circus@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ co: 4.6.0
+ dedent: 1.6.0
+ is-generator-fn: 2.1.0
+ jest-each: 29.7.0
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ p-limit: 3.1.0
+ pretty-format: 29.7.0
+ pure-rand: 6.1.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ jest-cli@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)):
+ dependencies:
+ '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ create-jest: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ exit: 0.1.2
+ import-local: 3.2.0
+ jest-config: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ jest-config@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@jest/test-sequencer': 29.7.0
+ '@jest/types': 29.6.3
+ babel-jest: 29.7.0(@babel/core@7.28.0)
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-get-type: 29.6.3
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-runner: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ optionalDependencies:
+ '@types/node': 22.16.0
+ ts-node: 10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ jest-diff@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 29.6.3
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-docblock@29.7.0:
+ dependencies:
+ detect-newline: 3.1.0
+
+ jest-each@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ jest-util: 29.7.0
+ pretty-format: 29.7.0
+
+ jest-environment-node@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/fake-timers': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ jest-mock: 29.7.0
+ jest-util: 29.7.0
+
+ jest-get-type@29.6.3: {}
+
+ jest-haste-map@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/graceful-fs': 4.1.9
+ '@types/node': 22.16.0
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 29.6.3
+ jest-util: 29.7.0
+ jest-worker: 29.7.0
+ micromatch: 4.0.8
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ jest-leak-detector@29.7.0:
+ dependencies:
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-matcher-utils@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-message-util@29.7.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@jest/types': 29.6.3
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.8
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+
+ jest-mock@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ jest-util: 29.7.0
+
+ jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
+ optionalDependencies:
+ jest-resolve: 29.7.0
+
+ jest-regex-util@29.6.3: {}
+
+ jest-resolve-dependencies@29.7.0:
+ dependencies:
+ jest-regex-util: 29.6.3
+ jest-snapshot: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-resolve@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ resolve: 1.22.10
+ resolve.exports: 2.0.3
+ slash: 3.0.0
+
+ jest-runner@29.7.0:
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/environment': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ emittery: 0.13.1
+ graceful-fs: 4.2.11
+ jest-docblock: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-haste-map: 29.7.0
+ jest-leak-detector: 29.7.0
+ jest-message-util: 29.7.0
+ jest-resolve: 29.7.0
+ jest-runtime: 29.7.0
+ jest-util: 29.7.0
+ jest-watcher: 29.7.0
+ jest-worker: 29.7.0
+ p-limit: 3.1.0
+ source-map-support: 0.5.13
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-runtime@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/fake-timers': 29.7.0
+ '@jest/globals': 29.7.0
+ '@jest/source-map': 29.6.3
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ cjs-module-lexer: 1.4.3
+ collect-v8-coverage: 1.0.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-mock: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ slash: 3.0.0
+ strip-bom: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-snapshot@29.7.0:
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/generator': 7.28.0
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
+ '@babel/types': 7.28.0
+ '@jest/expect-utils': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0)
+ chalk: 4.1.2
+ expect: 29.7.0
+ graceful-fs: 4.2.11
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ natural-compare: 1.4.0
+ pretty-format: 29.7.0
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-util@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+
+ jest-validate@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ leven: 3.1.0
+ pretty-format: 29.7.0
+
+ jest-watcher@29.7.0:
+ dependencies:
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 22.16.0
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ emittery: 0.13.1
+ jest-util: 29.7.0
+ string-length: 4.0.2
+
+ jest-worker@27.5.1:
+ dependencies:
+ '@types/node': 22.16.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jest-worker@29.7.0:
+ dependencies:
+ '@types/node': 22.16.0
+ jest-util: 29.7.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jest@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)):
+ dependencies:
+ '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ '@jest/types': 29.6.3
+ import-local: 3.2.0
+ jest-cli: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ jiti@2.4.2: {}
+
+ js-beautify@1.15.4:
+ dependencies:
+ config-chain: 1.1.13
+ editorconfig: 1.0.4
+ glob: 10.4.5
+ js-cookie: 3.0.5
+ nopt: 7.2.1
+ optional: true
+
+ js-cookie@3.0.5:
+ optional: true
+
+ js-stringify@1.0.2:
+ optional: true
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@3.14.1:
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-ref-resolver@2.0.1:
+ dependencies:
+ dequal: 2.0.3
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@1.0.2:
+ dependencies:
+ minimist: 1.2.8
+
+ json5@2.2.3: {}
+
+ jsonc-parser@3.3.1: {}
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonparse@1.3.1: {}
+
+ jsonwebtoken@9.0.2:
+ dependencies:
+ jws: 3.2.2
+ lodash.includes: 4.3.0
+ lodash.isboolean: 3.0.3
+ lodash.isinteger: 4.0.4
+ lodash.isnumber: 3.0.3
+ lodash.isplainobject: 4.0.6
+ lodash.isstring: 4.0.1
+ lodash.once: 4.1.1
+ ms: 2.1.3
+ semver: 7.7.2
+
+ jstransformer@1.0.0:
+ dependencies:
+ is-promise: 2.2.2
+ promise: 7.3.1
+ optional: true
+
+ juice@10.0.1:
+ dependencies:
+ cheerio: 1.0.0-rc.12
+ commander: 6.2.1
+ mensch: 0.3.4
+ slick: 1.12.2
+ web-resource-inliner: 6.0.1
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ jwa@1.4.2:
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+
+ jwa@2.0.1:
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+
+ jws@3.2.2:
+ dependencies:
+ jwa: 1.4.2
+ safe-buffer: 5.2.1
+
+ jws@4.0.0:
+ dependencies:
+ jwa: 2.0.1
+ safe-buffer: 5.2.1
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ keyv@5.3.4:
+ dependencies:
+ '@keyv/serialize': 1.0.3
+
+ kind-of@6.0.3: {}
+
+ kleur@3.0.3: {}
+
+ knex@3.1.0(pg@8.16.0):
+ dependencies:
+ colorette: 2.0.19
+ commander: 10.0.1
+ debug: 4.3.4
+ escalade: 3.2.0
+ esm: 3.2.25
+ get-package-type: 0.1.0
+ getopts: 2.3.0
+ interpret: 2.2.0
+ lodash: 4.17.21
+ pg-connection-string: 2.6.2
+ rechoir: 0.8.0
+ resolve-from: 5.0.0
+ tarn: 3.0.2
+ tildify: 2.0.0
+ optionalDependencies:
+ pg: 8.16.0
+ transitivePeerDependencies:
+ - supports-color
+
+ leac@0.6.0:
+ optional: true
+
+ leven@3.1.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ libbase64@1.3.0:
+ optional: true
+
+ libmime@5.3.7:
+ dependencies:
+ encoding-japanese: 2.2.0
+ iconv-lite: 0.6.3
+ libbase64: 1.3.0
+ libqp: 2.1.1
+ optional: true
+
+ libphonenumber-js@1.12.9: {}
+
+ libqp@2.1.1:
+ optional: true
+
+ light-my-request@6.6.0:
+ dependencies:
+ cookie: 1.0.2
+ process-warning: 4.0.1
+ set-cookie-parser: 2.7.1
+
+ lilconfig@3.1.3: {}
+
+ lines-and-columns@1.2.4: {}
+
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+ optional: true
+
+ lint-staged@15.5.2:
+ dependencies:
+ chalk: 5.4.1
+ commander: 13.1.0
+ debug: 4.4.1
+ execa: 8.0.1
+ lilconfig: 3.1.3
+ listr2: 8.3.3
+ micromatch: 4.0.8
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.8.0
+ transitivePeerDependencies:
+ - supports-color
+
+ liquidjs@10.21.1:
+ dependencies:
+ commander: 10.0.1
+ optional: true
+
+ listr2@8.3.3:
+ dependencies:
+ cli-truncate: 4.0.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 6.1.0
+ rfdc: 1.4.1
+ wrap-ansi: 9.0.0
+
+ load-esm@1.0.2: {}
+
+ loader-runner@4.3.0: {}
+
+ locate-path@5.0.0:
+ dependencies:
+ p-locate: 4.1.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ locate-path@7.2.0:
+ dependencies:
+ p-locate: 6.0.0
+
+ lodash.camelcase@4.3.0: {}
+
+ lodash.defaults@4.2.0: {}
+
+ lodash.includes@4.3.0: {}
+
+ lodash.isarguments@3.1.0: {}
+
+ lodash.isboolean@3.0.3: {}
+
+ lodash.isinteger@4.0.4: {}
+
+ lodash.isnumber@3.0.3: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.isstring@4.0.1: {}
+
+ lodash.kebabcase@4.1.1: {}
+
+ lodash.memoize@4.1.2: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.mergewith@4.6.2: {}
+
+ lodash.once@4.1.1: {}
+
+ lodash.snakecase@4.1.1: {}
+
+ lodash.startcase@4.4.0: {}
+
+ lodash.uniq@4.5.0: {}
+
+ lodash.upperfirst@4.3.1: {}
+
+ lodash@4.17.21: {}
+
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
+ log-update@6.1.0:
+ dependencies:
+ ansi-escapes: 7.0.0
+ cli-cursor: 5.0.0
+ slice-ansi: 7.1.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 9.0.0
+
+ lower-case@1.1.4:
+ optional: true
+
+ lowercase-keys@3.0.0: {}
+
+ lru-cache@10.4.3: {}
+
+ lru-cache@11.1.0: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ luxon@3.6.1: {}
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ mailparser@3.7.4:
+ dependencies:
+ encoding-japanese: 2.2.0
+ he: 1.2.0
+ html-to-text: 9.0.5
+ iconv-lite: 0.6.3
+ libmime: 5.3.7
+ linkify-it: 5.0.0
+ mailsplit: 5.4.5
+ nodemailer: 7.0.4
+ punycode.js: 2.3.1
+ tlds: 1.259.0
+ optional: true
+
+ mailsplit@5.4.5:
+ dependencies:
+ libbase64: 1.3.0
+ libmime: 5.3.7
+ libqp: 2.1.1
+ optional: true
+
+ make-dir@3.1.0:
+ dependencies:
+ semver: 6.3.1
+
+ make-dir@4.0.0:
+ dependencies:
+ semver: 7.7.2
+
+ make-error@1.3.6: {}
+
+ makeerror@1.0.12:
+ dependencies:
+ tmpl: 1.0.5
+
+ math-intrinsics@1.1.0: {}
+
+ media-typer@0.3.0: {}
+
+ memfs@3.5.3:
+ dependencies:
+ fs-monkey: 1.0.6
+
+ mensch@0.3.4:
+ optional: true
+
+ meow@12.1.1: {}
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ methods@1.1.2: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mikro-orm@6.4.16: {}
+
+ mime-db@1.52.0: {}
+
+ mime-db@1.54.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@2.6.0: {}
+
+ mime@3.0.0: {}
+
+ mimic-fn@2.1.0: {}
+
+ mimic-fn@4.0.0: {}
+
+ mimic-function@5.0.1: {}
+
+ mimic-response@3.1.0: {}
+
+ mimic-response@4.0.0: {}
+
+ minimalistic-assert@1.0.1: {}
+
+ minimatch@10.0.3:
+ dependencies:
+ '@isaacs/brace-expansion': 5.0.0
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.2
+
+ minimatch@9.0.1:
+ dependencies:
+ brace-expansion: 2.0.2
+ optional: true
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.2
+
+ minimist@1.2.8: {}
+
+ minipass@3.3.6:
+ dependencies:
+ yallist: 4.0.0
+
+ minipass@5.0.0: {}
+
+ minipass@7.1.2: {}
+
+ minizlib@2.1.2:
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ mjml-accordion@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-body@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-button@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-carousel@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-cli@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ chokidar: 3.6.0
+ glob: 10.3.12
+ html-minifier: 4.0.0
+ js-beautify: 1.15.4
+ lodash: 4.17.21
+ minimatch: 9.0.5
+ mjml-core: 4.15.3
+ mjml-migrate: 4.15.3
+ mjml-parser-xml: 4.15.3
+ mjml-validator: 4.15.3
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-column@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-core@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ cheerio: 1.0.0-rc.12
+ detect-node: 2.1.0
+ html-minifier: 4.0.0
+ js-beautify: 1.15.4
+ juice: 10.0.1
+ lodash: 4.17.21
+ mjml-migrate: 4.15.3
+ mjml-parser-xml: 4.15.3
+ mjml-validator: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-divider@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-group@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-attributes@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-breakpoint@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-font@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-html-attributes@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-preview@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-style@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head-title@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-head@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-hero@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-image@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-migrate@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ js-beautify: 1.15.4
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ mjml-parser-xml: 4.15.3
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-navbar@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-parser-xml@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ detect-node: 2.1.0
+ htmlparser2: 9.1.0
+ lodash: 4.17.21
+ optional: true
+
+ mjml-preset-core@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ mjml-accordion: 4.15.3
+ mjml-body: 4.15.3
+ mjml-button: 4.15.3
+ mjml-carousel: 4.15.3
+ mjml-column: 4.15.3
+ mjml-divider: 4.15.3
+ mjml-group: 4.15.3
+ mjml-head: 4.15.3
+ mjml-head-attributes: 4.15.3
+ mjml-head-breakpoint: 4.15.3
+ mjml-head-font: 4.15.3
+ mjml-head-html-attributes: 4.15.3
+ mjml-head-preview: 4.15.3
+ mjml-head-style: 4.15.3
+ mjml-head-title: 4.15.3
+ mjml-hero: 4.15.3
+ mjml-image: 4.15.3
+ mjml-navbar: 4.15.3
+ mjml-raw: 4.15.3
+ mjml-section: 4.15.3
+ mjml-social: 4.15.3
+ mjml-spacer: 4.15.3
+ mjml-table: 4.15.3
+ mjml-text: 4.15.3
+ mjml-wrapper: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-raw@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-section@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-social@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-spacer@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-table@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-text@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml-validator@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ optional: true
+
+ mjml-wrapper@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ lodash: 4.17.21
+ mjml-core: 4.15.3
+ mjml-section: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mjml@4.15.3:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ mjml-cli: 4.15.3
+ mjml-core: 4.15.3
+ mjml-migrate: 4.15.3
+ mjml-preset-core: 4.15.3
+ mjml-validator: 4.15.3
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ mkdirp@1.0.4: {}
+
+ ms@2.1.2: {}
+
+ ms@2.1.3: {}
+
+ msgpackr-extract@3.0.3:
+ dependencies:
+ node-gyp-build-optional-packages: 5.2.2
+ optionalDependencies:
+ '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3
+ '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3
+ '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3
+ '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3
+ '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3
+ '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3
+ optional: true
+
+ msgpackr@1.11.4:
+ optionalDependencies:
+ msgpackr-extract: 3.0.3
+
+ mute-stream@2.0.0: {}
+
+ napi-postinstall@0.3.0: {}
+
+ natural-compare@1.4.0: {}
+
+ negotiator@0.6.3: {}
+
+ neo-async@2.6.2: {}
+
+ nice-try@1.0.5:
+ optional: true
+
+ no-case@2.3.2:
+ dependencies:
+ lower-case: 1.1.4
+ optional: true
+
+ node-abort-controller@3.1.1: {}
+
+ node-addon-api@5.1.0: {}
+
+ node-emoji@1.11.0:
+ dependencies:
+ lodash: 4.17.21
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-gyp-build-optional-packages@5.2.2:
+ dependencies:
+ detect-libc: 2.0.4
+ optional: true
+
+ node-int64@0.4.0: {}
+
+ node-releases@2.0.19: {}
+
+ nodemailer@6.10.1:
+ optional: true
+
+ nodemailer@7.0.4: {}
+
+ nopt@5.0.0:
+ dependencies:
+ abbrev: 1.1.1
+
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+ optional: true
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@8.0.2: {}
+
+ npm-run-path@2.0.2:
+ dependencies:
+ path-key: 2.0.1
+ optional: true
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
+ npmlog@5.0.1:
+ dependencies:
+ are-we-there-yet: 2.0.0
+ console-control-strings: 1.1.0
+ gauge: 3.0.2
+ set-blocking: 2.0.0
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+ optional: true
+
+ object-assign@4.1.1: {}
+
+ object-hash@3.0.0: {}
+
+ object-inspect@1.13.4: {}
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.fromentries@2.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+
+ object.groupby@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+
+ object.values@1.2.1:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ on-exit-leak-free@2.1.2: {}
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ onetime@6.0.0:
+ dependencies:
+ mimic-fn: 4.0.0
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ open@7.4.2:
+ dependencies:
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+ optional: true
+
+ openai@5.10.2: {}
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ ora@5.4.1:
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.9.2
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ log-symbols: 4.1.0
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+
+ os-tmpdir@1.0.2: {}
+
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
+ p-cancelable@3.0.0: {}
+
+ p-event@4.2.0:
+ dependencies:
+ p-timeout: 3.2.0
+ optional: true
+
+ p-finally@1.0.0:
+ optional: true
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-limit@4.0.0:
+ dependencies:
+ yocto-queue: 1.2.1
+
+ p-locate@4.1.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-locate@6.0.0:
+ dependencies:
+ p-limit: 4.0.0
+
+ p-timeout@3.2.0:
+ dependencies:
+ p-finally: 1.0.0
+ optional: true
+
+ p-try@2.2.0: {}
+
+ p-wait-for@3.2.0:
+ dependencies:
+ p-timeout: 3.2.0
+ optional: true
+
+ package-json-from-dist@1.0.1: {}
+
+ param-case@2.1.1:
+ dependencies:
+ no-case: 2.3.2
+ optional: true
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parent-require@1.0.0: {}
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-json@8.3.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ index-to-position: 1.1.0
+ type-fest: 4.41.0
+
+ parse5-htmlparser2-tree-adapter@7.1.0:
+ dependencies:
+ domhandler: 5.0.3
+ parse5: 7.3.0
+ optional: true
+
+ parse5@7.3.0:
+ dependencies:
+ entities: 6.0.1
+ optional: true
+
+ parseley@0.12.1:
+ dependencies:
+ leac: 0.6.0
+ peberminta: 0.9.0
+ optional: true
+
+ passport-jwt@4.0.1:
+ dependencies:
+ jsonwebtoken: 9.0.2
+ passport-strategy: 1.0.0
+
+ passport-strategy@1.0.0: {}
+
+ passport@0.7.0:
+ dependencies:
+ passport-strategy: 1.0.0
+ pause: 0.0.1
+ utils-merge: 1.0.1
+
+ path-exists@4.0.0: {}
+
+ path-exists@5.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@2.0.1:
+ optional: true
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-parse@1.0.7: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.1.0
+ minipass: 7.1.2
+
+ path-to-regexp@8.2.0: {}
+
+ path-type@4.0.0: {}
+
+ pause@0.0.1: {}
+
+ peberminta@0.9.0:
+ optional: true
+
+ peek-readable@5.4.2: {}
+
+ pend@1.2.0: {}
+
+ pg-cloudflare@1.2.7:
+ optional: true
+
+ pg-connection-string@2.6.2: {}
+
+ pg-connection-string@2.9.1: {}
+
+ pg-int8@1.0.1: {}
+
+ pg-pool@3.10.1(pg@8.16.0):
+ dependencies:
+ pg: 8.16.0
+
+ pg-protocol@1.10.3: {}
+
+ pg-types@2.2.0:
+ dependencies:
+ pg-int8: 1.0.1
+ postgres-array: 2.0.0
+ postgres-bytea: 1.0.0
+ postgres-date: 1.0.7
+ postgres-interval: 1.2.0
+
+ pg@8.16.0:
+ dependencies:
+ pg-connection-string: 2.9.1
+ pg-pool: 3.10.1(pg@8.16.0)
+ pg-protocol: 1.10.3
+ pg-types: 2.2.0
+ pgpass: 1.0.5
+ optionalDependencies:
+ pg-cloudflare: 1.2.7
+
+ pgpass@1.0.5:
+ dependencies:
+ split2: 4.2.0
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.2: {}
+
+ pidtree@0.6.0: {}
+
+ pino-abstract-transport@2.0.0:
+ dependencies:
+ split2: 4.2.0
+
+ pino-std-serializers@7.0.0: {}
+
+ pino@9.7.0:
+ dependencies:
+ atomic-sleep: 1.0.0
+ fast-redact: 3.5.0
+ on-exit-leak-free: 2.1.2
+ pino-abstract-transport: 2.0.0
+ pino-std-serializers: 7.0.0
+ process-warning: 5.0.0
+ quick-format-unescaped: 4.0.4
+ real-require: 0.2.0
+ safe-stable-stringify: 2.5.0
+ sonic-boom: 4.2.0
+ thread-stream: 3.1.0
+
+ pirates@4.0.7: {}
+
+ piscina@4.9.2:
+ optionalDependencies:
+ '@napi-rs/nice': 1.0.4
+
+ pkg-dir@4.2.0:
+ dependencies:
+ find-up: 4.1.0
+
+ pluralize@8.0.0: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ postgres-array@2.0.0: {}
+
+ postgres-array@3.0.4: {}
+
+ postgres-bytea@1.0.0: {}
+
+ postgres-date@1.0.7: {}
+
+ postgres-date@2.1.0: {}
+
+ postgres-interval@1.2.0:
+ dependencies:
+ xtend: 4.0.2
+
+ postgres-interval@4.0.2: {}
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.6.2: {}
+
+ pretty-format@29.7.0:
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+
+ preview-email@3.1.0:
+ dependencies:
+ ci-info: 3.9.0
+ display-notification: 2.0.0
+ fixpack: 4.0.0
+ get-port: 5.1.1
+ mailparser: 3.7.4
+ nodemailer: 6.10.1
+ open: 7.4.2
+ p-event: 4.2.0
+ p-wait-for: 3.2.0
+ pug: 3.0.3
+ uuid: 9.0.1
+ optional: true
+
+ process-warning@4.0.1: {}
+
+ process-warning@5.0.0: {}
+
+ promise@7.3.1:
+ dependencies:
+ asap: 2.0.6
+ optional: true
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
+ proto-list@1.2.4:
+ optional: true
+
+ proxy-from-env@1.1.0: {}
+
+ pug-attrs@3.0.0:
+ dependencies:
+ constantinople: 4.0.1
+ js-stringify: 1.0.2
+ pug-runtime: 3.0.1
+ optional: true
+
+ pug-code-gen@3.0.3:
+ dependencies:
+ constantinople: 4.0.1
+ doctypes: 1.1.0
+ js-stringify: 1.0.2
+ pug-attrs: 3.0.0
+ pug-error: 2.1.0
+ pug-runtime: 3.0.1
+ void-elements: 3.1.0
+ with: 7.0.2
+ optional: true
+
+ pug-error@2.1.0:
+ optional: true
+
+ pug-filters@4.0.0:
+ dependencies:
+ constantinople: 4.0.1
+ jstransformer: 1.0.0
+ pug-error: 2.1.0
+ pug-walk: 2.0.0
+ resolve: 1.22.10
+ optional: true
+
+ pug-lexer@5.0.1:
+ dependencies:
+ character-parser: 2.2.0
+ is-expression: 4.0.0
+ pug-error: 2.1.0
+ optional: true
+
+ pug-linker@4.0.0:
+ dependencies:
+ pug-error: 2.1.0
+ pug-walk: 2.0.0
+ optional: true
+
+ pug-load@3.0.0:
+ dependencies:
+ object-assign: 4.1.1
+ pug-walk: 2.0.0
+ optional: true
+
+ pug-parser@6.0.0:
+ dependencies:
+ pug-error: 2.1.0
+ token-stream: 1.0.0
+ optional: true
+
+ pug-runtime@3.0.1:
+ optional: true
+
+ pug-strip-comments@2.0.0:
+ dependencies:
+ pug-error: 2.1.0
+ optional: true
+
+ pug-walk@2.0.0:
+ optional: true
+
+ pug@3.0.3:
+ dependencies:
+ pug-code-gen: 3.0.3
+ pug-filters: 4.0.0
+ pug-lexer: 5.0.1
+ pug-linker: 4.0.0
+ pug-load: 3.0.0
+ pug-parser: 6.0.0
+ pug-runtime: 3.0.1
+ pug-strip-comments: 2.0.0
+ optional: true
+
+ punycode.js@2.3.1:
+ optional: true
+
+ punycode@2.3.1: {}
+
+ pure-rand@6.1.0: {}
+
+ qs@6.14.0:
+ dependencies:
+ side-channel: 1.1.0
+
+ queue-microtask@1.2.3: {}
+
+ quick-format-unescaped@4.0.4: {}
+
+ quick-lru@5.1.1: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ rc@1.2.8:
+ dependencies:
+ deep-extend: 0.6.0
+ ini: 1.3.8
+ minimist: 1.2.8
+ strip-json-comments: 2.0.1
+ optional: true
+
+ react-is@18.3.1: {}
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+ optional: true
+
+ readdirp@4.1.2: {}
+
+ real-require@0.2.0: {}
+
+ rechoir@0.8.0:
+ dependencies:
+ resolve: 1.22.10
+
+ redis-errors@1.2.0: {}
+
+ redis-parser@3.0.0:
+ dependencies:
+ redis-errors: 1.2.0
+
+ reflect-metadata@0.2.2: {}
+
+ reflect.getprototypeof@1.0.10:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ relateurl@0.2.7:
+ optional: true
+
+ repeat-string@1.6.1: {}
+
+ require-directory@2.1.1: {}
+
+ require-from-string@2.0.2: {}
+
+ resolve-alpn@1.2.1: {}
+
+ resolve-cwd@3.0.0:
+ dependencies:
+ resolve-from: 5.0.0
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve.exports@2.0.3: {}
+
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ responselike@3.0.0:
+ dependencies:
+ lowercase-keys: 3.0.0
+
+ restore-cursor@3.1.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ ret@0.5.0: {}
+
+ reusify@1.1.0: {}
+
+ rfdc@1.4.1: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ run-applescript@3.2.0:
+ dependencies:
+ execa: 0.10.0
+ optional: true
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rxjs@7.8.1:
+ dependencies:
+ tslib: 2.8.1
+
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.2.1: {}
+
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safe-regex2@5.0.0:
+ dependencies:
+ ret: 0.5.0
+
+ safe-stable-stringify@2.5.0: {}
+
+ safer-buffer@2.1.2: {}
+
+ schema-utils@3.3.0:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ schema-utils@4.3.2:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
+
+ secure-json-parse@4.0.0: {}
+
+ seek-bzip@2.0.0:
+ dependencies:
+ commander: 6.2.1
+
+ selderee@0.11.0:
+ dependencies:
+ parseley: 0.12.1
+ optional: true
+
+ semver-regex@4.0.5: {}
+
+ semver-truncate@3.0.0:
+ dependencies:
+ semver: 7.7.2
+
+ semver@5.7.2:
+ optional: true
+
+ semver@6.3.1: {}
+
+ semver@7.7.2: {}
+
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
+ set-blocking@2.0.0: {}
+
+ set-cookie-parser@2.7.1: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+
+ setprototypeof@1.2.0: {}
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+ optional: true
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@1.0.0:
+ optional: true
+
+ shebang-regex@3.0.0: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ sisteransi@1.0.5: {}
+
+ slash@3.0.0: {}
+
+ slice-ansi@5.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+
+ slice-ansi@7.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 5.0.0
+
+ slick@1.12.2:
+ optional: true
+
+ slugify@1.6.6: {}
+
+ socket.io-adapter@2.5.5:
+ dependencies:
+ debug: 4.3.4
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ socket.io-parser@4.2.4:
+ dependencies:
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ socket.io@4.8.1:
+ dependencies:
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cors: 2.8.5
+ debug: 4.3.4
+ engine.io: 6.6.4
+ socket.io-adapter: 2.5.5
+ socket.io-parser: 4.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ sonic-boom@4.2.0:
+ dependencies:
+ atomic-sleep: 1.0.0
+
+ sort-keys-length@1.0.1:
+ dependencies:
+ sort-keys: 1.1.2
+
+ sort-keys@1.1.2:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ source-map-support@0.5.13:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ source-map@0.7.4: {}
+
+ split2@4.2.0: {}
+
+ sprintf-js@1.0.3: {}
+
+ sqlstring@2.3.3: {}
+
+ stable-hash@0.0.5: {}
+
+ stack-utils@2.0.6:
+ dependencies:
+ escape-string-regexp: 2.0.0
+
+ standard-as-callback@2.1.0: {}
+
+ statuses@2.0.1: {}
+
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ streamx@2.22.1:
+ dependencies:
+ fast-fifo: 1.3.2
+ text-decoder: 1.2.3
+ optionalDependencies:
+ bare-events: 2.5.4
+
+ string-argv@0.3.2: {}
+
+ string-length@4.0.2:
+ dependencies:
+ char-regex: 1.0.2
+ strip-ansi: 6.0.1
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.4.0
+ get-east-asian-width: 1.3.0
+ strip-ansi: 7.1.0
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-bom@3.0.0: {}
+
+ strip-bom@4.0.0: {}
+
+ strip-dirs@3.0.0:
+ dependencies:
+ inspect-with-kind: 1.0.5
+ is-plain-obj: 1.1.0
+
+ strip-eof@1.0.0:
+ optional: true
+
+ strip-final-newline@2.0.0: {}
+
+ strip-final-newline@3.0.0: {}
+
+ strip-json-comments@2.0.1:
+ optional: true
+
+ strip-json-comments@3.1.1: {}
+
+ strnum@2.1.1: {}
+
+ strtok3@10.3.1:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+
+ strtok3@9.1.1:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ peek-readable: 5.4.2
+
+ superagent@10.2.1:
+ dependencies:
+ component-emitter: 1.3.1
+ cookiejar: 2.1.4
+ debug: 4.4.1
+ fast-safe-stringify: 2.1.1
+ form-data: 4.0.3
+ formidable: 3.5.4
+ methods: 1.1.2
+ mime: 2.6.0
+ qs: 6.14.0
+ transitivePeerDependencies:
+ - supports-color
+
+ supertest@7.1.1:
+ dependencies:
+ methods: 1.1.2
+ superagent: 10.2.1
+ transitivePeerDependencies:
+ - supports-color
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ swagger-ui-dist@5.21.0:
+ dependencies:
+ '@scarf/scarf': 1.4.0
+
+ symbol-observable@4.0.0: {}
+
+ synckit@0.11.8:
+ dependencies:
+ '@pkgr/core': 0.2.7
+
+ tapable@2.2.2: {}
+
+ tar-stream@3.1.7:
+ dependencies:
+ b4a: 1.6.7
+ fast-fifo: 1.3.2
+ streamx: 2.22.1
+
+ tar@6.2.1:
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ tarn@3.0.2: {}
+
+ terser-webpack-plugin@5.3.14(@swc/core@1.12.9)(webpack@5.99.6(@swc/core@1.12.9)):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.29
+ jest-worker: 27.5.1
+ schema-utils: 4.3.2
+ serialize-javascript: 6.0.2
+ terser: 5.43.1
+ webpack: 5.99.6(@swc/core@1.12.9)
+ optionalDependencies:
+ '@swc/core': 1.12.9
+
+ terser@5.43.1:
+ dependencies:
+ '@jridgewell/source-map': 0.3.10
+ acorn: 8.15.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ test-exclude@6.0.0:
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 7.2.3
+ minimatch: 3.1.2
+
+ text-decoder@1.2.3:
+ dependencies:
+ b4a: 1.6.7
+
+ text-decoding@1.0.0: {}
+
+ text-extensions@2.4.0: {}
+
+ thread-stream@3.1.0:
+ dependencies:
+ real-require: 0.2.0
+
+ through@2.3.8: {}
+
+ tildify@2.0.0: {}
+
+ tinyexec@1.0.1: {}
+
+ tinyglobby@0.2.14:
+ dependencies:
+ fdir: 6.4.6(picomatch@4.0.2)
+ picomatch: 4.0.2
+
+ tlds@1.259.0:
+ optional: true
+
+ tmp@0.0.33:
+ dependencies:
+ os-tmpdir: 1.0.2
+
+ tmpl@1.0.5: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toad-cache@3.7.0: {}
+
+ toidentifier@1.0.1: {}
+
+ token-stream@1.0.0:
+ optional: true
+
+ token-types@6.0.3:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ ieee754: 1.2.1
+
+ tr46@0.0.3: {}
+
+ tree-kill@1.2.2: {}
+
+ ts-api-utils@2.1.0(typescript@5.8.3):
+ dependencies:
+ typescript: 5.8.3
+
+ ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3)))(typescript@5.8.3):
+ dependencies:
+ bs-logger: 0.2.6
+ ejs: 3.1.10
+ fast-json-stable-stringify: 2.1.0
+ jest: 29.7.0(@types/node@22.16.0)(ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3))
+ json5: 2.2.3
+ lodash.memoize: 4.1.2
+ make-error: 1.3.6
+ semver: 7.7.2
+ type-fest: 4.41.0
+ typescript: 5.8.3
+ yargs-parser: 21.1.1
+ optionalDependencies:
+ '@babel/core': 7.28.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ babel-jest: 29.7.0(@babel/core@7.28.0)
+ jest-util: 29.7.0
+
+ ts-loader@9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9)):
+ dependencies:
+ chalk: 4.1.2
+ enhanced-resolve: 5.18.2
+ micromatch: 4.0.8
+ semver: 7.7.2
+ source-map: 0.7.4
+ typescript: 5.8.3
+ webpack: 5.99.6(@swc/core@1.12.9)
+
+ ts-node@10.9.2(@swc/core@1.12.9)(@types/node@22.16.0)(typescript@5.8.3):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.11
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 22.16.0
+ acorn: 8.15.0
+ acorn-walk: 8.3.4
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.8.3
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ optionalDependencies:
+ '@swc/core': 1.12.9
+
+ tsconfig-paths-webpack-plugin@4.2.0:
+ dependencies:
+ chalk: 4.1.2
+ enhanced-resolve: 5.18.2
+ tapable: 2.2.2
+ tsconfig-paths: 4.2.0
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tsconfig-paths@4.2.0:
+ dependencies:
+ json5: 2.2.3
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tslib@2.8.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-detect@4.0.8: {}
+
+ type-fest@0.21.3: {}
+
+ type-fest@4.41.0: {}
+
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
+
+ typedarray@0.0.6: {}
+
+ typescript-eslint@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
+ eslint: 9.30.1(jiti@2.4.2)
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ typescript@5.8.3: {}
+
+ uc.micro@2.1.0:
+ optional: true
+
+ uglify-js@3.19.3:
+ optional: true
+
+ uid@2.0.2:
+ dependencies:
+ '@lukeed/csprng': 1.1.0
+
+ uint8array-extras@1.4.0: {}
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ unbzip2-stream@1.4.3:
+ dependencies:
+ buffer: 5.7.1
+ through: 2.3.8
+
+ undici-types@6.21.0: {}
+
+ unicorn-magic@0.1.0: {}
+
+ universalify@2.0.1: {}
+
+ unrs-resolver@1.10.1:
+ dependencies:
+ napi-postinstall: 0.3.0
+ optionalDependencies:
+ '@unrs/resolver-binding-android-arm-eabi': 1.10.1
+ '@unrs/resolver-binding-android-arm64': 1.10.1
+ '@unrs/resolver-binding-darwin-arm64': 1.10.1
+ '@unrs/resolver-binding-darwin-x64': 1.10.1
+ '@unrs/resolver-binding-freebsd-x64': 1.10.1
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.10.1
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.10.1
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.10.1
+ '@unrs/resolver-binding-linux-arm64-musl': 1.10.1
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.10.1
+ '@unrs/resolver-binding-linux-riscv64-gnu': 1.10.1
+ '@unrs/resolver-binding-linux-riscv64-musl': 1.10.1
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.10.1
+ '@unrs/resolver-binding-linux-x64-gnu': 1.10.1
+ '@unrs/resolver-binding-linux-x64-musl': 1.10.1
+ '@unrs/resolver-binding-wasm32-wasi': 1.10.1
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.10.1
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.10.1
+ '@unrs/resolver-binding-win32-x64-msvc': 1.10.1
+
+ update-browserslist-db@1.1.3(browserslist@4.25.1):
+ dependencies:
+ browserslist: 4.25.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ upper-case@1.1.3:
+ optional: true
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ util-deprecate@1.0.2: {}
+
+ utils-merge@1.0.1: {}
+
+ uuid@11.1.0: {}
+
+ uuid@9.0.1: {}
+
+ v8-compile-cache-lib@3.0.1: {}
+
+ v8-to-istanbul@9.3.0:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.29
+ '@types/istanbul-lib-coverage': 2.0.6
+ convert-source-map: 2.0.0
+
+ valid-data-url@3.0.1:
+ optional: true
+
+ validator@13.15.15: {}
+
+ vary@1.1.2: {}
+
+ void-elements@3.1.0:
+ optional: true
+
+ walker@1.0.8:
+ dependencies:
+ makeerror: 1.0.12
+
+ watchpack@2.4.4:
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
+ wcwidth@1.0.1:
+ dependencies:
+ defaults: 1.0.4
+
+ web-push@3.6.7:
+ dependencies:
+ asn1.js: 5.4.1
+ http_ece: 1.2.0
+ https-proxy-agent: 7.0.6
+ jws: 4.0.0
+ minimist: 1.2.8
+ transitivePeerDependencies:
+ - supports-color
+
+ web-resource-inliner@6.0.1:
+ dependencies:
+ ansi-colors: 4.1.3
+ escape-goat: 3.0.0
+ htmlparser2: 5.0.1
+ mime: 2.6.0
+ node-fetch: 2.7.0
+ valid-data-url: 3.0.1
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ webidl-conversions@3.0.1: {}
+
+ webpack-node-externals@3.0.0: {}
+
+ webpack-sources@3.3.3: {}
+
+ webpack@5.99.6(@swc/core@1.12.9):
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.8
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.15.0
+ browserslist: 4.25.1
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.18.2
+ es-module-lexer: 1.7.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.0
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 4.3.2
+ tapable: 2.2.2
+ terser-webpack-plugin: 5.3.14(@swc/core@1.12.9)(webpack@5.99.6(@swc/core@1.12.9))
+ watchpack: 2.4.4
+ webpack-sources: 3.3.3
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.0
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.19
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.19:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+ optional: true
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ wide-align@1.1.5:
+ dependencies:
+ string-width: 4.2.3
+
+ with@7.0.2:
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.0
+ assert-never: 1.4.0
+ babel-walk: 3.0.0-canary-5
+ optional: true
+
+ word-wrap@1.2.5: {}
+
+ wordwrap@1.0.0:
+ optional: true
+
+ wrap-ansi@6.2.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrap-ansi@9.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 7.2.0
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2: {}
+
+ write-file-atomic@4.0.2:
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 3.0.7
+
+ ws@8.17.1: {}
+
+ xtend@4.0.2: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yallist@4.0.0: {}
+
+ yaml@2.8.0: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yauzl@3.2.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ pend: 1.2.0
+
+ yn@3.1.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ yocto-queue@1.2.1: {}
+
+ yoctocolors-cjs@2.1.2: {}
\ No newline at end of file
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..e31ee94
--- /dev/null
+++ b/readme.md
@@ -0,0 +1 @@
+up
diff --git a/src/app.module.ts b/src/app.module.ts
new file mode 100644
index 0000000..2013949
--- /dev/null
+++ b/src/app.module.ts
@@ -0,0 +1,67 @@
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { Module } from '@nestjs/common';
+import dataBaseConfig from './config/mikro-orm.config';
+import { ConfigModule } from '@nestjs/config';
+import { UserModule } from './modules/users/user.module';
+import { UtilsModule } from './modules/utils/utils.module';
+import { AuthModule } from './modules/auth/auth.module';
+import { UploaderModule } from './modules/uploader/uploader.module';
+import { AdminModule } from './modules/admin/admin.module';
+import { ThrottlerModule } from '@nestjs/throttler';
+import { ScheduleModule } from '@nestjs/schedule';
+import { RestaurantsModule } from './modules/restaurants/restaurants.module';
+import { FoodModule } from './modules/foods/food.module';
+import { CartModule } from './modules/cart/cart.module';
+import { RolesModule } from './modules/roles/roles.module';
+import { PaymentsModule } from './modules/payments/payments.module';
+import { DeliveryModule } from './modules/delivery/delivery.module';
+import { OrdersModule } from './modules/orders/orders.module';
+import { CouponModule } from './modules/coupons/coupon.module';
+import { ReviewModule } from './modules/review/review.module';
+import { NotificationsModule } from './modules/notifications/notifications.module';
+import { EventEmitterModule } from '@nestjs/event-emitter';
+import { PagerModule } from './modules/pager/pager.module';
+import { ContactModule } from './modules/contact/contact.module';
+import { InventoryModule } from './modules/inventory/inventory.module';
+import { IconsModule } from './modules/icons/icons.module';
+import { CacheModule } from '@nestjs/cache-manager';
+import { cacheConfig } from './config/cache.config';
+
+@Module({
+ imports: [
+ ConfigModule.forRoot({ isGlobal: true, cache: true }),
+ CacheModule.registerAsync(cacheConfig()),
+ MikroOrmModule.forRootAsync(dataBaseConfig),
+ UserModule,
+ UtilsModule,
+ AuthModule,
+ UploaderModule,
+ AdminModule,
+ ThrottlerModule.forRoot([
+ {
+ ttl: 60, // time window in seconds
+ limit: 5, // max requests per window
+ },
+ ]),
+ ScheduleModule.forRoot(),
+ RestaurantsModule,
+ FoodModule,
+ CartModule,
+ RolesModule,
+ PaymentsModule,
+ DeliveryModule,
+ OrdersModule,
+ CouponModule,
+ ReviewModule,
+ NotificationsModule,
+ EventEmitterModule.forRoot(),
+ PagerModule,
+ ContactModule,
+ InventoryModule,
+ IconsModule,
+ ],
+ controllers: [],
+ providers: [],
+ // exports: [CacheService],
+})
+export class AppModule {}
diff --git a/src/common/constants/index.ts b/src/common/constants/index.ts
new file mode 100755
index 0000000..d2b97d8
--- /dev/null
+++ b/src/common/constants/index.ts
@@ -0,0 +1,20 @@
+// export const AUTH_THROTTLE = "AUTH_THROTTLE";
+export const AI_CONFIG = 'AI_CONFIG';
+export const MIKRO_ORM_QUERY_LOGGER = 'MIKRO_ORM_QUERY_LOGGER';
+export const NAJVA_CONFIG = 'NAJVA_CONFIG';
+export const AUTH_THROTTLE_TTL = 1 * 60 * 1000;
+export const AUTH_THROTTLE_LIMIT = 5;
+export const AUTH__REFRESH_THROTTLE_TTL = 10 * 60 * 1000;
+export const AUTH__REFRESH_THROTTLE_LIMIT = 10;
+//
+export const CONSOLE_JWT_STRATEGY_NAME = 'console_jwt_strategy';
+export const LOCAL_JWT_STRATEGY_NAME = 'local_jwt_strategy';
+
+export const API_HEADER_SLUG = {
+ name: 'X-Slug',
+ required: true,
+ schema: {
+ type: 'string',
+ default: 'zhivan',
+ },
+};
diff --git a/src/common/decorators/admin-id.decorator.ts b/src/common/decorators/admin-id.decorator.ts
new file mode 100644
index 0000000..2d6d601
--- /dev/null
+++ b/src/common/decorators/admin-id.decorator.ts
@@ -0,0 +1,18 @@
+import { createParamDecorator, type ExecutionContext } from '@nestjs/common';
+import type { Request } from 'express';
+
+/**
+ * Decorator to extract userId from the authenticated request.
+ * Must be used after AdminAuthGuard or AuthGuard that sets request.userId.
+ *
+ * @example
+ * @Get('/profile')
+ * @UseGuards(AdminAuthGuard)
+ * getProfile(@UserId() userId: string) {
+ * return this.userService.findById(userId);
+ * }
+ */
+export const AdminId = createParamDecorator((data: unknown, ctx: ExecutionContext): string => {
+ const request = ctx.switchToHttp().getRequest();
+ return request.adminId || '';
+});
diff --git a/src/common/decorators/index.ts b/src/common/decorators/index.ts
new file mode 100644
index 0000000..6a12fec
--- /dev/null
+++ b/src/common/decorators/index.ts
@@ -0,0 +1,3 @@
+export { UserId } from './user-id.decorator';
+export { RestId } from './rest-id.decorator';
+export { RateLimit } from './rate-limit.decorator';
diff --git a/src/common/decorators/permissions.decorator.ts b/src/common/decorators/permissions.decorator.ts
new file mode 100644
index 0000000..a08c388
--- /dev/null
+++ b/src/common/decorators/permissions.decorator.ts
@@ -0,0 +1,5 @@
+import { SetMetadata } from '@nestjs/common';
+
+export const PERMISSIONS_KEY = 'permissions';
+
+export const Permissions = (...permissions: string[]) => SetMetadata(PERMISSIONS_KEY, permissions);
diff --git a/src/common/decorators/rate-limit.decorator.ts b/src/common/decorators/rate-limit.decorator.ts
new file mode 100644
index 0000000..f21993a
--- /dev/null
+++ b/src/common/decorators/rate-limit.decorator.ts
@@ -0,0 +1,18 @@
+import { UseGuards, applyDecorators } from '@nestjs/common';
+import { Throttle, ThrottlerGuard } from '@nestjs/throttler';
+
+import {
+ AUTH_THROTTLE_LIMIT,
+ AUTH_THROTTLE_TTL,
+ AUTH__REFRESH_THROTTLE_LIMIT,
+ AUTH__REFRESH_THROTTLE_TTL,
+} from '../constants';
+
+export const RateLimit = (limit: number, ttl: number) =>
+ applyDecorators(Throttle({ default: { limit, ttl } }), UseGuards(ThrottlerGuard));
+
+// Predefined rate limits for common scenarios
+export const StrictRateLimit = () => RateLimit(AUTH_THROTTLE_LIMIT, AUTH_THROTTLE_TTL); // 5 requests per minute
+export const StandardRateLimit = () => RateLimit(30, 60000); // 30 requests per minute
+export const MailSendRateLimit = () => RateLimit(10, 60000); // 10 emails per minute
+export const RefreshTokenRateLimit = () => RateLimit(AUTH__REFRESH_THROTTLE_LIMIT, AUTH__REFRESH_THROTTLE_TTL); // 10 emails per minute
diff --git a/src/common/decorators/rest-id.decorator.ts b/src/common/decorators/rest-id.decorator.ts
new file mode 100644
index 0000000..afebf8c
--- /dev/null
+++ b/src/common/decorators/rest-id.decorator.ts
@@ -0,0 +1,18 @@
+import { createParamDecorator, type ExecutionContext } from '@nestjs/common';
+import type { Request } from 'express';
+
+/**
+ * Decorator to extract restId from the authenticated request.
+ * Must be used after AdminAuthGuard or AuthGuard that sets request.restId.
+ *
+ * @example
+ * @Get('/restaurants')
+ * @UseGuards(AdminAuthGuard)
+ * getRestaurants(@RestId() restId: string) {
+ * return this.restaurantService.findById(restId);
+ * }
+ */
+export const RestId = createParamDecorator((data: unknown, ctx: ExecutionContext): string => {
+ const request = ctx.switchToHttp().getRequest();
+ return request.restId || '';
+});
diff --git a/src/common/decorators/rest-slug.decorator.ts b/src/common/decorators/rest-slug.decorator.ts
new file mode 100644
index 0000000..16296d0
--- /dev/null
+++ b/src/common/decorators/rest-slug.decorator.ts
@@ -0,0 +1,7 @@
+import { createParamDecorator, type ExecutionContext } from '@nestjs/common';
+import type { Request } from 'express';
+
+export const RestSlug = createParamDecorator((data: unknown, ctx: ExecutionContext): string => {
+ const request = ctx.switchToHttp().getRequest();
+ return request.slug || '';
+});
diff --git a/src/common/decorators/user-id.decorator.ts b/src/common/decorators/user-id.decorator.ts
new file mode 100644
index 0000000..eb0c551
--- /dev/null
+++ b/src/common/decorators/user-id.decorator.ts
@@ -0,0 +1,18 @@
+import { createParamDecorator, type ExecutionContext } from '@nestjs/common';
+import type { Request } from 'express';
+
+/**
+ * Decorator to extract userId from the authenticated request.
+ * Must be used after AdminAuthGuard or AuthGuard that sets request.userId.
+ *
+ * @example
+ * @Get('/profile')
+ * @UseGuards(AdminAuthGuard)
+ * getProfile(@UserId() userId: string) {
+ * return this.userService.findById(userId);
+ * }
+ */
+export const UserId = createParamDecorator((data: unknown, ctx: ExecutionContext): string => {
+ const request = ctx.switchToHttp().getRequest();
+ return request.userId || '';
+});
diff --git a/src/common/entities/base.entity.ts b/src/common/entities/base.entity.ts
new file mode 100755
index 0000000..87da4e7
--- /dev/null
+++ b/src/common/entities/base.entity.ts
@@ -0,0 +1,25 @@
+import { Index, PrimaryKey, Property, Filter, OptionalProps } from '@mikro-orm/core';
+import { ulid } from 'ulid';
+
+@Filter({ name: 'notDeleted', cond: { deletedAt: null }, default: true })
+@Index({ properties: ['deletedAt'] })
+@Index({ properties: ['createdAt'] })
+export abstract class BaseEntity {
+ [OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'deletedAt';
+
+ @PrimaryKey({ type: 'string', columnType: 'char(26)' })
+ id: string = ulid();
+
+ @Property({ defaultRaw: 'now()', columnType: 'timestamptz' })
+ createdAt: Date = new Date();
+
+ @Property({
+ onUpdate: () => new Date(),
+ defaultRaw: 'now()',
+ columnType: 'timestamptz',
+ })
+ updatedAt: Date = new Date();
+
+ @Property({ nullable: true })
+ deletedAt?: Date;
+}
diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts
new file mode 100755
index 0000000..f635400
--- /dev/null
+++ b/src/common/enums/message.enum.ts
@@ -0,0 +1,780 @@
+export const enum AuthMessage {
+ UNAUTHORIZED_ACCESS = 'شما دسترسی لازم برای این عملیات را ندارید.',
+ PHONE_REGISTERED = 'شماره ثبت شد',
+ INVALID_PHONE_FORMAT = 'فرمت شماره تلفن صحیح نیست',
+ OTP_SENT = 'کد یکبار مصرف به شماره شما ارسال شد.',
+ INVALID_PHONE = 'شماره موبایل اشتباه می باشد',
+ INVALID_CREDENTIAL = 'شماره موبایل یا رمز عبور اشتباه می باشد',
+ OTP_FAILED = 'کد یا شماره موبایل اشتباه است',
+ LOGIN_SUCCESS = 'ورود با موفقیت انجام شد',
+ PASSWORD_LOGIN_SUCCESS = 'با موفقیت وارد شدید',
+ FORGOT_PASSWORD_SUCCESS = 'درخواست فراموشی رمز عبور با موفقیت ثبت شد',
+ PASSWORD_SET_SUCCESS = 'پسورد با موفقیت تنظیم شد',
+ PASSWORD_UPDATE_SUCCESS = 'رمز عبور شما تغییر کرد',
+ INVALID_OTP = 'کد صحیح نمیباشد یا منقضی شده است',
+ PASSWORD_MISMATCH = 'رمز عبور یکسان نیست',
+ INVALID_PASSWORD = 'ایمیل یا رمز عبور اشتباه است',
+ INVALID_REPEAT_PASSWORD = 'تکرار رمز عبور اشتباه است',
+ EMAIL_NOT_EMPTY = 'ایمیل نمیتواند خالی باشد.',
+ INVALID_EMAIL_FORMAT = 'فرمت ایمیل صحیح نیست',
+ PasswordNotEmpty = 'پسورد نمیتواند خالی باشد.',
+ USER_NOT_FOUND = 'کاربری با این شماره وجود ندارد',
+ ADMIN_NOT_FOUND = 'ادمینی با این شماره وجود ندارد',
+ USER_EXISTS = 'با این شماره قبلا ثبت نام شده است',
+ USER_REGISTER_SUCCESS = 'ثبت نام موفقیت آمیز بود',
+ INVALID_USER = 'کاربری با این مشخصات یافت نشد',
+ PHONE_NOT_FOUND = 'کاربری با این شماره یافت نشد',
+ TOKEN_EXPIRED = 'توکن منقضی شده است',
+ TOKEN_INVALID = 'توکن نامعتبر است',
+ BANNED = 'در حال حاضر شما امکان دسترسی به این سرویس را ندارید',
+ PHONE_EXISTS = 'شماره تلفن قبلا ثبت شده است',
+ ADMIN_CREATED = 'ادمین با موفقیت ایجاد شد',
+ PERM_NOT_FOUND = 'دسترسی یافت نشد',
+ INVALID_PASS_FORMAT = 'فرمت رمز عبور صحیح نیست',
+ PHONE_NOT_EMPTY = 'شماره تلفن نمیتواند خالی باشد',
+ PASSWORD_FORMAT_INVALID = 'رمز عبور باید به صورت رشته باشد',
+ OTP_FORMAT_INVALID = 'کد یکبار مصرف باید عددی و ۵ رقمی باشد',
+ PHONE_FORMAT_INVALID = 'شماره تلفن باید معتبر و به فرمت ایران باشد',
+ TOKEN_NOT_EMPTY = 'توکن نمیتواند خالی باشد',
+ PASSWORD_NOT_EMPTY = 'رمز عبور نمیتواند خالی باشد',
+ PASSWORD_CHANGED_SUCCESSFULLY = 'رمز عبور با موفقیت تغییر کرد',
+ PASSWORD_CONFIRMATION_NOT_EMPTY = 'تایید رمز عبور نمیتواند خالی باشد',
+ PASSWORD_LENGTH = 'رمز عبور باید حداقل ۸ کاراکتر باشد',
+ OTP_NOT_EMPTY = 'کد یکبار مصرف نمیتواند خالی باشد',
+ LAST_PASSWORD_NOT_EMPTY = 'رمز عبور قبلی نمیتواند خالی باشد',
+ FIRST_NAME_NOT_EMPTY = 'نام نمیتواند خالی باشد',
+ LAST_NAME_NOT_EMPTY = 'نام خانوادگی نمیتواند خالی باشد',
+ FIRST_NAME_SHOULD_BE_BETWEEN_2_AND_50 = 'نام باید بین ۲ تا ۵۰ کاراکتر باشد',
+ LAST_NAME_SHOULD_BE_BETWEEN_2_AND_50 = 'نام خانوادگی باید بین ۲ تا ۵۰ کاراکتر باشد',
+ BIRTH_DATE_NOT_EMPTY = 'تاریخ تولد نمیتواند خالی باشد',
+ NATIONAL_CODE_INCORRECT = 'کد ملی باید ۱۰ رقمی باشد',
+ NATIONAL_NOT_EMPTY = 'کد ملی نمیتواند خالی باشد',
+ OTP_ALREADY_SENT = 'کد یکبار مصرف قبلا ارسال شده است',
+ TOO_MANY_REQUESTS = 'تعداد درخواست های شما بیش از حد مجاز است',
+ NOT_ADMIN = 'شما دسترسی به بخش ادمین ندارید',
+ PHONE_SHOULD_BE_11_DIGIT = 'شماره تلفن باید ۱۱ رقم باشد',
+ TIMESTAMP_NOT_EMPTY = 'زمان نمیتواند خالی باشد',
+ ADMIN_CAN_NOT_LOGIN = 'ادمین نمیتواند وارد شود',
+ NATIONAL_CODE_INVALID = 'کد ملی نامعتبر است',
+ INVALID_REFRESH_TOKEN = 'توکن رفرش نامعتبر است',
+ REFRESH_TOKEN_EXPIRED = 'توکن رفرش منقضی شده است',
+ LOGOUT_SUCCESS = 'خروج با موفقیت انجام شد',
+ CURRENT_PASSWORD_INVALID = 'رمز عبور فعلی نامعتبر است',
+ TOKEN_EXPIRED_OR_INVALID = 'توکن منقضی شده یا نامعتبر است',
+ ACCESS_DENIED = 'دسترسی شما محدود شده است',
+ USER_ACCOUNT_INACTIVE = 'حساب کاربری شما غیر فعال است',
+ TOKEN_MISSED_OR_EXPIRED = 'توکن مفقود یا منقضی شده است',
+ OLD_PASSWORD_REQUIRED = 'رمز عبور قبلی الزامی است',
+ PASSWORD_CHANGE_FAILED = 'تغییر رمز عبور با مشکل روبرد شد',
+ SLUG_REQUIRED = 'اسلاگ الزامی است',
+ INVALID_TOKEN_PAYLOAD = 'محتویات توکن نامعتبر است',
+ INVALID_SLUG = 'اسلاگ نامعتبر است',
+ INVALID_OR_EXPIRED_TOKEN = 'توکن نامعتبر یا منقضی شده است',
+}
+export const enum FoodMessage {
+ NOT_FOUND = 'غذایی با این مشخصات یافت نشد',
+}
+export const enum CategoryMessage {
+ NOT_FOUND = 'دستهبندی مورد نظر یافت نشد',
+ NOT_CREATED = 'ایجاد دستهبندی با خطا مواجه شد',
+ NOT_UPDATED = 'بهروزرسانی دستهبندی با خطا مواجه شد',
+ NOT_DELETED = 'حذف دستهبندی با خطا مواجه شد',
+}
+export const enum UserMessage {
+ USER_NOT_FOUND = 'کاربری با این مشخصات یافت نشد',
+ Rest_NOT_FOUND = 'رستورانی با این مشخصات یافت نشد',
+ USER_EXISTS = 'با این شماره قبلا ثبت نام شده است',
+ USER_REGISTER_SUCCESS = 'ثبت نام موفقیت آمیز بود',
+ EMAIL_ADDRESS_ALREADY_EXISTS = 'ایمیل قبلا ثبت شده است',
+ EMAIL_USER_NOT_FOUND = 'ایمیل یافت نشد',
+ EMAIL_USER_DELETED_SUCCESSFULLY = 'ایمیل با موفقیت حذف شد',
+ FAILED_TO_DELETE_EMAIL_USER = 'خطا در حذف ایمیل',
+ EMAIL_USER_QUOTA_UPDATED_SUCCESSFULLY = 'ایمیل با موفقیت به روز رسانی شد',
+ FAILED_TO_UPDATE_EMAIL_USER_QUOTA = 'خطا در به روز رسانی حجم ایمیل',
+ USERNAME_REQUIRED = 'نام کاربری الزامی است',
+ USERNAME_STRING = 'نام کاربری باید یک رشته باشد',
+ USERNAME_MIN_LENGTH = 'نام کاربری باید حداقل ۲ کاراکتر باشد',
+ USERNAME_MATCHES = 'نام کاربری فقط میتواند شامل حروف، اعداد، نقطه، خط زیر و خط فاصله باشد',
+ PASSWORD_MATCHES = 'رمز عبور باید حداقل ۸ کاراکتر باشد و شامل حروف بزرگ، حروف کوچک، اعداد و علائم خاص باشد',
+ PASSWORD_STRING = 'رمز عبور باید یک رشته باشد',
+ PASSWORD_REQUIRED = 'رمز عبور الزامی است',
+ PASSWORD_MIN_LENGTH = 'رمز عبور باید حداقل ۸ کاراکتر باشد',
+ DOMAIN_ID_STRING = 'شناسه دامنه باید یک رشته باشد',
+ DOMAIN_ID_REQUIRED = 'شناسه دامنه الزامی است',
+ DOMAIN_ID_UUID = 'شناسه دامنه باید یک یو یو آی دی باشد',
+ DISPLAY_NAME_STRING = 'نام نمایشی باید یک رشته باشد',
+ DISPLAY_NAME_OPTIONAL = 'نام نمایشی اختیاری است',
+ QUOTA_NUMBER = 'حجم ایمیل باید یک عدد باشد',
+ QUOTA_OPTIONAL = 'حجم ایمیل اختیاری است',
+ QUOTA_NOT_EMPTY = 'حجم ایمیل نمیتواند خالی باشد',
+ ALIASES_ARRAY = 'الیاس ها باید یک آرایه باشد',
+ ALIASES_STRING = 'الیاس ها باید یک رشته باشد',
+ ALIASES_OPTIONAL = 'الیاس ها اختیاری است',
+ TITLE_STRING = 'عنوان باید یک رشته باشد',
+ TITLE_OPTIONAL = 'عنوان اختیاری است',
+ TITLE_NOT_EMPTY = 'عنوان نمیتواند خالی باشد',
+ EMAIL_USER_CREATED_SUCCESSFULLY = 'ایمیل با موفقیت ایجاد شد',
+ EMAIL_USER_UPDATED_SUCCESSFULLY = 'ایمیل کاربر با موفقیت بهروزرسانی شد',
+ STATUS_UPDATED = 'وضعیت کاربر با موفقیت تغییر کرد',
+ TEMPLATE_UUID = 'شناسه قالب باید یک یو یو آی دی باشد',
+ TEMPLATE_NOT_EMPTY = 'شناسه قالب نمیتواند خالی باشد',
+ ALIASES_EMAIL = 'آدرس ایمیل الیاس باید معتبر باشد',
+ FORWARDERS_EMAIL_VALID = 'آدرس ایمیل فوروارد باید معتبر باشد',
+ FORWARDERS_ARRAY = 'آدرس های فوروارد باید یک آرایه باشد',
+ FORWARDERS_STRING = 'آدرس های فوروارد باید یک رشته باشد',
+ PROFILE_PICTURE_URL = 'آدرس تصویر پروفایل باید یک آدرس اینترنتی معتبر باشد',
+ USER_UPDATED_SUCCESSFULLY = 'کاربر با موفقیت به روز رسانی شد',
+ PROFILE_PICTURE_NOT_EMPTY = 'تصویر پروفایل نمیتواند خالی باشد',
+ PUSH_TOKEN_NOT_FOUND = 'توکن پوش نامعتبر است',
+ PUSH_TOKEN_ADDED_SUCCESSFULLY = 'توکن پوش با موفقیت اضافه شد',
+ NO_PUSH_TOKENS_FOUND = 'توکن پوشی برای این کاربر یافت نشد',
+ PUSH_TOKEN_REMOVED_SUCCESSFULLY = 'توکن پوش با موفقیت حذف شد',
+}
+
+export const enum CommonMessage {
+ VALIDITY_TYPE_REQUIRED = 'نوع اعتبار سنجی مورد نیاز است',
+ THIS_FILED_IS_REQUIRED = 'این فیلد الزامی است',
+ VALID_FOR_CHOOSE = 'معتبر برای انتخاب',
+ UPDATE_SUCCESS = 'با موفقیت به روز رسانی شد',
+ CREATED = 'با موفقیت ایجاد شد',
+ DELETED = 'با موفقیت حذف شد',
+ ID_REQUIRED = 'شناسه مورد نیاز است',
+ ID_SHOULD_BE_UUID = 'شناسه باید یک یو یو آی دی باشد',
+ PaymentTypeQueryNotEmpty = 'نوع پرداخت نمیتواند خالی باشد',
+ SEARCH_QUERY_STRING = 'رشته جستجو باید یک رشته باشد',
+ UPDATED = 'با موفقیت آپدیت شد',
+ IS_ACTIVE_SHOULD_BE_1_0 = 'وضعیت باید یکی از مقادیر ۰ و ۱ باشد',
+ DATE_MUST_BE_DATE = 'تاریخ باید یک تاریخ معتبر به صورت رشته باشد',
+}
+
+export const enum UploaderMessage {
+ UPLOAD_FILE_INVALID = 'فایل معتبر نیست',
+ UPLOAD_FILE_TOO_LARGE = 'فایل بزرگتر از حد مجاز است . حداکثر حجم فایل [MAX_FILE_SIZE] مگابایت است',
+ UPLOAD_FILE_TYPE_NOT_SUPPORTED = 'نوع فایل معتبر نیست . مجاز است : [MIME_TYPES]',
+ UPLOAD_FILE_SUCCESS = 'فایل با موفقیت آپلود شد',
+}
+
+export const enum EmailMessage {
+ EMAIL_VERIFICATION = 'تایید ایمیل',
+ EMAIL_SENDING_FAILED = 'ارسال ایمیل با خطا مواجه شد',
+ LOGIN = 'ورود به سیستم',
+ INVOICE = 'فاکتور',
+ WALLET = 'اعلان کیف پول',
+ TICKET = 'تیکت پشتیبانی',
+ ANNOUNCEMENT = 'اعلان',
+ PAYMENT_REMINDER = 'یادآوری پرداخت',
+ PAYMENT_CANCELLATION = 'لغو پرداخت',
+ EMAIL_SENDING_SUCCESS = 'ارسال ایمیل با موفقیت انجام شد',
+ EMAIL_FORWARD_SUCCESS = 'فوروارد ایمیل با موفقیت انجام شد',
+ EMAIL_STATUS_RETRIEVED_SUCCESSFULLY = 'وضعیت ایمیل با موفقیت دریافت شد',
+ MESSAGES_SEARCHED_SUCCESSFULLY = 'جستجوی ایمیل با موفقیت انجام شد',
+ MESSAGES_LISTED_SUCCESSFULLY = 'لیست ایمیل ها با موفقیت دریافت شد',
+ MESSAGE_RETRIEVED_SUCCESSFULLY = 'ایمیل با موفقیت دریافت شد',
+ MESSAGE_DELETED_SUCCESSFULLY = 'ایمیل با موفقیت حذف شد',
+ USER_ID_REQUIRED = 'شناسه کاربری مورد نیاز است',
+ USER_ID_MUST_BE_STRING = 'شناسه کاربری باید یک رشته باشد',
+ MAILBOX_ID_REQUIRED = 'شناسه میل باکس ایمیل مورد نیاز است',
+ MAILBOX_ID_MUST_BE_STRING = 'شناسه میل باکس ایمیل باید یک رشته باشد',
+ QUEUE_ID_REQUIRED = 'شناسه پیشنویس ایمیل مورد نیاز است',
+ QUEUE_ID_MUST_BE_STRING = 'شناسه پیشنویس ایمیل باید یک رشته باشد',
+ MESSAGE_ID_MUST_BE_NUMBER = 'شناسه ایمیل باید یک عدد باشد',
+ FROM_ADDRESS_REQUIRED = 'آدرس از مورد نیاز است',
+
+ // Validation Messages for Email DTOs
+ FROM_ADDRESS_MUST_BE_EMAIL = 'آدرس فرستنده باید یک ایمیل معتبر باشد',
+
+ // Query validation messages
+ SEARCH_QUERY_PARAMETER_MUST_BE_STRING = 'پارامتر جستجو باید یک رشته باشد',
+ MESSAGE_IDS_MUST_BE_STRING = 'شناسههای پیام باید یک رشته باشد',
+ THREAD_ID_MUST_BE_STRING = 'شناسه رشته گفتگو باید یک رشته باشد',
+ OR_QUERY_MUST_BE_OBJECT = 'پارامتر OR باید یک شیء باشد',
+ DATE_START_MUST_BE_DATE_STRING = 'تاریخ شروع باید یک رشته تاریخ معتبر باشد',
+ DATE_END_MUST_BE_DATE_STRING = 'تاریخ پایان باید یک رشته تاریخ معتبر باشد',
+ TO_ADDRESS_MUST_BE_STRING = 'آدرس گیرنده باید یک رشته باشد',
+ MIN_SIZE_MUST_BE_NUMBER = 'حداقل اندازه باید یک عدد باشد',
+ MIN_SIZE_MUST_BE_NON_NEGATIVE = 'حداقل اندازه نمیتواند منفی باشد',
+ MAX_SIZE_MUST_BE_NUMBER = 'حداکثر اندازه باید یک عدد باشد',
+ MAX_SIZE_MUST_BE_NON_NEGATIVE = 'حداکثر اندازه نمیتواند منفی باشد',
+ ATTACHMENTS_FILTER_MUST_BE_BOOLEAN = 'فیلتر پیوستها باید بولین باشد',
+ FLAGGED_FILTER_MUST_BE_BOOLEAN = 'فیلتر پیامهای علامتدار باید بولین باشد',
+ UNSEEN_FILTER_MUST_BE_BOOLEAN = 'فیلتر پیامهای خواندهنشده باید بولین باشد',
+ INCLUDE_HEADERS_MUST_BE_STRING = 'لیست هدرها باید یک رشته باشد',
+ SEARCHABLE_FILTER_MUST_BE_BOOLEAN = 'فیلتر قابل جستجو باید بولین باشد',
+ THREAD_COUNTERS_MUST_BE_BOOLEAN = 'شمارنده رشته گفتگو باید بولین باشد',
+ ORDER_MUST_BE_VALID = 'ترتیب باید یکی از مقادیر asc یا desc باشد',
+ NEXT_CURSOR_MUST_BE_STRING = 'نشانگر صفحه بعد باید یک رشته باشد',
+ PREVIOUS_CURSOR_MUST_BE_STRING = 'نشانگر صفحه قبل باید یک رشته باشد',
+
+ RECIPIENT_NAME_MUST_BE_STRING = 'نام گیرنده باید یک رشته باشد',
+ RECIPIENT_ADDRESS_REQUIRED = 'آدرس گیرنده مورد نیاز است',
+ RECIPIENT_ADDRESS_MUST_BE_EMAIL = 'آدرس گیرنده باید یک ایمیل معتبر باشد',
+ HEADER_KEY_REQUIRED = 'کلید هدر مورد نیاز است',
+ HEADER_KEY_MUST_BE_STRING = 'کلید هدر باید یک رشته باشد',
+ HEADER_VALUE_REQUIRED = 'مقدار هدر مورد نیاز است',
+ HEADER_VALUE_MUST_BE_STRING = 'مقدار هدر باید یک رشته باشد',
+ ATTACHMENT_FILENAME_MUST_BE_STRING = 'نام فایل پیوست باید یک رشته باشد',
+ ATTACHMENT_CONTENT_TYPE_MUST_BE_STRING = 'نوع محتوای پیوست باید یک رشته باشد',
+ ATTACHMENT_ENCODING_MUST_BE_STRING = 'کدگذاری پیوست باید یک رشته باشد',
+ ATTACHMENT_CONTENT_TRANSFER_ENCODING_MUST_BE_STRING = 'کدگذاری انتقال محتوای پیوست باید یک رشته باشد',
+ ATTACHMENT_CONTENT_DISPOSITION_INVALID = 'نحوه نمایش پیوست باید inline یا attachment باشد',
+ ATTACHMENT_CONTENT_REQUIRED = 'محتوای پیوست مورد نیاز است',
+ ATTACHMENT_CONTENT_MUST_BE_STRING = 'محتوای پیوست باید یک رشته باشد',
+ ATTACHMENT_CID_MUST_BE_STRING = 'شناسه محتوای پیوست باید یک رشته باشد',
+ DRAFT_MAILBOX_REQUIRED = 'شناسه صندوق پیشنویس مورد نیاز است',
+ DRAFT_MAILBOX_MUST_BE_STRING = 'شناسه صندوق پیشنویس باید یک رشته باشد',
+ DRAFT_ID_REQUIRED = 'شناسه پیشنویس مورد نیاز است',
+ DRAFT_ID_MUST_BE_NUMBER = 'شناسه پیشنویس باید یک عدد باشد',
+ ENVELOPE_FROM_REQUIRED = 'آدرس فرستنده در envelope مورد نیاز است',
+ ENVELOPE_TO_REQUIRED = 'آدرس گیرنده در envelope مورد نیاز است',
+ ENVELOPE_TO_MUST_BE_ARRAY = 'آدرس گیرنده در envelope باید یک آرایه باشد',
+ MAILBOX_MUST_BE_STRING = 'شناسه صندوق باید یک رشته باشد',
+ REPLY_TO_MUST_BE_VALID = 'آدرس پاسخ باید معتبر باشد',
+ TO_ADDRESSES_REQUIRED = 'آدرسهای گیرنده مورد نیاز است',
+ TO_ADDRESSES_MUST_BE_ARRAY = 'آدرسهای گیرنده باید یک آرایه باشد',
+ CC_ADDRESSES_MUST_BE_ARRAY = 'آدرسهای کپی کربن باید یک آرایه باشد',
+ BCC_ADDRESSES_MUST_BE_ARRAY = 'آدرسهای کپی مخفی باید یک آرایه باشد',
+ HEADERS_MUST_BE_ARRAY = 'هدرهای سفارشی باید یک آرایه باشد',
+ SUBJECT_MUST_BE_STRING = 'موضوع ایمیل باید یک رشته باشد',
+ TEXT_CONTENT_MUST_BE_STRING = 'محتوای متنی باید یک رشته باشد',
+ HTML_CONTENT_MUST_BE_STRING = 'محتوای HTML باید یک رشته باشد',
+ ATTACHMENTS_MUST_BE_ARRAY = 'پیوستها باید یک آرایه باشد',
+ SESSION_ID_MUST_BE_STRING = 'شناسه جلسه باید یک رشته باشد',
+ IP_ADDRESS_MUST_BE_STRING = 'آدرس IP باید یک رشته باشد',
+ IS_DRAFT_MUST_BE_BOOLEAN = 'وضعیت پیشنویس باید بولین باشد',
+ SEND_TIME_MUST_BE_DATE = 'زمان ارسال باید یک تاریخ معتبر باشد',
+ UPLOAD_ONLY_MUST_BE_BOOLEAN = 'حالت فقط آپلود باید بولین باشد',
+ ENVELOPE_MUST_BE_VALID = 'envelope باید معتبر باشد',
+
+ // Message operations
+ MESSAGE_MARKED_AS_SEEN_SUCCESSFULLY = 'پیام با موفقیت به عنوان خوانده شده علامت گذاری شد',
+ ALL_MESSAGES_MARKED_AS_READ_SUCCESSFULLY = 'تمام پیام ها با موفقیت به عنوان خوانده شده علامت گذاری شدند',
+ MESSAGE_MARK_AS_SEEN_FAILED = 'علامت گذاری پیام با خطا مواجه شد',
+ SENT_MESSAGES_RETRIEVED_SUCCESSFULLY = 'پیام های ارسالی با موفقیت دریافت شد',
+ SENT_MESSAGES_RETRIEVAL_FAILED = 'دریافت پیام های ارسالی با خطا مواجه شد',
+ TRASH_MESSAGES_RETRIEVED_SUCCESSFULLY = 'پیام های حذف شده با موفقیت دریافت شد',
+ TRASH_MESSAGES_RETRIEVAL_FAILED = 'دریافت پیام های حذف شده با خطا مواجه شد',
+ DRAFT_UPDATED_SUCCESSFULLY = 'پیش نویس با موفقیت به روز رسانی شد',
+ DRAFT_SENT_SUCCESSFULLY = 'پیش نویس با موفقیت ارسال شد',
+ DRAFT_DELETED_SUCCESSFULLY = 'پیش نویس با موفقیت حذف شد',
+ MESSAGE_MOVED_TO_ARCHIVE_SUCCESSFULLY = 'پیام با موفقیت به آرشیو منتقل شد',
+ MESSAGE_MOVED_TO_FAVORITE_SUCCESSFULLY = 'پیام با موفقیت به علاقه مندی ها منتقل شد',
+ MESSAGE_MOVED_TO_TRASH_SUCCESSFULLY = 'پیام با موفقیت به سطل زباله منتقل شد',
+ MESSAGE_MOVED_TO_JUNK_SUCCESSFULLY = 'پیام با موفقیت به جانک منتقل شد',
+ MESSAGE_MOVED_TO_INBOX_FROM_ARCHIVE_SUCCESSFULLY = 'پیام با موفقیت از آرشیو به صندوق ورودی منتقل شد',
+ MESSAGE_MOVED_TO_INBOX_FROM_FAVORITE_SUCCESSFULLY = 'پیام با موفقیت از علاقه مندی ها به صندوق ورودی منتقل شد',
+ MESSAGE_MOVED_TO_INBOX_FROM_TRASH_SUCCESSFULLY = 'پیام با موفقیت از سطل زباله به صندوق ورودی منتقل شد',
+ MESSAGE_MOVED_TO_INBOX_FROM_JUNK_SUCCESSFULLY = 'پیام با موفقیت از جانک به صندوق ورودی منتقل شد',
+ MESSAGE_NOT_FOUND = 'پیام یافت نشد',
+
+ // Bulk action messages
+ BULK_ACTION_COMPLETED_SUCCESSFULLY = '[count] پیام با موفقیت [action] شد',
+ BULK_ACTION_PARTIALLY_COMPLETED = '[successful] از [total] پیام [action] شد. [failed] پیام با خطا مواجه شد',
+ BULK_ACTION_FAILED = 'هیچ پیامی [action] نشد. تمام [total] تلاش ناموفق بود',
+
+ // Bulk action display names
+ BULK_ACTION_SEEN = 'خوانده شده علامتگذاری',
+ BULK_ACTION_DELETE = 'حذف',
+ BULK_ACTION_ARCHIVE = 'آرشیو',
+ BULK_ACTION_UNARCHIVE = 'از آرشیو خارج',
+ BULK_ACTION_FAVORITE = 'به علاقه مندی ها منتقل',
+ BULK_ACTION_UNFAVORITE = 'از علاقه مندی ها حذف',
+ BULK_ACTION_JUNK = 'به جانک منتقل',
+ BULK_ACTION_NOTJUNK = 'از جانک از حذف',
+ BULK_ACTION_TRASH = 'به سطل زباله منتقل',
+ BULK_ACTION_RESTORE = 'از سطل زباله بازیابی',
+ BULK_ACTION_PROCESSED = 'پردازش',
+ USER_NOT_FOUND = 'کاربر یافت نشد',
+ PRIORITY_MUST_BE_ONE_OF_HIGH_NORMAL_LOW = 'اولویت باید یکی از مقادیر high, normal, low باشد',
+ SUBJECT_REQUIRED = 'موضوع ایمیل مورد نیاز است',
+ ALL_MESSAGES_DELETED_SUCCESSFULLY = 'همه پیام ها با موفقیت حذف شدند',
+ MAILBOX_ID_MUST_BE_MONGO_ID = 'شناسه میل باکس ایمیل باید یک آی دی معتبر باشد',
+ MESSAGE_MARKED_AS_UNSEEN_SUCCESSFULLY = 'پیام با موفقیت به عنوان خوانده نشده علامت گذاری شد',
+ MESSAGE_MARK_AS_UNSEEN_FAILED = 'علامت گذاری پیام به عنوان خوانده نشده با خطا مواجه شد',
+ ATTACHMENT_ID_MUST_BE_STRING = 'شناسه پیوست باید یک رشته باشد',
+ IS_FORWARD_MUST_BE_BOOLEAN = 'IS_FORWARD_MUST_BE_BOOLEAN',
+
+ // Favorite/Star messages (Gmail-like behavior)
+ MESSAGE_MARKED_AS_FAVORITE_SUCCESSFULLY = 'پیام با موفقیت به عنوان مورد علاقه علامت گذاری شد',
+ MESSAGE_REMOVED_FROM_FAVORITE_SUCCESSFULLY = 'پیام با موفقیت از مورد علاقه حذف شد',
+ TRASH_EMPTYED_SUCCESSFULLY = 'سطل زباله با موفقیت خالی شد',
+ SPAM_EMPTYED_SUCCESSFULLY = 'همه پیام های اسپم با موفقیت حذف شدند',
+ SAVE_DRAFT_SUCCESS = 'پیش نویس با موفقیت ذخیره شد',
+ HTML_CONTENT_REQUIRED = 'محتوای HTML مورد نیاز است',
+ TEXT_CONTENT_REQUIRED = 'TEXT_CONTENT_REQUIRED',
+}
+
+export const enum WebSocketMessage {
+ // Connection Messages
+ WS_CONNECTION_ESTABLISHED = 'اتصال وب سوکت با موفقیت برقرار شد',
+ WS_CONNECTION_FAILED = 'اتصال وب سوکت ناموفق بود',
+ WS_AUTHENTICATION_REQUIRED = 'احراز هویت وب سوکت مورد نیاز است',
+ WS_AUTHENTICATION_FAILED = 'احراز هویت وب سوکت ناموفق بود',
+ WS_AUTHENTICATION_SUCCESS = 'احراز هویت وب سوکت با موفقیت انجام شد',
+ WS_INVALID_TOKEN = 'توکن وب سوکت نامعتبر است',
+ WS_TOKEN_EXPIRED = 'توکن وب سوکت منقضی شده است',
+
+ // Room Management Messages
+ JOINED_ROOM_SUCCESS = 'با موفقیت به اتاق متصل شدید',
+ LEFT_ROOM_SUCCESS = 'با موفقیت از اتاق خارج شدید',
+ ROOM_NOT_FOUND = 'اتاق یافت نشد',
+ UNAUTHORIZED_ROOM_ACCESS = 'دسترسی غیرمجاز به اتاق',
+
+ // Session Management Messages
+ WS_SESSION_CREATED = 'جلسه وب سوکت ایجاد شد',
+ WS_SESSION_JOINED = 'به جلسه وب سوکت پیوستید',
+ WS_SESSION_LEFT = 'از جلسه وب سوکت خارج شدید',
+ WS_SESSION_EXPIRED = 'جلسه وب سوکت منقضی شده است',
+ WS_SESSION_NOT_FOUND = 'جلسه وب سوکت یافت نشد',
+
+ // Error Messages
+ WS_CONNECTION_ERROR = 'خطا در اتصال وب سوکت',
+ INVALID_EVENT = 'رویداد نامعتبر',
+ INVALID_DATA = 'داده نامعتبر',
+ WS_RATE_LIMIT_EXCEEDED = 'تعداد درخواستهای وب سوکت از حد مجاز بیشتر است',
+ INTERNAL_ERROR = 'خطای داخلی سرور',
+
+ // Notification Messages
+ NEW_MESSAGE_NOTIFICATION = 'پیام جدید دریافت شد',
+ MESSAGE_STATUS_UPDATED = 'وضعیت پیام بهروزرسانی شد',
+ MESSAGE_MOVED_NOTIFICATION = 'پیام جابجا شد',
+ MESSAGE_DELETED_NOTIFICATION = 'پیام حذف شد',
+
+ // General Messages
+ OPERATION_SUCCESS = 'عملیات با موفقیت انجام شد',
+ OPERATION_FAILED = 'عملیات ناموفق بود',
+ PERMISSION_DENIED = 'مجوز دسترسی ندارید',
+ RESOURCE_NOT_FOUND = 'منبع یافت نشد',
+
+ // Authentication errors
+ AUTHENTICATION_REQUIRED = 'احراز هویت ضروری است',
+ INVALID_TOKEN = 'توکن احراز هویت نامعتبر است',
+ TOKEN_EXPIRED = 'توکن منقضی شده است',
+ UNAUTHORIZED_ACCESS = 'دسترسی غیرمجاز',
+ USER_NOT_AUTHENTICATED = 'کاربر احراز هویت نشده است',
+
+ // Connection errors
+ CONNECTION_FAILED = 'اتصال برقرار نشد',
+ WEBSOCKET_ERROR = 'خطا در ارتباط WebSocket',
+ CONNECTION_TIMEOUT = 'زمان اتصال به پایان رسید',
+ CONNECTION_REFUSED = 'اتصال رد شد',
+
+ // Session errors
+ SESSION_NOT_FOUND = 'جلسه چت یافت نشد',
+ SESSION_CREATION_FAILED = 'ایجاد جلسه چت با شکست مواجه شد',
+ SESSION_ACCESS_DENIED = 'دسترسی به جلسه چت مجاز نیست',
+ SESSION_EXPIRED = 'جلسه چت منقضی شده است',
+ SESSION_ALREADY_EXISTS = 'جلسه چت قبلاً وجود دارد',
+
+ // Message errors
+ MESSAGE_TOO_LONG = 'پیام از حداکثر طول مجاز تجاوز کرده است',
+ MESSAGE_EMPTY = 'پیام نمیتواند خالی باشد',
+ MESSAGE_SEND_FAILED = 'ارسال پیام با شکست مواجه شد',
+ INVALID_MESSAGE_FORMAT = 'فرمت پیام نامعتبر است',
+
+ // Rate limiting
+ RATE_LIMIT_EXCEEDED = 'تعداد پیامهای ارسالی بیش از حد مجاز است',
+ TOO_MANY_CONNECTIONS = 'تعداد اتصالات بیش از حد مجاز است',
+
+ // Service errors
+ LLM_SERVICE_ERROR = 'سرویس هوش مصنوعی موقتاً در دسترس نیست',
+ SERVICE_UNAVAILABLE = 'سرویس موقتاً در دسترس نیست',
+ INTERNAL_SERVER_ERROR = '.خطای داخلی سرور',
+
+ // Validation errors
+ INVALID_SESSION_ID = 'شناسه جلسه نامعتبر است',
+ INVALID_USER_ID = 'شناسه کاربر نامعتبر است',
+ INVALID_MESSAGE_ID = 'شناسه پیام نامعتبر است',
+ REQUIRED_FIELD_MISSING = 'فیلد ضروری موجود نیست',
+
+ // Success messages
+ AUTHENTICATED = 'احراز هویت موفقیتآمیز',
+ SESSION_CREATED = 'جلسه چت با موفقیت ایجاد شد',
+ CHAT_JOINED = 'با موفقیت به چت متصل شدید',
+ MESSAGE_SENT = 'پیام ارسال شد',
+ CONNECTION_ESTABLISHED = 'اتصال برقرار شد',
+}
+
+export const enum SmsMessage {
+ SEND_SMS_ERROR = 'خطا در ارسال پیامک',
+}
+
+export const enum RestMessage {
+ NOT_FOUND = 'کسب و کار یافت نشد',
+ BUSINESS_ID_REQUIRED = 'شناسه کسب و کار مورد نیاز است',
+ SLUG_REQUIRED = 'اسلاگ مورد نیاز است',
+ SLUG_MUST_BE_STRING = 'اسلاگ باید یک رشته باشد',
+ DOMAIN_INVALID = 'دامنه وارد شده معتبر نیست',
+ DOMAIN_UPDATED = 'دامنه با موفقیت بهروزرسانی شد',
+ DOMAIN_VERIFICATION_INITIATED = 'فرآیند تایید دامنه آغاز شد',
+ DOMAIN_VERIFICATION_FAILED = 'تایید دامنه با خطا مواجه شد',
+ DOMAIN_VERIFICATION_SUCCESS = 'دامنه با موفقیت تایید شد',
+ DOMAIN_VERIFICATION_METHOD_INVALID = 'روش تایید دامنه نامعتبر است',
+ DOMAIN_ALREADY_VERIFIED = 'این دامنه قبلا تایید شده است',
+ DOMAIN_REQUIRED = 'دامنه مورد نیاز است',
+ DOMAIN_MUST_BE_STRING = 'دامنه باید یک رشته باشد',
+ STAFF_NOT_FOUND = 'کاربر ادمین یافت نشد',
+ ZARINPAL_MERCHANT_ID_REQUIRED = 'شناسه مرچنت زرین پال مورد نیاز است',
+ ZARINPAL_MERCHANT_ID_STRING = 'شناسه مرچنت زرین پال باید یک رشته باشد',
+ LOGO_URL_REQUIRED = 'آدرس تصویر لوگو مورد نیاز است',
+ LOGO_URL_STRING = 'آدرس تصویر لوگو باید یک رشته باشد',
+ LOGO_URL_INVALID = 'آدرس تصویر لوگو معتبر نیست',
+ BUSINESS_SETTINGS_UPDATED = 'تنظیمات کسب و کار با موفقیت به روز رسانی شد',
+ NAME_REQUIRED = 'نام کسب و کار مورد نیاز است',
+ NAME_STRING = 'نام کسب و کار باید یک رشته باشد',
+ DOMAIN_CONNECTED = 'دامنه با موفقیت متصل شد',
+ DOMAIN_NOT_CONNECTED = 'دامنه به سرور ما متصل نشد',
+ DOMAIN_NOT_FOUND = 'دامنه یافت نشد',
+ DOMAIN_VERIFICATION_TOKEN_REQUIRED = 'توکن تایید دامنه مورد نیاز است',
+ INSUFFICIENT_QUOTA = 'حجم شما برای ساخت ایمیل کافی نمی باشد، لطفا حجم را افزایش دهید',
+ QUOTA_DOWNGRADE_NOT_ALLOWED = 'کاهش حجم ایمیل مجاز نیست، فقط میتوانید حجم را افزایش دهید',
+ QUOTA_AMOUNT_REQUIRED = 'مقدار حجم مورد نیاز است',
+ QUOTA_AMOUNT_MUST_BE_NUMBER = 'مقدار حجم باید یک عدد باشد',
+ QUOTA_AMOUNT_MUST_BE_POSITIVE = 'مقدار حجم باید مثبت باشد',
+ CALLBACK_URL_MUST_BE_STRING = 'آدرس بازگشت باید یک رشته باشد',
+ CALLBACK_URL_INVALID = 'آدرس بازگشت معتبر نیست',
+ PURCHASE_DESCRIPTION_MUST_BE_STRING = 'توضیحات خرید باید یک رشته باشد',
+ QUOTA_PURCHASE_SUCCESS = 'درخواست خرید حجم با موفقیت ثبت شد',
+ QUOTA_PURCHASE_FAILED = 'خرید حجم با خطا مواجه شد',
+ PAYMENT_GATEWAY_ERROR = 'خطا در اتصال به درگاه پرداخت',
+ QUOTA_UPDATED = 'حجم ایمیل با موفقیت به روز شد',
+ USER_DOES_NOT_HAVE_ACCESS_TO_SERVICE = 'کاربر دسترسی به این سرویس را ندارد',
+}
+
+export const enum DomainMessage {
+ // Domain Ownership & Verification
+ NOT_BELONG_TO_BUSINESS = 'دامنه به این کسب و کار تعلق ندارد',
+ NOT_VERIFIED = 'دامنه باید تایید شده باشد',
+ DOMAIN_NOT_FOUND = 'دامنه یافت نشد',
+ DOMAIN_ALREADY_EXISTS = 'دامنه [name] قبلا ثبت شده است',
+ DOMAIN_DELETED_SUCCESSFULLY = 'دامنه با موفقیت حذف شد',
+ VERIFICATION_NOT_FOUND = 'تایید دامنه یافت نشد',
+ NO_DOMAIN_FOUND = 'دامنه ای یافت نشد',
+ DOMAIN_CHECKED = 'دامنه با موفقیت بررسی شد',
+
+ // Domain Creation & Setup
+ DOMAIN_CREATED_WITH_RECORDS = 'دامنه [name] با موفقیت ایجاد شد و تمام رکوردهای مورد نیاز تولید گردید',
+ ALL_REQUIRED_RECORDS_GENERATED = 'تمام رکوردهای مورد نیاز (MX, SPF, DMARC, DKIM) به طور خودکار برای شما تولید شدهاند',
+ ESTIMATED_PROPAGATION_TIME = 'تغییرات DNS معمولاً ۱۵ دقیقه تا ۴۸ ساعت در سراسر جهان منتشر میشود',
+
+ // DNS Records Instructions
+ ADD_MX_RECORD = 'یک رکورد MX با نام [name] که به [value] با اولویت [priority] اشاره کند اضافه کنید',
+ ADD_TXT_RECORD = 'یک رکورد TXT با نام [name] و مقدار [value] اضافه کنید',
+ ADD_DKIM_RECORD = 'یک رکورد TXT با نام [name] و مقدار [value] اضافه کنید (کلید عمومی DKIM)',
+ ADD_DMARC_RECORD = 'یک رکورد TXT با نام [name] و مقدار [value] اضافه کنید (سیاست DMARC)',
+ ADD_CNAME_RECORD = 'یک رکورد CNAME با نام [name] که به [value] اشاره کند اضافه کنید',
+ ADD_GENERIC_RECORD = 'یک رکورد [type] با نام [name] و مقدار [value] اضافه کنید',
+
+ // Domain Setup Steps
+ STEP_LOGIN_DNS_PANEL = 'وارد پنل مدیریت DNS ثبت کننده دامنه خود شوید',
+ STEP_ADD_ALL_RECORDS = 'تمام رکوردهای DNS مورد نیاز لیست شده در بالا را به زون DNS دامنه خود اضافه کنید',
+ STEP_INCLUDE_ALL_TYPES = 'مطمئن شوید که رکوردهای MX، SPF، DMARC و DKIM را برای عملکرد کامل ایمیل شامل کردهاید',
+ STEP_WAIT_PROPAGATION = 'منتظر انتشار DNS بمانید (معمولاً ۱۵ دقیقه تا ۴۸ ساعت)',
+ STEP_USE_CHECK_ENDPOINT = "از نقطه پایانی 'بررسی DNS' برای تایید تنظیم صحیح رکوردهای خود استفاده کنید",
+ STEP_DOMAIN_READY = 'پس از تایید، دامنه شما برای سرویسهای ایمیل آماده خواهد بود!',
+
+ // Status Messages
+ RECORDS_PENDING_VERIFICATION = '[count] رکورد DNS هنوز در انتظار تایید هستند',
+ ALL_REQUIRED_RECORDS_MUST_BE_CONFIGURED = 'تمام [count] رکورد مورد نیاز باید برای کار درست ایمیل تنظیم شوند',
+ DOMAIN_FULLY_VERIFIED = 'دامنه شما به طور کامل تایید شده و برای ایمیل آماده است!',
+ EMAIL_ACCOUNTS_READY = 'اکنون میتوانید حسابهای ایمیل ایجاد کرده و شروع به ارسال/دریافت ایمیل کنید',
+
+ // Verification Status
+ DOMAIN_VERIFICATION_INITIATED = 'فرآیند تایید دامنه آغاز شد',
+ DOMAIN_VERIFICATION_FAILED = 'تایید دامنه با خطا مواجه شد',
+ DOMAIN_VERIFICATION_SUCCESS = 'دامنه با موفقیت تایید شد',
+ DOMAIN_VERIFICATION_PENDING = 'تایید دامنه در انتظار است',
+
+ // DNS Record Status
+ DNS_RECORD_VERIFIED = 'رکورد DNS تایید شد',
+ DNS_RECORD_FAILED = 'رکورد DNS تایید نشد',
+ DNS_RECORD_NOT_FOUND_OR_MISMATCH = 'رکورد DNS یافت نشد یا مقدار مطابقت ندارد',
+
+ // DKIM Messages
+ DKIM_ENABLED_AUTOMATICALLY = 'DKIM به طور خودکار برای دامنه [name] فعال شد',
+ DKIM_FAILED_TO_CREATE = 'ایجاد DKIM برای دامنه [name] ناموفق بود',
+ DKIM_ENABLED_SUCCESSFULLY = 'DKIM برای دامنه [name] با موفقیت فعال شد',
+
+ // Error Messages
+ FAILED_TO_VERIFY_DOMAIN = 'تایید دامنه [name] ناموفق بود',
+ FAILED_TO_SETUP_MAIL_SERVER = 'راهاندازی دامنه [name] در سرور ایمیل ناموفق بود',
+ DOMAIN_CREATION_FAILED = 'ایجاد دامنه ناموفق بود',
+ DNS_VERIFICATION_ATTEMPTS_EXCEEDED = 'تعداد تلاشهای تایید DNS از حد مجاز بیشتر شد',
+
+ // Service Messages
+ DOMAIN_UPDATED_SUCCESSFULLY = 'دامنه بروزرسانی شد',
+ VERIFICATION_TOKEN_PREFIX = 'توکن تایید: [token]',
+ RECORD_NEEDS_FIXING = 'رکورد [type] برای [name] نیاز به اصلاح دارد: [error]',
+ RECORD_PENDING_VERIFICATION_DETAIL = 'رکورد [type] برای [name] هنوز در انتظار تایید است. لطفا مطمئن شوید که انتشار DNS کامل شده است.',
+ RECORD_DESCRIPTION_EMAIL_FUNCTIONALITY = 'رکورد [type] برای عملکرد ایمیل',
+ BUSINESS_ALREADY_HAS_DOMAIN = 'این کسب و کار قبلا دامنه ای دارد',
+ CAN_NOT_USE_THIS_DOMAIN = 'این دامنه نمیتواند ثبت شود',
+}
+
+export const enum MailServerMessage {
+ FAILED_TO_CREATE_ACCOUNT = 'خطا در ایجاد ایمیل',
+ FAILED_TO_CREATE_DKIM_KEY = 'خطا در ایجاد کلید DKIM',
+}
+
+export const enum DnsRecordMessage {
+ DNS_RECORD_NOT_FOUND = 'رکورد DNS یافت نشد',
+ DNS_RECORD_DELETED = 'رکورد DNS با موفقیت حذف شد',
+}
+
+export const enum RoleMessage {
+ NOT_FOUND = 'نقش یافت نشد',
+}
+
+export const enum SignatureMessage {
+ NAME_NOT_EMPTY = 'نام امضاء نمیتواند خالی باشد',
+ NAME_MAX_LENGTH = 'نام امضاء نمیتواند بیشتر از حداکثر طول مجاز باشد',
+ NAME_STRING = 'نام امضاء باید یک رشته باشد',
+ TEXT_CONTENT_NOT_EMPTY = 'محتوای متنی امضاء نمیتواند خالی باشد',
+ TEXT_CONTENT_STRING = 'محتوای متنی امضاء باید یک رشته باشد',
+ TEXT_CONTENT_MAX_LENGTH = 'محتوای متنی امضاء نمیتواند بیشتر از حداکثر طول مجاز باشد',
+ IS_ACTIVE_NOT_EMPTY = 'وضعیت فعال بودن نمیتواند خالی باشد',
+ IS_ACTIVE_BOOLEAN = 'وضعیت فعال بودن باید بولین باشد',
+ IS_DEFAULT_NOT_EMPTY = 'وضعیت پیش فرض نمیتواند خالی باشد',
+ IS_DEFAULT_BOOLEAN = 'وضعیت پیش فرض باید بولین باشد',
+ CREATED = 'امضاء با موفقیت ایجاد شد',
+ NOT_FOUND = 'امضاء یافت نشد',
+ DELETED = 'امضاء با موفقیت حذف شد',
+ TOGGLE_ACTIVE = 'وضعیت امضاء با موفقیت تغییر کرد',
+}
+
+export const enum TemplateMessage {
+ TEMPLATE_NOT_FOUND = 'قالب یافت نشد',
+ TEMPLATE_CREATED_SUCCESSFULLY = 'قالب با موفقیت ایجاد شد',
+ TEMPLATE_UPDATED_SUCCESSFULLY = 'قالب با موفقیت به روزرسانی شد',
+ TEMPLATE_DELETED_SUCCESSFULLY = 'قالب با موفقیت حذف شد',
+ TEMPLATE_RETRIEVED_SUCCESSFULLY = 'قالب با موفقیت دریافت شد',
+ TEMPLATES_LISTED_SUCCESSFULLY = 'لیست قالب ها با موفقیت دریافت شد',
+ TEMPLATE_NAME_REQUIRED = 'نام قالب الزامی است',
+ TEMPLATE_NAME_STRING = 'نام قالب باید یک رشته باشد',
+ TEMPLATE_NAME_MAX_LENGTH = 'نام قالب نمیتواند بیشتر از ۲۵۵ کاراکتر باشد',
+ TEMPLATE_STRUCTURE_REQUIRED = 'ساختار قالب الزامی است',
+ TEMPLATE_STRUCTURE_VALID = 'ساختار قالب باید معتبر باشد',
+ TEMPLATE_RAW_HTML_STRING = 'HTML خام باید یک رشته باشد',
+ TEMPLATE_BUSINESS_ID_REQUIRED = 'شناسه کسب و کار الزامی است',
+ TEMPLATE_BUSINESS_ID_UUID = 'شناسه کسب و کار باید یک UUID معتبر باشد',
+ TEMPLATE_ID_REQUIRED = 'شناسه قالب الزامی است',
+ TEMPLATE_ID_UUID = 'شناسه قالب باید یک UUID معتبر باشد',
+ TEMPLATE_ACCESS_DENIED = 'شما دسترسی به این قالب را ندارید',
+ TEMPLATE_BUSINESS_NOT_FOUND = 'کسب و کار مالک قالب یافت نشد',
+ SEARCH_STRING = 'نام برای جستجو باید یک رشته باشد',
+ TEMPLATE_SELECTED_SUCCESSFULLY = 'وضعیت قالب با موفقیت تغییر کرد',
+ TEMPLATE_THUMBNAIL_URL_VALID = 'آدرس تصویر قالب باید یک آدرس معتبر باشد',
+ TEMPLATE_RAW_HTML_REQUIRED = 'HTML خام قالب الزامی است',
+}
+
+export const enum NotificationMessage {
+ TITLE_IS_REQUIRED = 'عنوان اعلان الزامی است',
+ TITLE_STRING = 'عنوان اعلان باید یک رشته باشد',
+ MESSAGE_IS_REQUIRED = 'متن اعلان الزامی است',
+ MESSAGE_STRING = 'متن اعلان باید یک رشته باشد',
+ USERID_IS_REQUIRED = 'شناسه کاربر الزامی است',
+ USERID_IS_STRING = 'شناسه کاربر باید یک رشته باشد',
+ USERID_IS_UUID = 'شناسه کاربر باید یک UUID معتبر باشد',
+ TYPE_IS_REQUIRED = 'نوع اعلان الزامی است',
+ TYPE_ENUM = 'نوع اعلان باید یک enum معتبر باشد',
+ NOTIFICATION_NOT_FOUND_OR_ACCESS_DENIED = 'اعلان یافت نشد یا دسترسی آن را ندارید',
+ LOGIN_MESSAGE = 'ورود با موفقیت انجام شد در تاریخ [loginDate]',
+ LOGIN = 'ورود',
+ NEW_EMAIL = 'ایمیل جدید',
+ NEW_EMAIL_MESSAGE = 'یک ایمیل جدید با موضوع [subject] دریافت شد',
+ CHANGE_PASSWORD_MESSAGE = 'رمز عبور شما با موفقیت تغییر کرد',
+ CHANGE_PASSWORD = 'تغییر رمز عبور',
+ NOT_FOUND = 'اعلان یافت نشد',
+ READ_SUCCESS = 'اعلان با موفقیت خوانده شد',
+ ORDER_CREATED = 'سفارش جدید ایجاد شد',
+ ORDER_STATUS_CHANGED = 'وضعیت سفارش تغییر کرد',
+ PAYMENT_SUCCESS = 'پرداخت با موفقیت انجام شد',
+ PAGER_CREATED = 'پیج جدید ایجاد شد',
+}
+
+export const enum SettingMessageEnum {
+ SMS_MUST_BE_BOOLEAN = 'تنظیمات ارسال پیامک باید یک boolean باشد',
+ EMAIL_MUST_BE_BOOLEAN = 'تنظیمات ارسال ایمیل باید یک boolean باشد',
+ NOTIFICATION_NOT_FOUND_OR_ACCESS_DENIED = 'اعلان یافت نشد یا دسترسی آن را ندارید',
+}
+
+export const enum AiMessage {
+ NO_RESPONSE_FROM_AI_MODEL = 'خطا در دریافت پاسخ از مدل AI',
+ MESSAGE_NOT_FOUND_OR_ACCESS_DENIED = 'ایمیل یافت نشد یا دسترسی آن را ندارید',
+ EMAIL_CONTENT_IS_EMPTY_OR_COULD_NOT_BE_EXTRACTED = 'محتوای ایمیل خالی است یا قابل استخراج نیست',
+ DESCRIPTION_IS_REQUIRED = 'شرح و هدف قالب الزامی است',
+ DESCRIPTION_MUST_BE_A_STRING = 'شرح قالب باید یک رشته باشد',
+ DESCRIPTION_MUST_BE_AT_LEAST_10_CHARACTERS = 'شرح قالب باید حداقل ۱۰ کاراکتر باشد',
+ DESCRIPTION_MUST_BE_LESS_THAN_500_CHARACTERS = 'شرح قالب نمیتواند بیشتر از ۵۰۰ کاراکتر باشد',
+ THEME_MUST_BE_A_VALID_VALUE = 'تم قالب باید یکی از مقادیر مجاز باشد',
+ STYLE_MUST_BE_A_VALID_VALUE = 'سبک قالب باید یکی از مقادیر مجاز باشد',
+ PURPOSE_MUST_BE_A_VALID_VALUE = 'هدف قالب باید یکی از مقادیر مجاز باشد',
+ TEMPLATE_NAME_MUST_BE_A_STRING = 'نام قالب باید یک رشته باشد',
+ TEMPLATE_NAME_MUST_BE_LESS_THAN_100_CHARACTERS = 'نام قالب نمیتواند بیشتر از ۱۰۰ کاراکتر باشد',
+ PREFERRED_COLORS_MUST_BE_A_STRING = 'رنگهای ترجیحی باید یک رشته باشد',
+ PREFERRED_COLORS_MUST_BE_LESS_THAN_200_CHARACTERS = 'رنگهای ترجیحی نمیتواند بیشتر از ۲۰۰ کاراکتر باشد',
+ PREFERRED_COLORS_IS_REQUIRED = 'رنگهای ترجیحی الزامی است',
+}
+
+export const enum TwoFactorMessage {
+ TWO_FACTOR_SETUP_INITIATED = 'راهاندازی احراز هویت دو مرحلهای با موفقیت آغاز شد',
+ TWO_FACTOR_ENABLED_SUCCESSFULLY = 'احراز هویت دو مرحلهای با موفقیت فعال شد',
+ TWO_FACTOR_DISABLED_SUCCESSFULLY = 'احراز هویت دو مرحلهای با موفقیت غیرفعال شد',
+ TWO_FACTOR_SETUP_FAILED = 'راهاندازی احراز هویت دو مرحلهای ناموفق بود',
+ TWO_FACTOR_ENABLE_FAILED = 'فعالسازی احراز هویت دو مرحلهای ناموفق بود',
+ TWO_FACTOR_TOKEN_VERIFIED_SUCCESSFULLY = 'کد احراز هویت دو مرحلهای با موفقیت تأیید شد',
+ TWO_FACTOR_TOKEN_VERIFIED_FAILED = 'کد احراز هویت دو مرحلهای نامعتبر میباشد',
+ TWO_FACTOR_NOT_ENABLED = 'احراز هویت دو مرحلهای فعال نیست',
+ TWO_FACTOR_BACKUP_CODES_GENERATED_SUCCESSFULLY = 'کدهای پشتیبان با موفقیت تولید شدند',
+ TWO_FACTOR_BACKUP_CODE_VERIFIED_SUCCESSFULLY = 'کد پشتیبان با موفقیت تأیید شد',
+ TWO_FACTOR_BACKUP_CODE_VERIFIED_FAILED = 'کد پشتیبان نامعتبر است',
+ TWO_FACTOR_TOKEN_REQUIRED = 'کد احراز هویت دو مرحلهای الزامی است',
+ TWO_FACTOR_TOKEN_INVALID = 'کد احراز هویت دو مرحلهای نامعتبر است',
+}
+
+export const enum CouponMessage {
+ NOT_FOUND = 'کوپن یافت نشد',
+ CODE_ALREADY_EXISTS = 'کد کوپن قبلاً ثبت شده است',
+ END_DATE_MUST_BE_AFTER_START_DATE = 'تاریخ پایان باید بعد از تاریخ شروع باشد',
+ PERCENTAGE_MUST_BE_BETWEEN_0_AND_100 = 'درصد تخفیف باید بین ۰ تا ۱۰۰ باشد',
+ COUPON_INACTIVE = 'کوپن غیرفعال است',
+ COUPON_NOT_STARTED = 'کوپن هنوز شروع نشده است',
+ COUPON_EXPIRED = 'کوپن منقضی شده است',
+ COUPON_MAX_USES_REACHED = 'حداکثر استفاده از کوپن به پایان رسیده است',
+ MIN_ORDER_AMOUNT_NOT_MET = 'مبلغ سفارش کمتر از حداقل مجاز است',
+ COUPON_CREATED = 'کوپن با موفقیت ایجاد شد',
+ COUPON_UPDATED = 'کوپن با موفقیت بهروزرسانی شد',
+ COUPON_DELETED = 'کوپن با موفقیت حذف شد',
+ COUPON_VALID = 'کوپن معتبر است',
+ COUPON_INVALID = 'کوپن نامعتبر است',
+ COUPON_RESTRICTED_TO_USER = 'کوپن فقط برای کاربر مشخصی معتبر است',
+}
+
+export const enum ReviewMessage {
+ NOT_FOUND = 'نظر یافت نشد',
+ ALREADY_COMMENTED = 'شما قبلاً برای این غذا نظر دادهاید',
+ CAN_ONLY_UPDATE_OWN = 'شما فقط میتوانید نظرات خود را ویرایش کنید',
+ CAN_ONLY_DELETE_OWN = 'شما فقط میتوانید نظرات خود را حذف کنید',
+ RATING_REQUIRED = 'امتیاز الزامی است',
+ RATING_INVALID = 'امتیاز باید بین ۱ تا ۵ باشد',
+ COMMENT_CREATED = 'نظر با موفقیت ثبت شد',
+ COMMENT_UPDATED = 'نظر با موفقیت بهروزرسانی شد',
+ COMMENT_DELETED = 'نظر با موفقیت حذف شد',
+}
+
+export const enum IconMessage {
+ NOT_FOUND = 'آیکون یافت نشد',
+ NOT_CREATED = 'ایجاد آیکون با خطا مواجه شد',
+ NOT_UPDATED = 'بهروزرسانی آیکون با خطا مواجه شد',
+ NOT_DELETED = 'حذف آیکون با خطا مواجه شد',
+}
+
+export const enum GroupMessage {
+ NOT_FOUND = 'گروه آیکون یافت نشد',
+ NOT_CREATED = 'ایجاد گروه آیکون با خطا مواجه شد',
+ NOT_UPDATED = 'بهروزرسانی گروه آیکون با خطا مواجه شد',
+ NOT_DELETED = 'حذف گروه آیکون با خطا مواجه شد',
+}
+
+export const enum OrderMessage {
+ NOT_FOUND = 'سفارش یافت نشد',
+ PAYMENT_METHOD_MISSING = 'روش پرداخت سفارش مشخص نشده است',
+ INVALID_STATUS_TRANSITION = 'انتقال وضعیت نامعتبر است',
+ CART_EMPTY = 'سبد خرید خالی است. لطفا قبل از ایجاد سفارش، آیتمهایی به سبد اضافه کنید',
+ DELIVERY_METHOD_NOT_FOUND = 'روش ارسال یافت نشد',
+ PAYMENT_METHOD_REQUIRED = 'روش پرداخت الزامی است. لطفا قبل از ایجاد سفارش، روش پرداخت را تنظیم کنید',
+ USER_NOT_FOUND = 'کاربر یافت نشد',
+ RESTAURANT_NOT_FOUND = 'رستوران یافت نشد',
+ DELIVERY_NOT_FOUND = 'روش ارسال یافت نشد',
+ MIN_ORDER_AMOUNT_NOT_MET = 'مبلغ سفارش کمتر از حداقل مجاز برای این روش ارسال است',
+ TABLE_NUMBER_REQUIRED = 'شماره میز برای سفارش در محل الزامی است',
+ ADDRESS_REQUIRED = 'آدرس الزامی است. لطفا قبل از ایجاد سفارش، آدرس تحویل را تنظیم کنید',
+ CAR_ADDRESS_REQUIRED = 'آدرس خودرو الزامی است. لطفا قبل از ایجاد سفارش، آدرس خودرو را تنظیم کنید',
+ PAYMENT_METHOD_NOT_FOUND = 'روش پرداخت یافت نشد',
+ PAYMENT_METHOD_NOT_ENABLED = 'روش پرداخت برای این رستوران فعال نیست',
+ FOOD_NOT_FOUND = 'غذا یافت نشد',
+ FOOD_NOT_BELONGS_TO_RESTAURANT = 'غذا به این رستوران تعلق ندارد',
+}
+
+export const enum CartMessage {
+ TABLE_NUMBER_REQUIRED = 'شماره میز برای سفارش در محل الزامی است',
+ CAR_ADDRESS_REQUIRED = 'آدرس خودرو برای تحویل به خودرو الزامی است',
+ ADDRESS_REQUIRED = 'آدرس برای تحویل پیک الزامی است',
+ NOT_FOUND = 'سبد خرید یافت نشد',
+ COUPON_NOT_FOUND = 'کوپن یافت نشد',
+ FOOD_NOT_FOUND = 'غذا یافت نشد',
+ FOOD_NOT_BELONGS_TO_RESTAURANT = 'غذا به این رستوران تعلق ندارد',
+ FOOD_NO_INVENTORY = 'غذا موجودی ندارد',
+ INSUFFICIENT_STOCK = 'موجودی کافی نیست',
+ USER_NOT_FOUND = 'کاربر یافت نشد',
+ ADDRESS_NOT_FOUND = 'آدرس یافت نشد',
+ RESTAURANT_NOT_FOUND = 'رستوران یافت نشد',
+ ADDRESS_NOT_BELONGS_TO_USER = 'آدرس به کاربر فعلی تعلق ندارد',
+ ADDRESS_NO_COORDINATES = 'آدرس مختصات جغرافیایی ندارد',
+ ADDRESS_OUTSIDE_SERVICE_AREA = 'آدرس خارج از محدوده سرویس رستوران است',
+ DELIVERY_METHOD_NOT_FOUND = 'روش ارسال یافت نشد',
+ DELIVERY_METHOD_NOT_ENABLED = 'روش ارسال برای این رستوران فعال نیست',
+ PAYMENT_METHOD_NOT_FOUND = 'روش پرداخت یافت نشد',
+ PAYMENT_METHOD_NOT_ENABLED = 'روش پرداخت برای این رستوران فعال نیست',
+ WALLET_NOT_FOUND = 'کیف پول کاربر یافت نشد',
+ WALLET_INSUFFICIENT = 'موجودی کیف پول کافی نیست',
+ COUPON_MAX_USES_REACHED = 'حداکثر استفاده از کوپن به پایان رسیده است',
+ ITEM_NOT_FOUND = 'آیتم در سبد خرید یافت نشد',
+ DELIVERY_METHOD_NOT_FOUND_FOR_RESTAURANT = 'روش ارسال برای این رستوران یافت نشد',
+ COUPON_CANNOT_BE_APPLIED = 'این کوپن قابل اعمال بر روی آیتمهای سبد خرید شما نیست. لطفا آیتمهایی از دستهبندیها یا غذاهای مشخص شده اضافه کنید',
+ FOODS_MUST_HAVE_PICKUP_SERVE_FOR_COURIER = 'تمام غذاها باید قابلیت تحویل پیک داشته باشند. غذاهای زیر این قابلیت را ندارند: [foodTitles]',
+ FOOD_ONLY_AVAILABLE_DURING_MEAL_TIMES = 'غذا [foodTitle] فقط در ساعات وعدههای غذایی (صبحانه، ناهار، عصرانه یا شام) در دسترس است. زمان فعلی خارج از ساعات وعدههای غذایی است',
+ FOOD_ONLY_AVAILABLE_FOR_MEAL_TYPES = 'غذا [foodTitle] فقط برای [allowedMealTypes] در دسترس است. زمان فعلی [mealType] است که با این غذا سازگار نیست',
+ FOOD_ONLY_AVAILABLE_ON_DAYS = 'غذا [foodTitle] فقط در روزهای [allowedDays] در دسترس است. امروز [currentDay] است که این غذا در دسترس نیست',
+}
+
+export const enum PaymentMessage {
+ UNSUPPORTED_PAYMENT_METHOD = 'روش پرداخت پشتیبانی نمیشود',
+ ORDER_NOT_FOUND = 'سفارش یافت نشد',
+ AMOUNT_MUST_BE_GREATER_THAN_ZERO = 'مبلغ باید بیشتر از صفر باشد',
+ PAYMENT_METHOD_NOT_FOUND = 'روش پرداخت یافت نشد',
+ GATEWAY_REQUIRED = 'درگاه پرداخت برای پرداخت آنلاین الزامی است',
+ MERCHANT_ID_REQUIRED = 'شناسه مرچنت برای پرداخت آنلاین الزامی است',
+ RESTAURANT_DOMAIN_REQUIRED = 'دامنه رستوران برای پرداخت آنلاین الزامی است',
+ WALLET_NOT_FOUND = 'کیف پول کاربر یافت نشد',
+ INSUFFICIENT_WALLET_BALANCE = 'موجودی کیف پول کافی نیست',
+ PAYMENT_NOT_FOUND = 'پرداخت یافت نشد',
+ INVALID_PAYMENT_CONFIGURATION = 'پیکربندی پرداخت نامعتبر است',
+ PAYMENT_METHOD_NOT_CASH = 'روش پرداخت نقدی نیست',
+ PAYMENT_ALREADY_PAID = 'پرداخت قبلا انجام شده است',
+ EXISTING_PENDING_PAYMENT_MISMATCH = 'پرداخت در انتظار موجود با روش پرداخت سفارش مطابقت ندارد',
+ ZARINPAL_INVALID_RESPONSE = 'پاسخ نامعتبر از API زرینپال',
+ ZARINPAL_PAYMENT_REQUEST_ERROR = 'خطا در درخواست پرداخت زرینپال',
+ ZARINPAL_VERIFY_ERROR = 'خطا در تایید پرداخت زرینپال',
+ GATEWAY_ERROR = 'خطا در اتصال به درگاه پرداخت',
+}
+
+export const enum DeliveryMessage {
+ RESTAURANT_NOT_FOUND = 'رستوران یافت نشد',
+ DELIVERY_METHOD_NOT_FOUND = 'روش ارسال یافت نشد',
+}
+
+export const enum InventoryMessage {
+ AVAILABLE_STOCK_EXCEEDS_TOTAL = 'موجودی موجود نمیتواند از موجودی کل بیشتر باشد',
+ FOOD_NOT_FOUND = 'غذا یافت نشد',
+ FOOD_NOT_BELONGS_TO_RESTAURANT = 'غذا به این رستوران تعلق ندارد',
+ RESTAURANT_NOT_FOUND = 'رستوران یافت نشد',
+ FOODS_NOT_FOUND = 'غذاها یافت نشدند',
+}
+
+
+export const enum PagerMessage {
+ CREATED_SUCCESS = 'درخواست پیج با موفقیت ایجاد شد',
+}
+
+export const enum UserSuccessMessage {
+ ADDRESS_DELETED_SUCCESS = 'آدرس با موفقیت حذف شد',
+ SCORE_CONVERTED_SUCCESS = 'امتیاز با موفقیت به کیف پول تبدیل شد',
+}
+
+export const enum ContactMessage {
+ NOT_FOUND = 'تماس یافت نشد',
+ CREATED = 'تماس با موفقیت ثبت شد',
+ UPDATED = 'تماس با موفقیت بهروزرسانی شد',
+ DELETED = 'تماس با موفقیت حذف شد',
+}
+
diff --git a/src/common/enums/permission.enum.ts b/src/common/enums/permission.enum.ts
new file mode 100644
index 0000000..5dbb207
--- /dev/null
+++ b/src/common/enums/permission.enum.ts
@@ -0,0 +1,58 @@
+/**
+ * Permission names enum
+ * All permission names used in the system should be defined here
+ */
+export enum Permission {
+ MANAGE_PAGER = 'manage_pager',
+ // Food Management
+ MANAGE_FOODS = 'manage_foods',
+ MANAGE_CATEGORIES = 'manage_categories',
+
+ // Order Management
+ MANAGE_ORDERS = 'manage_orders',
+
+ // User & Admin Management
+ MANAGE_ADMINS = 'manage_admins',
+ MANAGE_USERS = 'manage_users',
+
+ // Reports & Finances
+ VIEW_REPORTS = 'view_reports',
+
+
+ UPDATE_RESTAURANT = 'update_restaurant',
+
+ // Role Management
+ MANAGE_ROLES = 'manage_roles',
+ MANAGE_REVIEWS = 'manage_reviews',
+ MANAGE_COUPONS = 'manage_coupons',
+ MANAGE_PAYMENTS = 'manage_payments',
+ MANAGE_DELIVERY = 'manage_delivery',
+ MANAGE_SETTINGS = 'manage_settings',
+ MANAGE_SCHEDULES = 'manage_schedules',
+ MANAGE_REPORTS = 'manage_reports',
+ MANAGE_CONTACTS = 'manage_contacts',
+}
+
+/**
+ * Permission titles mapping (Farsi)
+ * Maps permission names to their Farsi titles
+ */
+export const PermissionTitles: Record = {
+ [Permission.MANAGE_PAGER]: 'مدیریت پیجر',
+ [Permission.MANAGE_FOODS]: 'مدیریت غذاها',
+ [Permission.MANAGE_CATEGORIES]: 'مدیریت دستهبندیها',
+ [Permission.MANAGE_ORDERS]: 'مدیریت سفارشات',
+ [Permission.MANAGE_ADMINS]: 'مدیریت مدیران',
+ [Permission.MANAGE_USERS]: 'مدیریت کاربران',
+ [Permission.VIEW_REPORTS]: 'مشاهده گزارشات',
+ [Permission.UPDATE_RESTAURANT]: 'ویرایش رستوران',
+ [Permission.MANAGE_ROLES]: 'مدیریت نقشها',
+ [Permission.MANAGE_REVIEWS]: 'مدیریت نظرات',
+ [Permission.MANAGE_COUPONS]: 'مدیریت کوپنها',
+ [Permission.MANAGE_PAYMENTS]: 'مدیریت پرداختها',
+ [Permission.MANAGE_DELIVERY]: 'مدیریت تحویل',
+ [Permission.MANAGE_SETTINGS]: 'مدیریت تنظیمات',
+ [Permission.MANAGE_SCHEDULES]: 'مدیریت برنامهها',
+ [Permission.MANAGE_REPORTS]: 'مدیریت گزارشات',
+ [Permission.MANAGE_CONTACTS]: 'مدیریت تماسهای کاربران',
+};
diff --git a/src/common/interfaces/pagination.interface.ts b/src/common/interfaces/pagination.interface.ts
new file mode 100644
index 0000000..e76e9d1
--- /dev/null
+++ b/src/common/interfaces/pagination.interface.ts
@@ -0,0 +1,9 @@
+export interface PaginatedResult {
+ data: T[];
+ meta: {
+ total: number;
+ page: number;
+ limit: number;
+ totalPages: number;
+ };
+}
diff --git a/src/common/providers/mikro-orm-logger.provider.ts b/src/common/providers/mikro-orm-logger.provider.ts
new file mode 100644
index 0000000..9966342
--- /dev/null
+++ b/src/common/providers/mikro-orm-logger.provider.ts
@@ -0,0 +1,9 @@
+import type { ValueProvider } from '@nestjs/common';
+import { Logger } from '@nestjs/common';
+
+import { MIKRO_ORM_QUERY_LOGGER } from '../constants';
+
+export const mikroOrmQueryLoggerProvider: ValueProvider = {
+ provide: MIKRO_ORM_QUERY_LOGGER, //
+ useValue: new Logger('mikro-orm'),
+};
diff --git a/src/config/cache.config.ts b/src/config/cache.config.ts
new file mode 100755
index 0000000..c2134ea
--- /dev/null
+++ b/src/config/cache.config.ts
@@ -0,0 +1,27 @@
+import { Keyv } from 'keyv';
+import KeyvRedis from '@keyv/redis';
+import type { CacheModuleAsyncOptions } from '@nestjs/cache-manager';
+import { ConfigService } from '@nestjs/config';
+import { CacheableMemory } from 'cacheable';
+
+export function cacheConfig(): CacheModuleAsyncOptions {
+ return {
+ isGlobal: true,
+ inject: [ConfigService],
+ useFactory: async (configService: ConfigService) => {
+ const redisUri = configService.get('REDIS_URI');
+ const namespace = configService.get('CACHE_NAMESPACE', 'app-cache');
+ const ttl = +configService.get('CACHE_TTL', 3600); //1 hour
+
+ return {
+ stores: [
+ new Keyv({
+ store: new CacheableMemory({ ttl: ttl * 1000, lruSize: 5000 }),
+ namespace: namespace
+ }),
+ new KeyvRedis(redisUri, { namespace: namespace }),
+ ],
+ };
+ },
+ };
+}
\ No newline at end of file
diff --git a/src/config/http.config.ts b/src/config/http.config.ts
new file mode 100755
index 0000000..7f7d11f
--- /dev/null
+++ b/src/config/http.config.ts
@@ -0,0 +1,16 @@
+import type { HttpModuleAsyncOptions } from '@nestjs/axios';
+import { ConfigService } from '@nestjs/config';
+
+export function httpConfig(): HttpModuleAsyncOptions {
+ return {
+ inject: [ConfigService],
+ global: true,
+ useFactory: (configService: ConfigService) => {
+ return {
+ timeout: configService.getOrThrow('AXIOS_TIMEOUT'),
+ headers: { 'Content-Type': 'application/json' },
+ global: true,
+ };
+ },
+ };
+}
diff --git a/src/config/mikro-orm.config.dev.ts b/src/config/mikro-orm.config.dev.ts
new file mode 100644
index 0000000..fec939c
--- /dev/null
+++ b/src/config/mikro-orm.config.dev.ts
@@ -0,0 +1,101 @@
+import { defineConfig, PostgreSqlDriver } from '@mikro-orm/postgresql';
+import * as dotenv from 'dotenv';
+
+// 1. Load environment variables from your .env file
+dotenv.config();
+
+// 2. Read variables directly from process.env
+const DB_PASS = process.env.DB_PASS;
+const DB_USER = process.env.DB_USER;
+const DB_HOST = process.env.DB_HOST;
+const DB_PORT = process.env.DB_PORT ? +process.env.DB_PORT : 5432;
+const DB_NAME = process.env.DB_NAME;
+const isProduction = process.env.NODE_ENV === 'production';
+
+// 3. Add checks to ensure variables are loaded
+if (!DB_PASS || !DB_USER || !DB_HOST || !DB_PORT || !DB_NAME) {
+ throw new Error('One or more database environment variables are not set.');
+}
+
+const encodedPassword = encodeURIComponent(DB_PASS);
+
+// 4. Export the result of defineConfig as the default
+export default defineConfig({
+ entities: ['dist/**/*.entity.js'],
+ entitiesTs: ['src/**/*.entity.ts'],
+ driver: PostgreSqlDriver,
+ dbName: DB_NAME,
+ debug: false,
+ clientUrl: `postgres://${DB_USER}:${encodedPassword}@${DB_HOST}:${DB_PORT}`,
+ ensureDatabase: isProduction
+ ? false
+ : {
+ forceCheck: true,
+ create: true,
+ schema: 'update',
+ },
+ forceUtcTimezone: true,
+ pool: {
+ min: isProduction ? 5 : 2,
+ max: isProduction ? 20 : 10,
+ idleTimeoutMillis: 30000,
+ acquireTimeoutMillis: 30000,
+ reapIntervalMillis: 1000,
+ createTimeoutMillis: 15000,
+ destroyTimeoutMillis: 5000,
+ },
+ // 5. Use console for CLI logging, not the injected Nest logger
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ logger: isProduction ? console.log.bind(console) : console.debug.bind(console),
+ schemaGenerator: {
+ disableForeignKeys: false,
+ },
+ migrations: {
+ path: './database/migrations',
+ pathTs: './database/migrations',
+ tableName: 'migrations',
+ transactional: true,
+ allOrNothing: true,
+ dropTables: false,
+ safe: true,
+ emit: 'ts',
+ },
+ connect: true,
+ allowGlobalContext: true,
+ seeder: {
+ path: './dist/seeders',
+ pathTs: './src/seeders',
+ defaultSeeder: 'DatabaseSeeder',
+ },
+ driverOptions: {
+ connection: {
+ keepAlive: true,
+ keepAliveInitialDelayMillis: 10000,
+ statement_timeout: 60000,
+ query_timeout: 60000,
+ idle_in_transaction_session_timeout: 60000,
+ connectionTimeoutMillis: 10000,
+ application_name: DB_NAME,
+ },
+ connectionRetries: 5,
+ connectionRetryDelay: 3000,
+ validateConnection: (connection: any) => {
+ try {
+ return !!(connection && !connection.closed);
+ } catch (e: unknown) {
+ // Use console.error directly
+ console.error(`Connection validation failed: ${(e as Error).message}`);
+ return false;
+ }
+ },
+ poolErrorHandler: (err: Error) => {
+ // Use console.error directly
+ console.error(`PostgreSQL pool error: ${err.message}`);
+ if (err.message.includes('ECONNRESET') || err.message.includes('Connection terminated unexpectedly')) {
+ console.warn('Connection reset detected, will attempt to reconnect');
+ return true;
+ }
+ return false;
+ },
+ },
+});
diff --git a/src/config/mikro-orm.config.ts b/src/config/mikro-orm.config.ts
new file mode 100644
index 0000000..4d4cef9
--- /dev/null
+++ b/src/config/mikro-orm.config.ts
@@ -0,0 +1,109 @@
+import type { MikroOrmModuleAsyncOptions } from '@mikro-orm/nestjs';
+import { ConfigService } from '@nestjs/config';
+import { PostgreSqlDriver } from '@mikro-orm/postgresql';
+// import { defineConfig } from '@mikro-orm/postgresql';
+
+import type { Logger } from '@nestjs/common';
+import { MIKRO_ORM_QUERY_LOGGER } from '../common/constants';
+import { mikroOrmQueryLoggerProvider } from '../common/providers/mikro-orm-logger.provider';
+
+const dataBaseConfig: MikroOrmModuleAsyncOptions = {
+ // entities: ['dist/**/*.entity.js'],
+ // entitiesTs: ['src/**/*.entity.ts'],
+ // dbName: 'your_db_name',
+ // type: 'postgresql',
+ // user: 'your_user',
+ // password: 'your_password',
+ // host: 'localhost',
+ // port: 5432,
+ // debug: true,
+
+ inject: [ConfigService, MIKRO_ORM_QUERY_LOGGER],
+ providers: [mikroOrmQueryLoggerProvider],
+ useFactory: (configService: ConfigService, logger: Logger) => {
+ const DB_PASS = configService.getOrThrow('DB_PASS');
+ const DB_USER = configService.getOrThrow('DB_USER');
+ const DB_HOST = configService.getOrThrow('DB_HOST');
+ const DB_PORT = configService.getOrThrow('DB_PORT');
+ const DB_NAME = configService.getOrThrow('DB_NAME');
+ const encodedPassword = encodeURIComponent(DB_PASS);
+ const isProduction = configService.getOrThrow('NODE_ENV') === 'production';
+
+ return {
+ // entities: ['dist/**/*.entity.js'],
+ entitiesTs: ['src/**/*.entity.ts'],
+ driver: PostgreSqlDriver,
+ autoLoadEntities: true,
+ dbName: DB_NAME,
+ debug: false,
+ clientUrl: `postgres://${DB_USER}:${encodedPassword}@${DB_HOST}:${DB_PORT}`,
+ ensureDatabase: isProduction
+ ? false
+ : {
+ forceCheck: true,
+ create: true,
+ schema: 'update',
+ },
+ forceUtcTimezone: true,
+ pool: {
+ min: isProduction ? 5 : 2,
+ max: isProduction ? 20 : 10,
+ idleTimeoutMillis: 30000,
+ acquireTimeoutMillis: 30000,
+ reapIntervalMillis: 1000,
+ createTimeoutMillis: 15000,
+ destroyTimeoutMillis: 5000,
+ },
+ logger: isProduction ? message => logger.log(message) : message => logger.debug(message),
+ schemaGenerator: {
+ // createForeignKey: !isProduction,
+ disableForeignKeys: false,
+ // createIndex: true,
+ },
+ migrations: {
+ path: './database/migrations',
+ pathTs: './database/migrations',
+ tableName: 'migrations',
+ transactional: true,
+ allOrNothing: true,
+ dropTables: false,
+ safe: true,
+ emit: 'ts',
+ },
+ connect: true,
+ allowGlobalContext: true,
+ driverOptions: {
+ connection: {
+ keepAlive: true,
+ keepAliveInitialDelayMillis: 10000,
+ statement_timeout: 60000,
+ query_timeout: 60000,
+ idle_in_transaction_session_timeout: 60000,
+ connectionTimeoutMillis: 10000,
+ application_name: configService.getOrThrow('DB_NAME'),
+ },
+ connectionRetries: 5,
+ connectionRetryDelay: 3000,
+ validateConnection: (connection: any) => {
+ try {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
+ return !!(connection && !connection.closed);
+ } catch (e: unknown) {
+ logger.error(`Connection validation failed: ${(e as Error).message}`);
+ return false;
+ }
+ },
+ poolErrorHandler: (err: Error) => {
+ logger.error(`PostgreSQL pool error: ${err.message}`);
+ if (err.message.includes('ECONNRESET') || err.message.includes('Connection terminated unexpectedly')) {
+ logger.warn('Connection reset detected, will attempt to reconnect');
+ return true;
+ }
+ return false;
+ },
+ },
+ };
+ },
+};
+
+export default dataBaseConfig;
diff --git a/src/config/swagger.config.ts b/src/config/swagger.config.ts
new file mode 100644
index 0000000..fe3b7a8
--- /dev/null
+++ b/src/config/swagger.config.ts
@@ -0,0 +1,27 @@
+import type { INestApplication } from '@nestjs/common';
+import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
+
+export function getSwaggerConfig(app: INestApplication) {
+ const config = new DocumentBuilder()
+ .setTitle('D-menu API')
+ .setDescription('API documentation for D-menu backend')
+ .setVersion('1.0')
+ .addBearerAuth() // optional: for JWT endpoints
+ .build();
+
+ const document = SwaggerModule.createDocument(app, config);
+
+ SwaggerModule.setup('docs', app, document, {
+ swaggerOptions: {
+ persistAuthorization: true,
+ displayRequestDuration: true,
+ filter: true,
+ showExtensions: true,
+ docExpansion: 'none',
+
+ // HIDE MODELS / SCHEMAS
+ defaultModelsExpandDepth: -1,
+ defaultModelExpandDepth: -1,
+ },
+ });
+}
diff --git a/src/core/exceptions/http.exceptions.ts b/src/core/exceptions/http.exceptions.ts
new file mode 100755
index 0000000..010de9d
--- /dev/null
+++ b/src/core/exceptions/http.exceptions.ts
@@ -0,0 +1,48 @@
+import { ArgumentsHost, Catch, ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';
+import { FastifyReply } from 'fastify';
+
+@Catch(HttpException)
+export class HttpExceptionFilter implements ExceptionFilter {
+ catch(exception: HttpException, host: ArgumentsHost) {
+ // Handle HTTP/REST context
+ try {
+ const ctx = host.switchToHttp();
+ const reply = ctx.getResponse();
+
+ // Safety check: ensure reply has the status method
+ if (!reply || typeof reply.status !== 'function') {
+ return;
+ }
+
+ // const request = ctx.getRequest();
+ const status = exception.getStatus() || HttpStatus.INTERNAL_SERVER_ERROR;
+
+ const exceptionResponse = exception.getResponse();
+ const message = this.extractMessage(exceptionResponse);
+
+ reply.status(status).send({
+ statusCode: status,
+ success: false,
+ error: {
+ message,
+ // timestamp: new Date().toISOString(),
+ // path: request.url,
+ },
+ });
+ } catch {
+ // If we can't handle it, let it propagate
+ return;
+ }
+ }
+
+ private extractMessage(response: string | Record): string | string[] {
+ if (typeof response === 'string') {
+ return [response];
+ }
+ if (typeof response === 'object' && 'message' in response) {
+ return Array.isArray(response.message) ? response.message : [response.message];
+ }
+
+ return 'something wrong';
+ }
+}
diff --git a/src/core/interceptors/pagination.interceptor.ts b/src/core/interceptors/pagination.interceptor.ts
new file mode 100755
index 0000000..84b169f
--- /dev/null
+++ b/src/core/interceptors/pagination.interceptor.ts
@@ -0,0 +1,61 @@
+// import { CallHandler, ExecutionContext, Injectable, Logger, NestInterceptor } from '@nestjs/common';
+// import { FastifyRequest } from 'fastify';
+// import { Observable, map } from 'rxjs';
+
+// import { IPageFormat } from '../../../../danak_dsc_api/src/common/interfaces/IPagination';
+
+// @Injectable()
+// export class PaginationInterceptor implements NestInterceptor {
+// private readonly logger = new Logger(PaginationInterceptor.name);
+
+// intercept(context: ExecutionContext, next: CallHandler): Observable {
+// const request = context.switchToHttp().getRequest();
+// const query = request.query as { page: string; limit: string };
+
+// const page = parseInt(query.page, 10) || 1;
+// const limit = parseInt(query.limit, 10) || 10;
+
+// const className = context.getClass().name;
+// const handlerName = context.getHandler().name;
+
+// return next.handle().pipe(
+// map(data => {
+// if (data && (data.paginate || data.count)) {
+// const { count, paginate, ...response } = data;
+// this.logger.log(`paginate response from ${className}.${handlerName}`);
+// const pager = this.formatPage(page, limit, count, request);
+
+// return {
+// pager,
+// ...response,
+// };
+// }
+
+// return data;
+// }),
+// );
+// }
+
+// private formatPage(page: number, limit: number, totalItems: number, request: FastifyRequest): IPageFormat {
+// const totalPages = Math.ceil(totalItems / limit);
+// const prevPage = page === 1 ? false : page - 1;
+// const nextPage = page >= totalPages ? false : page + 1;
+
+// const formatLink = (pageNum: number | boolean): string | boolean => {
+// if (!pageNum) return false;
+// const protocol = request.protocol;
+// const hostname = request.hostname;
+// const originalUrl = request.url;
+// return `${protocol}://${hostname}${originalUrl.split('?')[0]}?page=${pageNum}&limit=${limit}`;
+// };
+
+// return {
+// page,
+// limit,
+// totalItems,
+// totalPages,
+// prevPage: formatLink(prevPage),
+// nextPage: formatLink(nextPage),
+// };
+// }
+// }
diff --git a/src/core/interceptors/response.interceptor.ts b/src/core/interceptors/response.interceptor.ts
new file mode 100755
index 0000000..fd88467
--- /dev/null
+++ b/src/core/interceptors/response.interceptor.ts
@@ -0,0 +1,68 @@
+import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
+import { FastifyReply } from 'fastify';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
+
+@Injectable()
+export class ResponseInterceptor implements NestInterceptor {
+ constructor() { }
+
+ intercept(context: ExecutionContext, next: CallHandler>): Observable {
+ // For REST endpoints, wrap the response
+ try {
+ const ctx = context.switchToHttp().getResponse();
+ const statusCode = ctx.statusCode;
+
+ // If statusCode is undefined, skip wrapping
+ if (statusCode === undefined) {
+ return next.handle();
+ }
+
+ return next.handle().pipe(
+ map(data => {
+ // If data is already wrapped or doesn't need wrapping, return as-is
+ if (data && typeof data === 'object' && 'data' in data && 'success' in data) {
+ console.log('data', data)
+
+ return {
+ data: data,
+ ...('nextCursor' in (data as any) && (data as any).nextCursor != null
+ ? { nextCursor: (data as any).nextCursor }
+ : {}),
+ }
+ }
+
+ // Check if this is a paginated result (has both data and meta properties)
+ if (data && typeof data === 'object' && 'data' in data && 'meta' in data) {
+ return {
+ statusCode,
+ success: true,
+ data: data.data,
+ meta: data.meta,
+ };
+ }
+
+ if (data && 'data' in data) {
+
+ return {
+ statusCode,
+ success: true,
+ data: data.data,
+ ...('nextCursor' in data
+ ? { nextCursor: (data as any).nextCursor }
+ : {}),
+ };
+ }
+ return {
+ statusCode,
+ success: true,
+ data,
+ };
+ }),
+ );
+ } catch {
+ // If we can't get HTTP context, return data as-is
+ return next.handle();
+ }
+ }
+}
diff --git a/src/core/middlewares/logger.middleware.ts b/src/core/middlewares/logger.middleware.ts
new file mode 100755
index 0000000..1c84e35
--- /dev/null
+++ b/src/core/middlewares/logger.middleware.ts
@@ -0,0 +1,26 @@
+import { Injectable, Logger, NestMiddleware } from '@nestjs/common';
+import { FastifyReply, FastifyRequest } from 'fastify';
+
+@Injectable()
+export class HTTPLogger implements NestMiddleware {
+ private readonly logger = new Logger(HTTPLogger.name);
+ // use(req: any, res: any, next: (error?: Error | any) => void) {}
+
+ use(req: FastifyRequest, rep: FastifyReply['raw'], next: () => void) {
+ const { ip, method, originalUrl } = req;
+ const userAgent = req.headers['user-agent'] || '';
+ const startAt = process.hrtime();
+
+ rep.on('finish', () => {
+ const { statusCode } = rep;
+ const contentLength = rep.getHeader('content-length') || 0;
+ const dif = process.hrtime(startAt);
+ const responseTime = dif[0] * 1e3 + dif[1] * 1e-6;
+ this.logger.log(
+ `${method} - ${originalUrl} - ${statusCode} - ${contentLength} - ${userAgent} - ${ip} - ${responseTime.toFixed(2)}ms`,
+ );
+ });
+
+ next();
+ }
+}
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..77c1815
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,61 @@
+import { NestFactory } from '@nestjs/core';
+import { AppModule } from './app.module';
+import { ConfigService } from '@nestjs/config';
+import { Logger, ValidationPipe } from '@nestjs/common';
+import { getSwaggerConfig } from './config/swagger.config';
+import multipart from '@fastify/multipart';
+import fastifyCookie from '@fastify/cookie';
+
+// 👈 Import the Fastify application type
+import { type NestFastifyApplication, FastifyAdapter } from '@nestjs/platform-fastify';
+import { HttpExceptionFilter } from './core/exceptions/http.exceptions';
+import { ResponseInterceptor } from './core/interceptors/response.interceptor';
+// import { PaginationInterceptor } from './core/interceptors/pagination.interceptor';
+
+async function bootstrap() {
+ const logger = new Logger('APP');
+
+ // 1. Create the application using the Fastify adapter
+ const app = await NestFactory.create(
+ AppModule,
+ new FastifyAdapter(), // Instantiate the FastifyAdapter
+ // Optional: Pass the custom logger (like your 'APP' logger) to NestFactory
+ { logger: ['error', 'warn', 'log', 'debug', 'verbose'] },
+ );
+
+ await app.register(fastifyCookie);
+
+ await app.register(multipart);
+ app.useGlobalPipes(new ValidationPipe());
+
+ app.useGlobalInterceptors(
+ new ResponseInterceptor(),
+ // , new PaginationInterceptor()
+ );
+ app.useGlobalFilters(new HttpExceptionFilter());
+
+ const configService = app.get(ConfigService);
+ // Ensure the port is handled correctly, use 4000 as fallback if needed
+ const APP_PORT = configService.getOrThrow('APP_PORT') ?? 4000;
+
+ // 2. Swagger Integration Note
+ // Since you are using platform-fastify, you must ensure your getSwaggerConfig
+ // function is configured to use the Fastify platform option if necessary.
+ getSwaggerConfig(app);
+
+ app.enableCors({
+ origin: true,
+ methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
+ credentials: true,
+ optionsSuccessStatus: 204,
+ });
+
+ // 3. Listen on port using Fastify's listen method
+ // '0.0.0.0' is recommended for Docker/containerized environments
+ await app.listen(APP_PORT, '0.0.0.0', () => {
+ logger.log(`Application is running on: http://localhost:${APP_PORT}`);
+ logger.log(`Swagger documentation: http://localhost:${APP_PORT}/docs`);
+ });
+}
+
+bootstrap();
diff --git a/src/modules/admin/admin.module.ts b/src/modules/admin/admin.module.ts
new file mode 100644
index 0000000..c474d15
--- /dev/null
+++ b/src/modules/admin/admin.module.ts
@@ -0,0 +1,26 @@
+import { Module, forwardRef } from '@nestjs/common';
+import { AdminService } from './providers/admin.service';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { Admin } from './entities/admin.entity';
+import { JwtModule } from '@nestjs/jwt';
+import { AdminRepository } from './repositories/admin.repository';
+import { Role } from '../roles/entities/role.entity';
+import { Permission } from '../roles/entities/permission.entity';
+import { RolePermission } from '../roles/entities/rolePermission.entity';
+import { AdminController } from './controllers/admin.controller';
+import { UtilsModule } from '../utils/utils.module';
+import { RestaurantsModule } from '../restaurants/restaurants.module';
+import { AdminRole } from './entities/adminRole.entity';
+
+@Module({
+ providers: [AdminService, AdminRepository],
+ controllers: [AdminController],
+ imports: [
+ MikroOrmModule.forFeature([Admin, Role, Permission, RolePermission, AdminRole]),
+ JwtModule,
+ UtilsModule,
+ forwardRef(() => RestaurantsModule),
+ ],
+ exports: [AdminService, AdminRepository],
+})
+export class AdminModule {}
diff --git a/src/modules/admin/controllers/admin.controller.ts b/src/modules/admin/controllers/admin.controller.ts
new file mode 100644
index 0000000..3bea57b
--- /dev/null
+++ b/src/modules/admin/controllers/admin.controller.ts
@@ -0,0 +1,110 @@
+import { Controller, Post, Body, HttpCode, HttpStatus, Get, UseGuards, Patch, Param, Delete } from '@nestjs/common';
+import { AdminService } from '../providers/admin.service';
+import { CreateAdminDto } from '../dto/create-admin.dto';
+import { UpdateAdminDto } from '../dto/update-admin.dto';
+import { ApiTags, ApiOperation, ApiBody, ApiBearerAuth, ApiParam } from '@nestjs/swagger';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { SuperAdminAuthGuard } from 'src/modules/auth/guards/superAdminAuth.guard';
+import { RestId } from 'src/common/decorators';
+import { AdminId } from 'src/common/decorators/admin-id.decorator';
+import { Admin } from '../entities/admin.entity';
+import { Permission } from 'src/common/enums/permission.enum';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { CreateMyRestaurantAdminDto } from '../dto/create-my-restaurant-admin.dto';
+
+@ApiBearerAuth()
+@ApiTags('admin')
+@Controller()
+export class AdminController {
+ constructor(private readonly adminService: AdminService) {}
+
+ @Get('admin/admins')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @ApiOperation({ summary: 'admin' })
+ async getAll(@RestId() restId: string) {
+ const admin = await this.adminService.findAllByRestaurantId(restId);
+ return admin;
+ }
+
+ @Get('admin/admins/profile')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @ApiOperation({ summary: 'admin' })
+ async getMe(@AdminId() adminId: string, @RestId() restId: string) {
+ const admin = await this.adminService.findById(adminId, restId);
+ return admin;
+ }
+
+ @Post('admin/admins')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @HttpCode(HttpStatus.CREATED)
+ @ApiOperation({ summary: 'Create a new admin' })
+ @ApiBody({ type: CreateAdminDto })
+ async create(@Body() dto: CreateAdminDto, @RestId() restId: string) {
+ const admin = await this.adminService.createAdminForMyRestaurant(restId, dto);
+ return admin;
+ }
+
+ @Patch('admin/admins/:adminId')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @ApiOperation({ summary: 'Update an admin' })
+ @ApiParam({ name: 'adminId', description: 'Admin ID' })
+ @ApiBody({ type: UpdateAdminDto })
+ update(@Param('adminId') adminId: string, @Body() dto: UpdateAdminDto, @RestId() restId: string): Promise {
+ return this.adminService.update(adminId, restId, dto);
+ }
+
+ @Get('admin/admins/:adminId')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @ApiOperation({ summary: 'Get an admin by ID' })
+ @ApiParam({ name: 'id', description: 'Admin ID' })
+ getById(@Param('adminId') adminId: string, @RestId() restId: string): Promise {
+ return this.adminService.findById(adminId, restId);
+ }
+
+ @Delete('admin/admins/:adminId')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ADMINS)
+ @ApiOperation({ summary: 'Delete an admin by ID' })
+ @ApiParam({ name: 'id', description: 'Admin ID' })
+ deleteById(@Param('adminId') adminId: string, @RestId() restId: string): Promise {
+ return this.adminService.remove(adminId, restId);
+ }
+
+ /** Super Admin Endpoints */
+ @UseGuards(SuperAdminAuthGuard)
+ @Get('super-admin/restaurants/:restaurantId/admins')
+ @ApiOperation({ summary: 'Get admins for a specific restaurant (Super Admin only)' })
+ @ApiParam({ name: 'restaurantId', description: 'Restaurant ID' })
+ getAdminForRestaurant(@Param('restaurantId') restaurantId: string): Promise {
+ return this.adminService.getAdminsForRestaurantBySuperAdmin(restaurantId);
+ }
+
+ @UseGuards(SuperAdminAuthGuard)
+ @Post('super-admin/restaurants/:restaurantId/admins')
+ @ApiOperation({ summary: 'Create admin for a specific restaurant (Super Admin only)' })
+ @ApiParam({ name: 'restaurantId', description: 'Restaurant ID' })
+ @ApiBody({ type: CreateMyRestaurantAdminDto })
+ createAdminForRestaurant(
+ @Param('restaurantId') restaurantId: string,
+ @Body() dto: CreateMyRestaurantAdminDto,
+ ): Promise {
+ return this.adminService.createAdminForRestaurantBySuperAdmin(restaurantId, dto);
+ }
+
+ @UseGuards(SuperAdminAuthGuard)
+ @Delete('super-admin/restaurants/:restaurantId/admins/:adminId')
+ @ApiOperation({ summary: 'Revoke admin role from a restaurant (Super Admin only)' })
+ @ApiParam({ name: 'restaurantId', description: 'Restaurant ID' })
+ @ApiParam({ name: 'adminId', description: 'Admin ID' })
+ revokeAdminFromRestaurant(
+ @Param('restaurantId') restaurantId: string,
+ @Param('adminId') adminId: string,
+ ): Promise {
+ return this.adminService.remove(adminId, restaurantId);
+ }
+}
diff --git a/src/modules/admin/dto/create-admin.dto.ts b/src/modules/admin/dto/create-admin.dto.ts
new file mode 100644
index 0000000..8acff49
--- /dev/null
+++ b/src/modules/admin/dto/create-admin.dto.ts
@@ -0,0 +1,24 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
+
+export class CreateAdminDto {
+ @ApiProperty({ description: 'Mobile phone number' })
+ @IsNotEmpty()
+ @IsString()
+ phone!: string;
+
+ @ApiProperty({ description: 'First name', required: false })
+ @IsOptional()
+ @IsString()
+ firstName?: string;
+
+ @ApiProperty({ description: 'Last name', required: false })
+ @IsOptional()
+ @IsString()
+ lastName?: string;
+
+ @ApiProperty({ description: 'Role id for the admin' })
+ @IsNotEmpty()
+ @IsString()
+ roleId!: string;
+}
diff --git a/src/modules/admin/dto/create-my-restaurant-admin.dto.ts b/src/modules/admin/dto/create-my-restaurant-admin.dto.ts
new file mode 100644
index 0000000..9387a01
--- /dev/null
+++ b/src/modules/admin/dto/create-my-restaurant-admin.dto.ts
@@ -0,0 +1,24 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
+
+export class CreateMyRestaurantAdminDto {
+ @ApiProperty({ description: 'Mobile phone number' })
+ @IsNotEmpty()
+ @IsString()
+ phone!: string;
+
+ @ApiProperty({ description: 'First name', required: false })
+ @IsOptional()
+ @IsString()
+ firstName?: string;
+
+ @ApiProperty({ description: 'Last name', required: false })
+ @IsOptional()
+ @IsString()
+ lastName?: string;
+
+ @ApiProperty({ description: 'Role id for the admin' })
+ @IsNotEmpty()
+ @IsString()
+ roleId!: string;
+}
diff --git a/src/modules/admin/dto/update-admin.dto.ts b/src/modules/admin/dto/update-admin.dto.ts
new file mode 100644
index 0000000..5fec45b
--- /dev/null
+++ b/src/modules/admin/dto/update-admin.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/swagger';
+import { CreateAdminDto } from './create-admin.dto';
+
+export class UpdateAdminDto extends PartialType(CreateAdminDto) {}
diff --git a/src/modules/admin/entities/admin.entity.ts b/src/modules/admin/entities/admin.entity.ts
new file mode 100644
index 0000000..a9d8a54
--- /dev/null
+++ b/src/modules/admin/entities/admin.entity.ts
@@ -0,0 +1,31 @@
+import { Cascade, Collection, Entity, OneToMany, Property } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { AdminRole } from './adminRole.entity';
+import { normalizePhone } from '../../utils/phone.util';
+
+@Entity({ tableName: 'admins' })
+export class Admin extends BaseEntity {
+ @Property({ nullable: true })
+ firstName?: string;
+
+ @Property({ nullable: true })
+ lastName?: string;
+
+ private _phone!: string;
+
+ @Property({ unique: true })
+ get phone(): string {
+ return this._phone;
+ }
+
+ set phone(value: string) {
+ this._phone = normalizePhone(value);
+ }
+
+ // Add the new role property
+ @OneToMany(() => AdminRole, adminRole => adminRole.admin, {
+ cascade: [Cascade.ALL],
+ orphanRemoval: true,
+ })
+ roles = new Collection(this);
+}
diff --git a/src/modules/admin/entities/adminRole.entity.ts b/src/modules/admin/entities/adminRole.entity.ts
new file mode 100644
index 0000000..1e001c3
--- /dev/null
+++ b/src/modules/admin/entities/adminRole.entity.ts
@@ -0,0 +1,21 @@
+import { Entity, Index, ManyToOne, Unique } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Role } from '../../roles/entities/role.entity';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+import { Admin } from './admin.entity';
+
+@Entity({ tableName: 'admin_roles' })
+@Unique({ properties: ['admin', 'restaurant'] })
+@Index({ properties: ['admin', 'restaurant'] })
+@Index({ properties: ['admin'] })
+@Index({ properties: ['restaurant'] })
+export class AdminRole extends BaseEntity {
+ @ManyToOne(() => Admin)
+ admin!: Admin;
+
+ @ManyToOne(() => Role)
+ role!: Role;
+
+ @ManyToOne(() => Restaurant, { nullable: true })
+ restaurant?: Restaurant;
+}
diff --git a/src/modules/admin/providers/admin.service.ts b/src/modules/admin/providers/admin.service.ts
new file mode 100644
index 0000000..dcda64d
--- /dev/null
+++ b/src/modules/admin/providers/admin.service.ts
@@ -0,0 +1,197 @@
+import { ConflictException, Injectable, NotFoundException } from '@nestjs/common';
+import { InjectRepository } from '@mikro-orm/nestjs';
+import { EntityRepository } from '@mikro-orm/core';
+import { Admin } from '../entities/admin.entity';
+import { Role } from '../../roles/entities/role.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { CacheService } from '../../utils/cache.service';
+import { CreateMyRestaurantAdminDto } from '../dto/create-my-restaurant-admin.dto';
+import { UpdateAdminDto } from '../dto/update-admin.dto';
+import { AdminRole } from '../entities/adminRole.entity';
+import { normalizePhone } from '../../utils/phone.util';
+
+@Injectable()
+export class AdminService {
+ constructor(
+ @InjectRepository(Admin)
+ private readonly adminRepository: EntityRepository,
+ @InjectRepository(AdminRole)
+ private readonly adminRoleRepository: EntityRepository,
+ private readonly em: EntityManager,
+ private readonly cacheService: CacheService,
+ ) {}
+
+ async findByPhone(phone: string): Promise {
+ const normalizedPhone = normalizePhone(phone);
+ return this.adminRepository.findOne({ phone: normalizedPhone });
+ }
+
+ async findById(adminId: string, restId: string): Promise {
+ const admin = await this.adminRepository.findOne(
+ { id: adminId, roles: { restaurant: { id: restId } } },
+ { populate: ['roles', 'roles.role'] },
+ );
+ return admin;
+ }
+
+ async findAllByRestaurantId(restId: string): Promise {
+ return this.adminRepository.find({ roles: { restaurant: { id: restId } } }, { populate: ['roles', 'roles.role'] });
+ }
+
+ async createAdminForMyRestaurant(restId: string, dto: CreateMyRestaurantAdminDto) {
+ const { phone, firstName, lastName, roleId } = dto;
+ const normalizedPhone = normalizePhone(phone);
+ let admin: Admin | null = null;
+ admin = await this.adminRepository.findOne({
+ phone: normalizedPhone,
+ });
+ if (!admin) {
+ admin = this.adminRepository.create({
+ phone: normalizedPhone,
+ firstName,
+ lastName,
+ });
+ await this.em.persistAndFlush(admin);
+ }
+ const role = await this.em.findOne(Role, { id: roleId, isSystem: false });
+ if (!role) throw new NotFoundException('Role not found');
+
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) throw new NotFoundException('Restaurant not found');
+
+ let adminRole = await this.adminRoleRepository.findOne({
+ admin: admin,
+ restaurant: restaurant,
+ });
+
+ if (!adminRole) {
+ adminRole = this.adminRoleRepository.create({
+ admin: admin,
+ role,
+ restaurant,
+ });
+ } else {
+ adminRole.role = role;
+ }
+
+ await this.em.persistAndFlush(adminRole);
+ return admin;
+ }
+
+ async createAdminForRestaurantBySuperAdmin(restId: string, dto: CreateMyRestaurantAdminDto) {
+ const { phone, firstName, lastName, roleId } = dto;
+ const normalizedPhone = normalizePhone(phone);
+ let admin: Admin | null = null;
+ admin = await this.adminRepository.findOne({
+ phone: normalizedPhone,
+ });
+ if (!admin) {
+ admin = this.adminRepository.create({
+ phone: normalizedPhone,
+ firstName,
+ lastName,
+ });
+ await this.em.persistAndFlush(admin);
+ }
+ const role = await this.em.findOne(Role, { id: roleId });
+ if (!role) throw new NotFoundException('Role* not found' + roleId);
+
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) throw new NotFoundException('Restaurant not found');
+
+ let adminRole = await this.adminRoleRepository.findOne({
+ admin: admin,
+ restaurant: restaurant,
+ });
+
+ if (!adminRole) {
+ adminRole = this.adminRoleRepository.create({
+ admin: admin,
+ role,
+ restaurant,
+ });
+ } else {
+ adminRole.role = role;
+ }
+
+ await this.em.persistAndFlush(adminRole);
+ return admin;
+ }
+
+ async getAdminsForRestaurantBySuperAdmin(restId: string): Promise {
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) throw new NotFoundException('Restaurant not found');
+
+ return this.adminRepository.find({ roles: { restaurant: restaurant } }, { populate: ['roles', 'roles.role'] });
+ }
+
+ async update(adminId: string, restId: string, dto: UpdateAdminDto): Promise {
+ const admin = await this.adminRepository.findOne(
+ { id: adminId, roles: { restaurant: { id: restId } } },
+ { populate: ['roles', 'roles.role', 'roles.restaurant'] },
+ );
+
+ if (!admin) {
+ throw new NotFoundException('Admin not found');
+ }
+
+ const { roleId, ...rest } = dto;
+
+ // Update scalar fields (firstName, lastName, phone)
+ if (rest.firstName !== undefined) {
+ admin.firstName = rest.firstName;
+ }
+ if (rest.lastName !== undefined) {
+ admin.lastName = rest.lastName;
+ }
+ if (rest.phone !== undefined && rest.phone !== admin.phone) {
+ const normalizedPhone = normalizePhone(rest.phone);
+ const exists = await this.adminRepository.findOne({ phone: normalizedPhone });
+ if (exists) {
+ throw new ConflictException('This Phone Number is already taken');
+ }
+ admin.phone = normalizedPhone;
+ }
+
+ // Update role if roleId is provided
+ if (roleId) {
+ const role = await this.em.findOne(Role, { id: roleId, isSystem: false });
+ if (!role) {
+ throw new NotFoundException('Role not found');
+ }
+
+ // Find existing AdminRole for this admin and restaurant
+ const existingAdminRole = await this.em.findOne(AdminRole, {
+ admin: { id: adminId },
+ restaurant: { id: restId },
+ });
+
+ if (existingAdminRole) {
+ // Update existing role
+ existingAdminRole.role = role;
+ } else {
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) throw new NotFoundException('Restaurant not found');
+ // Create new AdminRole
+ const newAdminRole = this.em.create(AdminRole, {
+ admin,
+ role,
+ restaurant,
+ });
+ admin.roles.add(newAdminRole);
+ }
+ }
+
+ await this.em.persistAndFlush(admin);
+ return admin;
+ }
+
+ async remove(adminId: string, restId: string): Promise {
+ const adminRole = await this.adminRoleRepository.findOne({ admin: { id: adminId }, restaurant: { id: restId } });
+ if (!adminRole) {
+ throw new NotFoundException('Admin role not found');
+ }
+ return this.em.removeAndFlush(adminRole);
+ }
+}
diff --git a/src/modules/admin/repositories/admin.repository.ts b/src/modules/admin/repositories/admin.repository.ts
new file mode 100644
index 0000000..04868a5
--- /dev/null
+++ b/src/modules/admin/repositories/admin.repository.ts
@@ -0,0 +1,58 @@
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { Admin } from '../entities/admin.entity';
+import { AdminRole } from '../entities/adminRole.entity';
+import { RestRepository } from '../../restaurants/repositories/rest.repository';
+import { Injectable } from '@nestjs/common';
+import { normalizePhone } from '../../utils/phone.util';
+
+@Injectable()
+export class AdminRepository extends EntityRepository {
+ constructor(
+ readonly em: EntityManager,
+ private readonly restRepository: RestRepository,
+ ) {
+ super(em, Admin);
+ }
+
+ async findByPhoneAndRestaurantSlug(phone: string, slug: string): Promise {
+ console.log('phone', phone);
+ const normalizedPhone = normalizePhone(phone);
+ // First, find the restaurant by slug using the same repository as auth service
+ const restaurant = await this.restRepository.findOne({ slug });
+ if (!restaurant) {
+ return null;
+ }
+
+ // Find AdminRole that matches the admin phone and restaurant
+ const adminRole = await this.em.findOne(
+ AdminRole,
+ {
+ admin: { phone: normalizedPhone },
+ restaurant: { id: restaurant.id },
+ },
+ { populate: ['admin', 'admin.roles', 'role', 'role.permissions', 'restaurant'] },
+ );
+
+ if (!adminRole || !adminRole.admin) {
+ return null;
+ }
+
+ // Ensure all roles are populated
+ await adminRole.admin.roles.loadItems();
+ for (const role of adminRole.admin.roles.getItems()) {
+ if (role.role && role.role.permissions && !role.role.permissions.isInitialized()) {
+ await role.role.permissions.loadItems();
+ }
+ }
+
+ return adminRole.admin;
+ }
+ async findAdminsWithPermission(restaurantId: string, permission: string): Promise {
+ const admins = await this.em.find(
+ Admin,
+ { roles: { restaurant: { id: restaurantId }, role: { permissions: { name: permission } } } },
+ { populate: ['roles', 'roles.role', 'roles.role.permissions'] },
+ );
+ return admins;
+ }
+}
diff --git a/src/modules/admin/transformers/admin-detail.transformer.ts b/src/modules/admin/transformers/admin-detail.transformer.ts
new file mode 100644
index 0000000..84704a0
--- /dev/null
+++ b/src/modules/admin/transformers/admin-detail.transformer.ts
@@ -0,0 +1,50 @@
+import type { Admin } from '../entities/admin.entity';
+
+export interface AdminDetailResponse {
+ id: string;
+ firstName?: string;
+ lastName?: string;
+ phone: string;
+ role: {
+ id: string;
+ name: string;
+ };
+ permissions: string[];
+ restaurant?: {
+ id: string;
+ name: string;
+ slug: string;
+ };
+}
+
+export class AdminDetailTransformer {
+ static transform(admin: Admin): AdminDetailResponse | null {
+ if (!admin) {
+ return null;
+ }
+
+ // Extract role information
+ const role = admin.roles.getItems().find(r => r.role)?.role;
+ if (!role) {
+ return null;
+ }
+ return {
+ id: admin.id,
+ firstName: admin.firstName,
+ lastName: admin.lastName,
+ phone: admin.phone,
+ role: {
+ id: role.id,
+ name: role.name,
+ },
+ permissions: role.permissions.getItems().map(p => p.name) || [],
+ restaurant: {
+ id: role.restaurant?.id || '',
+ name: role.restaurant?.name || '',
+ slug: role.restaurant?.slug || '',
+ },
+ };
+ }
+}
+
+// Extract permissions - ensure collection is loaded if needed
diff --git a/src/modules/auth/auth.module.ts b/src/modules/auth/auth.module.ts
new file mode 100644
index 0000000..ebb6d27
--- /dev/null
+++ b/src/modules/auth/auth.module.ts
@@ -0,0 +1,45 @@
+import { Module, forwardRef } from '@nestjs/common';
+import { AuthService } from './services/auth.service';
+import { AuthController } from './controllers/auth.controller';
+import { UtilsModule } from '../utils/utils.module';
+import { UserModule } from '../users/user.module';
+import { JwtModule } from '@nestjs/jwt';
+import { ConfigService } from '@nestjs/config';
+import { AdminModule } from '../admin/admin.module';
+import { TokensService } from './services/tokens.service';
+import { RestaurantsModule } from '../restaurants/restaurants.module';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { User } from '../users/entities/user.entity';
+import { AdminAuthGuard } from './guards/adminAuth.guard';
+import { RefreshToken } from './entities/refresh-token.entity';
+import { NotificationsModule } from '../notifications/notifications.module';
+
+@Module({
+ imports: [
+ UtilsModule,
+ forwardRef(() => UserModule),
+ JwtModule.registerAsync({
+ useFactory: (configService: ConfigService) => {
+ const expiresIn = configService.getOrThrow('JWT_EXPIRATION_TIME');
+ return {
+ global: true,
+ secret: configService.getOrThrow('JWT_SECRET'),
+ signOptions: {
+ // Use string format with time unit for explicit expiration (value should be in seconds)
+ expiresIn: `${expiresIn}s`,
+ },
+ };
+ },
+ inject: [ConfigService],
+ }),
+ forwardRef(() => AdminModule),
+ forwardRef(() => RestaurantsModule),
+ MikroOrmModule.forFeature([User, RefreshToken]),
+ forwardRef(() => NotificationsModule),
+
+ ],
+ controllers: [AuthController],
+ providers: [AuthService, TokensService, AdminAuthGuard],
+ exports: [AdminAuthGuard],
+})
+export class AuthModule {}
diff --git a/src/modules/auth/controllers/auth.controller.ts b/src/modules/auth/controllers/auth.controller.ts
new file mode 100644
index 0000000..6a4b7b9
--- /dev/null
+++ b/src/modules/auth/controllers/auth.controller.ts
@@ -0,0 +1,71 @@
+import { Controller, Post, Body, UseGuards } from '@nestjs/common';
+import { AuthService } from '../services/auth.service';
+import { RequestOtpDto } from '../dto/request-otp.dto';
+import { DirectLoginDto } from '../dto/direct-login.dto';
+import { ApiTags, ApiOperation, ApiBody } from '@nestjs/swagger';
+import { VerifyOtpDto } from '../dto/verify-otp.dto';
+import { Throttle } from '@nestjs/throttler';
+import { RefreshTokenRateLimit } from 'src/common/decorators/rate-limit.decorator';
+import { RefreshTokenDto } from '../dto/refresh-token.dto';
+import { SuperAdminAuthGuard } from '../guards/superAdminAuth.guard';
+
+@ApiTags('auth')
+@Controller()
+export class AuthController {
+ constructor(private readonly authService: AuthService) { }
+
+ @Throttle({ default: { limit: 3, ttl: 180_000 } })
+ @Post('public/auth/otp/request')
+ @ApiOperation({ summary: 'Request OTP for login or signup' })
+ @ApiBody({ type: RequestOtpDto, description: 'Mobile number to receive OTP' })
+ otpRequest(@Body() dto: RequestOtpDto) {
+ return this.authService.requestOtp(dto, false);
+ }
+
+ @Post('public/auth/otp/verify')
+ @ApiOperation({ summary: 'Verify OTP code' })
+ @ApiBody({ type: VerifyOtpDto, description: 'Mobile number and OTP code' })
+ otpVerify(@Body() dto: VerifyOtpDto) {
+ return this.authService.verifyOtp(dto.phone, dto.slug, dto.otp); // assuming dto has `otp` property
+ }
+
+ @RefreshTokenRateLimit()
+ @ApiOperation({ summary: 'refresh the user access token / refresh token' })
+ @Post('public/auth/refresh')
+ refreshToken(@Body() refreshTokenDto: RefreshTokenDto) {
+ return this.authService.refreshToken(refreshTokenDto.refreshToken);
+ }
+
+ @Throttle({ default: { limit: 3, ttl: 180_000 } })
+ @Post('admin/auth/otp/request')
+ @ApiOperation({ summary: 'Request OTP for login or signup' })
+ @ApiBody({ type: RequestOtpDto, description: 'Mobile number to receive OTP' })
+ otpRequestAdmin(@Body() dto: RequestOtpDto) {
+ return this.authService.requestOtp(dto, true);
+ }
+
+ @Post('admin/auth/otp/verify')
+ @ApiOperation({ summary: 'Verify OTP code' })
+ @ApiBody({ type: VerifyOtpDto, description: 'Mobile number and OTP code' })
+ otpVerifyAdmin(@Body() dto: VerifyOtpDto) {
+ return this.authService.verifyOtpAdmin(dto.phone, dto.slug, dto.otp);
+ }
+
+ @RefreshTokenRateLimit()
+ @ApiOperation({ summary: 'refresh the admin access token / refresh token' })
+ @Post('admin/auth/refresh')
+ refreshTokenAdmin(@Body() refreshTokenDto: RefreshTokenDto) {
+ return this.authService.refreshToken(refreshTokenDto.refreshToken);
+ }
+
+ //super admin routes
+
+ @UseGuards(SuperAdminAuthGuard)
+ @Post('super-admin/auth/direct-login')
+ @ApiOperation({ summary: 'Direct login for DSC - returns login credentials' })
+ @ApiBody({ type: DirectLoginDto, description: 'Phone number and restaurant slug for direct login' })
+ directloginForDsc(@Body() dto: DirectLoginDto) {
+ return this.authService.loginAdminForDsc(dto.phone, dto.slug);
+ }
+
+}
diff --git a/src/modules/auth/dto/direct-login.dto.ts b/src/modules/auth/dto/direct-login.dto.ts
new file mode 100644
index 0000000..05833cd
--- /dev/null
+++ b/src/modules/auth/dto/direct-login.dto.ts
@@ -0,0 +1,15 @@
+import { IsNotEmpty, IsString, IsMobilePhone } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class DirectLoginDto {
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: '09362532122', description: 'Mobile number' })
+ @IsMobilePhone('fa-IR')
+ phone: string;
+
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: 'zhivan', description: 'Restaurant slug' })
+ slug: string;
+}
diff --git a/src/modules/auth/dto/refresh-token.dto.ts b/src/modules/auth/dto/refresh-token.dto.ts
new file mode 100755
index 0000000..180bbaa
--- /dev/null
+++ b/src/modules/auth/dto/refresh-token.dto.ts
@@ -0,0 +1,9 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsNotEmpty, IsString } from 'class-validator';
+
+export class RefreshTokenDto {
+ @ApiProperty({ description: 'Refresh token' })
+ @IsString({ message: 'Refresh token must be a string' })
+ @IsNotEmpty({ message: 'Refresh token is required' })
+ refreshToken: string;
+}
diff --git a/src/modules/auth/dto/request-otp.dto.ts b/src/modules/auth/dto/request-otp.dto.ts
new file mode 100644
index 0000000..83984af
--- /dev/null
+++ b/src/modules/auth/dto/request-otp.dto.ts
@@ -0,0 +1,15 @@
+import { IsNotEmpty, IsString, IsMobilePhone } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class RequestOtpDto {
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: '09362532122', description: 'Mobile number' })
+ @IsMobilePhone('fa-IR')
+ phone: string;
+
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
+ slug: string;
+}
diff --git a/src/modules/auth/dto/verify-otp.dto.ts b/src/modules/auth/dto/verify-otp.dto.ts
new file mode 100644
index 0000000..ec1c6f1
--- /dev/null
+++ b/src/modules/auth/dto/verify-otp.dto.ts
@@ -0,0 +1,21 @@
+import { IsNotEmpty, IsString, Length, IsMobilePhone } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class VerifyOtpDto {
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: '09362532122', description: 'Mobile number' })
+ @IsMobilePhone('fa-IR')
+ phone: string;
+
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: '', description: 'Otp' })
+ @Length(5)
+ otp: string;
+
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
+ slug: string;
+}
diff --git a/src/modules/auth/entities/refresh-token.entity.ts b/src/modules/auth/entities/refresh-token.entity.ts
new file mode 100644
index 0000000..6ff4db1
--- /dev/null
+++ b/src/modules/auth/entities/refresh-token.entity.ts
@@ -0,0 +1,29 @@
+import { Entity, Enum, Index, Property } from '@mikro-orm/core';
+
+import { BaseEntity } from '../../../common/entities/base.entity';
+
+export enum RefreshTokenType {
+ USER = 'user',
+ ADMIN = 'admin',
+}
+
+@Entity({ tableName: 'refreshtokens' })
+@Index({ properties: ['ownerId', 'restId', 'type'] })
+@Index({ properties: ['hashedToken'] })
+@Index({ properties: ['expiresAt'] })
+export class RefreshToken extends BaseEntity {
+ @Property({ type: 'varchar', length: 255 })
+ hashedToken!: string;
+
+ @Property()
+ ownerId!: string;
+
+ @Property()
+ restId!: string;
+
+ @Enum(() => RefreshTokenType)
+ type!: RefreshTokenType;
+
+ @Property({ type: 'timestamptz' })
+ expiresAt!: Date;
+}
diff --git a/src/modules/auth/guards/adminAuth.guard.ts b/src/modules/auth/guards/adminAuth.guard.ts
new file mode 100644
index 0000000..1683ea9
--- /dev/null
+++ b/src/modules/auth/guards/adminAuth.guard.ts
@@ -0,0 +1,120 @@
+import {
+ CanActivate,
+ ExecutionContext,
+ Injectable,
+ UnauthorizedException,
+ Inject,
+ Logger,
+ ForbiddenException,
+} from '@nestjs/common';
+import { Reflector } from '@nestjs/core';
+import { Request } from 'express';
+import { JwtService } from '@nestjs/jwt';
+import { ConfigService } from '@nestjs/config';
+import { IAdminTokenPayload } from '../interfaces/IToken-payload';
+import { PERMISSIONS_KEY } from '../../../common/decorators/permissions.decorator';
+import { PermissionsService } from 'src/modules/roles/providers/permissions.service';
+
+export interface AdminAuthRequest extends Request {
+ adminId: string;
+ restId: string;
+}
+
+@Injectable()
+export class AdminAuthGuard implements CanActivate {
+ private readonly logger = new Logger(AdminAuthGuard.name);
+
+ constructor(
+ @Inject(JwtService)
+ private readonly jwtService: JwtService,
+ @Inject(ConfigService)
+ private readonly configService: ConfigService,
+ private readonly permissionsService: PermissionsService,
+ private readonly reflector: Reflector,
+ ) { }
+
+ async canActivate(context: ExecutionContext) {
+ const request = context.switchToHttp().getRequest();
+
+ const token = this.extractTokenFromHeader(request);
+ if (!token) {
+ this.logger.warn('No token provided', {
+ hasAuthHeader: !!request.headers.authorization,
+ authHeader: request.headers.authorization ? 'present' : 'missing',
+ headers: Object.keys(request.headers),
+ });
+ throw new UnauthorizedException('No token provided');
+ }
+
+ try {
+ // Get the JWT secret from config
+ const secret = this.configService.getOrThrow('JWT_SECRET');
+
+ // Verify token with the secret
+ const payload = await this.jwtService.verifyAsync(token, {
+ secret,
+ });
+
+ if (!payload.adminId || !payload.restId) {
+ this.logger.error('Invalid token payload structure', payload);
+ throw new UnauthorizedException('Invalid token payload');
+ }
+
+ request['adminId'] = payload.adminId;
+ request['restId'] = payload.restId;
+
+ // check if the user has the required permissions
+ const requiredPermissions =
+ this.reflector.getAllAndOverride(PERMISSIONS_KEY, [context.getHandler(), context.getClass()]) ?? [];
+
+ if (!requiredPermissions || requiredPermissions.length === 0) {
+ return true;
+ }
+
+ const adminPermission = await this.permissionsService.getAdminPermissions(payload.adminId, payload.restId);
+ if (!adminPermission || !Array.isArray(adminPermission)) {
+ this.logger.error('No permissions found', { adminId: payload.adminId, restId: payload.restId });
+ throw new ForbiddenException('No permissions found');
+ }
+
+ const hasPermission = requiredPermissions.every(p => adminPermission.includes(p));
+
+ if (!hasPermission) {
+ this.logger.warn('Insufficient permissions', {
+ adminId: payload.adminId,
+ restId: payload.restId,
+ required: requiredPermissions,
+ has: adminPermission,
+ });
+ throw new ForbiddenException('You are not authorized to access this resource');
+ }
+
+ return true;
+ } catch (err) {
+ if (err instanceof ForbiddenException || err instanceof UnauthorizedException) {
+ throw err;
+ }
+ const errorMessage = err instanceof Error ? err.message : 'Unknown error';
+ const errorStack = err instanceof Error ? err.stack : undefined;
+ this.logger.error('Token verification error in AdminAuthGuard', {
+ error: errorMessage,
+ stack: errorStack,
+ });
+ throw new UnauthorizedException('Invalid or expired token');
+ }
+ }
+
+ private extractTokenFromHeader(request: Request): string | undefined {
+ const authHeader = request.headers.authorization || request.headers['authorization'];
+ if (!authHeader) {
+ return undefined;
+ }
+
+ const [type, token] = authHeader.split(' ');
+ if (type?.toLowerCase() !== 'bearer' || !token) {
+ return undefined;
+ }
+
+ return token;
+ }
+}
diff --git a/src/modules/auth/guards/auth.guard.ts b/src/modules/auth/guards/auth.guard.ts
new file mode 100644
index 0000000..c600f6d
--- /dev/null
+++ b/src/modules/auth/guards/auth.guard.ts
@@ -0,0 +1,72 @@
+import { CanActivate, ExecutionContext, Injectable, UnauthorizedException, Inject, Logger } from '@nestjs/common';
+import { Request } from 'express';
+import { JwtService } from '@nestjs/jwt';
+import { ConfigService } from '@nestjs/config';
+import { ITokenPayload } from '../interfaces/IToken-payload';
+
+export interface UserAuthRequest extends Request {
+ userId: string;
+ restId: string;
+}
+
+@Injectable()
+export class AuthGuard implements CanActivate {
+ private readonly logger = new Logger(AuthGuard.name);
+
+ constructor(
+ @Inject(JwtService)
+ private readonly jwtService: JwtService,
+ @Inject(ConfigService)
+ private readonly configService: ConfigService,
+ ) {}
+
+ async canActivate(context: ExecutionContext) {
+ const request = context.switchToHttp().getRequest();
+
+ try {
+ const secret = this.configService.getOrThrow('JWT_SECRET');
+ const token = this.extractTokenFromHeader(request);
+ const slug = this.extractSlugFromHeader(request);
+ if (!slug) {
+ throw new UnauthorizedException('Slug is required');
+ }
+ if (!token) {
+ throw new UnauthorizedException();
+ }
+
+ try {
+ const payload = await this.jwtService.verifyAsync(token, {
+ secret,
+ });
+ if (!payload.userId || !payload.restId) {
+ this.logger.error('Invalid token payload structure', payload);
+ throw new UnauthorizedException('Invalid token payload');
+ }
+ if (payload.slug !== slug) {
+ throw new UnauthorizedException('Invalid slug');
+ }
+ request['userId'] = payload.userId;
+ request['restId'] = payload.restId;
+ } catch {
+ throw new UnauthorizedException();
+ }
+
+ return true;
+ } catch (err) {
+ if (err instanceof UnauthorizedException) {
+ throw err;
+ }
+ this.logger.error('error in AuthGuard', err);
+ throw new UnauthorizedException('Invalid or expired token');
+ }
+ }
+ private extractTokenFromHeader(request: Request): string | undefined {
+ const [type, token] = request.headers.authorization?.split(' ') ?? [];
+ return type === 'Bearer' ? token : undefined;
+ }
+ private extractSlugFromHeader(request: Request): string | undefined {
+ // Fastify normalizes headers to lowercase, so check both cases
+ const slug = (request.headers['x-slug'] || request.headers['X-Slug']) as string;
+ return slug;
+ }
+}
diff --git a/src/modules/auth/guards/optinalAuth.guard.ts b/src/modules/auth/guards/optinalAuth.guard.ts
new file mode 100644
index 0000000..2cb712b
--- /dev/null
+++ b/src/modules/auth/guards/optinalAuth.guard.ts
@@ -0,0 +1,94 @@
+import { CanActivate, ExecutionContext, Injectable, Inject, Logger } from '@nestjs/common';
+import { Request } from 'express';
+import { JwtService } from '@nestjs/jwt';
+import { ConfigService } from '@nestjs/config';
+import { ITokenPayload } from '../interfaces/IToken-payload';
+
+export interface UserOptionalAuthRequest extends Request {
+ userId?: string;
+ restId?: string;
+ slug?: string;
+}
+
+@Injectable()
+export class OptionalAuthGuard implements CanActivate {
+ private readonly logger = new Logger(OptionalAuthGuard.name);
+
+ constructor(
+ @Inject(JwtService)
+ private readonly jwtService: JwtService,
+ @Inject(ConfigService)
+ private readonly configService: ConfigService,
+ ) {}
+
+ async canActivate(context: ExecutionContext): Promise {
+ const request = context.switchToHttp().getRequest();
+ const token = this.extractTokenFromHeader(request);
+ const slug = this.extractSlugFromHeader(request);
+
+ // If no token is provided, allow the request without authentication
+ if (!slug) {
+ console.log('No slug provided');
+ this.logger.warn('No slug provided');
+ return false;
+ }
+ if (!token) {
+ request['slug'] = slug;
+ return true;
+ }
+
+ // Try to verify the token if it exists
+ try {
+ const secret = this.configService.getOrThrow('JWT_SECRET');
+ const payload = await this.jwtService.verifyAsync(token, {
+ secret,
+ });
+
+ // Validate payload structure
+ if (!payload.userId || !payload.restId) {
+ this.logger.warn('Invalid token payload structure', payload);
+ // Allow request but don't set user info
+ request['slug'] = slug;
+ return true;
+ }
+
+ // Validate slug if provided
+ if (slug && payload.slug !== slug) {
+ this.logger.warn('Token slug does not match header slug', {
+ tokenSlug: payload.slug,
+ headerSlug: slug,
+ });
+ // Allow request but don't set user info
+ request['slug'] = slug;
+ return true;
+ }
+
+ // Token is valid, set user info
+ request['userId'] = payload.userId;
+ request['restId'] = payload.restId;
+ request['slug'] = slug;
+ return true;
+ } catch (err) {
+ // Token is invalid or expired, but allow the request anyway
+ this.logger.debug('Token verification failed in OptionalAuthGuard', {
+ error: err instanceof Error ? err.message : 'Unknown error',
+ });
+ // Set restId from slug
+
+ request['slug'] = slug;
+
+ return true;
+ }
+ }
+
+ private extractTokenFromHeader(request: Request): string | undefined {
+ const [type, token] = request.headers.authorization?.split(' ') ?? [];
+ return type === 'Bearer' ? token : undefined;
+ }
+
+ private extractSlugFromHeader(request: Request): string | undefined {
+ // Fastify normalizes headers to lowercase, so check both cases
+ const slug = (request.headers['x-slug'] || request.headers['X-Slug']) as string;
+ return slug;
+ }
+}
diff --git a/src/modules/auth/guards/superAdminAuth.guard.ts b/src/modules/auth/guards/superAdminAuth.guard.ts
new file mode 100644
index 0000000..8fc4ba3
--- /dev/null
+++ b/src/modules/auth/guards/superAdminAuth.guard.ts
@@ -0,0 +1,66 @@
+import { CanActivate, ExecutionContext, Injectable, UnauthorizedException, Inject, Logger } from '@nestjs/common';
+import { Request } from 'express';
+import { ConfigService } from '@nestjs/config';
+
+@Injectable()
+export class SuperAdminAuthGuard implements CanActivate {
+ private readonly logger = new Logger(SuperAdminAuthGuard.name);
+
+ constructor(
+ @Inject(ConfigService)
+ private readonly configService: ConfigService,
+ ) {}
+
+ canActivate(context: ExecutionContext): boolean {
+ const request = context.switchToHttp().getRequest();
+
+ try {
+ const credentials = this.extractBasicAuthCredentials(request);
+ if (!credentials) {
+ throw new UnauthorizedException('Basic authentication required');
+ }
+
+ const { username, password } = credentials;
+ const expectedUsername = this.configService.get('SUPER_ADMIN_USERNAME') ?? 'danak@dsc.com';
+ const expectedPassword = this.configService.get('SUPER_ADMIN_PASSWORD') ?? 'DsCdAnAk?@ABC';
+ if (username !== expectedUsername || password !== expectedPassword) {
+ this.logger.warn(`Invalid super admin credentials attempt for username: ${username}`);
+ throw new UnauthorizedException('Invalid credentials');
+ }
+
+ return true;
+ } catch (err) {
+ if (err instanceof UnauthorizedException) {
+ throw err;
+ }
+ this.logger.error('error in SuperAdminAuthGuard', err);
+ throw new UnauthorizedException('Authentication failed');
+ }
+ }
+
+ private extractBasicAuthCredentials(request: Request): { username: string; password: string } | null {
+ const authHeader = request.headers.authorization;
+ if (!authHeader) {
+ return null;
+ }
+
+ const [type, encoded] = authHeader.split(' ');
+ if (type?.toLowerCase() !== 'basic' || !encoded) {
+ return null;
+ }
+
+ try {
+ const decoded = Buffer.from(encoded, 'base64').toString('utf-8');
+ const [username, password] = decoded.split(':');
+
+ if (!username || !password) {
+ return null;
+ }
+
+ return { username, password };
+ } catch (error) {
+ this.logger.error('Failed to decode Basic Auth credentials', error);
+ return null;
+ }
+ }
+}
diff --git a/src/modules/auth/interfaces/IToken-payload.ts b/src/modules/auth/interfaces/IToken-payload.ts
new file mode 100755
index 0000000..457b2ca
--- /dev/null
+++ b/src/modules/auth/interfaces/IToken-payload.ts
@@ -0,0 +1,10 @@
+export interface ITokenPayload {
+ userId: string;
+ restId: string;
+ slug: string;
+}
+
+export interface IAdminTokenPayload {
+ adminId: string;
+ restId: string;
+}
diff --git a/src/modules/auth/services/auth.service.ts b/src/modules/auth/services/auth.service.ts
new file mode 100644
index 0000000..b6844eb
--- /dev/null
+++ b/src/modules/auth/services/auth.service.ts
@@ -0,0 +1,137 @@
+import { Injectable, BadRequestException } from '@nestjs/common';
+import { RequestOtpDto } from '../dto/request-otp.dto';
+import { CacheService } from '../../utils/cache.service';
+import { SmsService } from '../../notifications/services/sms.service';
+import { UserService } from '../../users/providers/user.service';
+import { randomInt } from 'crypto';
+import { TokensService } from './tokens.service';
+import { RestRepository } from 'src/modules/restaurants/repositories/rest.repository';
+import { AuthMessage, RestMessage } from 'src/common/enums/message.enum';
+import { AdminRepository } from 'src/modules/admin/repositories/admin.repository';
+import { AdminLoginTransformer } from '../transformers/admin-login.transformer';
+import { UserLoginTransformer } from '../transformers/user-login.transformer';
+import { ConfigService } from '@nestjs/config';
+import { normalizePhone } from '../../utils/phone.util';
+
+@Injectable()
+export class AuthService {
+ readonly ADMIN_PERMISSIONS_KEY = 'admin-perms';
+ private OTP_EXPIRATION_TIME: number;
+ constructor(
+ private readonly cacheService: CacheService,
+ private readonly smsService: SmsService,
+ private readonly userService: UserService,
+ private readonly tokensService: TokensService,
+ private readonly restRepository: RestRepository,
+ private readonly adminRepository: AdminRepository,
+ private readonly configService: ConfigService,
+ ) {
+ this.OTP_EXPIRATION_TIME = this.configService.get('OTP_EXPIRATION_TIME') ?? 240;
+ }
+
+ private userOtpKey(restaurantSlug: string, phone: string) {
+ return `otp:${restaurantSlug}:${phone}`;
+ }
+
+ private adminOtpKey(restaurantSlug: string, phone: string) {
+ return `otp-admin:${restaurantSlug}:${phone}`;
+ }
+
+ async requestOtp(dto: RequestOtpDto, isAdmin: boolean) {
+ const { phone, slug } = dto;
+ const normalizedPhone = normalizePhone(phone);
+ const code = this.generateOtpCode();
+ const key = isAdmin ? this.adminOtpKey(slug, normalizedPhone) : this.userOtpKey(slug, normalizedPhone);
+ await this.cacheService.set(key, code, this.OTP_EXPIRATION_TIME);
+
+ await this.smsService.sendotp(normalizedPhone, code);
+
+ return { code: null };
+ }
+
+ async verifyOtp(phone: string, slug: string, code: string) {
+ const normalizedPhone = normalizePhone(phone);
+ const key = this.userOtpKey(slug, normalizedPhone);
+ const cachedCode = await this.cacheService.get(key);
+ if (!cachedCode) throw new BadRequestException('OTP expired or not found');
+ if (cachedCode !== code) throw new BadRequestException('Invalid OTP');
+
+ await this.cacheService.del(key);
+
+ const user = await this.userService.findOrCreateByPhone(normalizedPhone);
+
+ const rest = await this.restRepository.findOne({ slug });
+
+ if (!rest) {
+ throw new BadRequestException(RestMessage.NOT_FOUND);
+ }
+
+ const tokens = await this.tokensService.generateAccessAndRefreshToken(user.id, rest.id, false, slug);
+
+ const userResponse = UserLoginTransformer.transform(user, rest);
+
+ return { tokens, user: userResponse };
+ }
+
+ async verifyOtpAdmin(phone: string, slug: string, code: string) {
+ const normalizedPhone = normalizePhone(phone);
+ const key = this.adminOtpKey(slug, normalizedPhone);
+ const cachedCode = await this.cacheService.get(key);
+
+ if (!cachedCode) throw new BadRequestException('OTP expired or not found');
+
+ if (cachedCode !== code) throw new BadRequestException('Invalid OTP');
+ await this.cacheService.del(key);
+
+ const admin = await this.adminRepository.findByPhoneAndRestaurantSlug(normalizedPhone, slug);
+
+ if (!admin) {
+ throw new BadRequestException(AuthMessage.ADMIN_NOT_FOUND);
+ }
+
+ const rest = await this.restRepository.findOne({ slug });
+
+ if (!rest) {
+ throw new BadRequestException(RestMessage.NOT_FOUND);
+ }
+
+ const tokens = await this.tokensService.generateAccessAndRefreshToken(admin.id, rest.id, true, slug);
+
+ const adminResponse = await AdminLoginTransformer.transform(admin, rest);
+
+ return { tokens, admin: adminResponse };
+ }
+ /**
+ *
+ to use for login directly from DSC
+ */
+ async loginAdminForDsc(phone: string, slug: string) {
+ const normalizedPhone = normalizePhone(phone);
+ const admin = await this.adminRepository.findByPhoneAndRestaurantSlug(normalizedPhone, slug);
+
+ if (!admin) {
+ throw new BadRequestException(AuthMessage.ADMIN_NOT_FOUND);
+ }
+
+ const rest = await this.restRepository.findOne({ slug });
+
+ if (!rest) {
+ throw new BadRequestException(RestMessage.NOT_FOUND);
+ }
+
+ const tokens = await this.tokensService.generateAccessAndRefreshToken(admin.id, rest.id, true, slug);
+
+ const adminResponse = await AdminLoginTransformer.transform(admin, rest);
+
+ return { tokens, admin: adminResponse };
+ }
+
+ private generateOtpCode(): string {
+ const code = randomInt(10000, 100000);
+ return code.toString();
+ }
+
+ refreshToken(oldRefreshToken: string) {
+ return this.tokensService.refreshToken(oldRefreshToken);
+ }
+}
diff --git a/src/modules/auth/services/tokens.service.ts b/src/modules/auth/services/tokens.service.ts
new file mode 100755
index 0000000..69a0412
--- /dev/null
+++ b/src/modules/auth/services/tokens.service.ts
@@ -0,0 +1,145 @@
+import { createHash, randomBytes } from 'node:crypto';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { LockMode } from '@mikro-orm/core';
+import { Injectable, Logger, UnauthorizedException } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import { JwtService } from '@nestjs/jwt';
+import dayjs from 'dayjs';
+
+import { AuthMessage } from '../../../common/enums/message.enum';
+import { RefreshToken, RefreshTokenType } from '../entities/refresh-token.entity';
+import { IAdminTokenPayload, ITokenPayload } from '../interfaces/IToken-payload';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+
+@Injectable()
+export class TokensService {
+ private readonly logger = new Logger(TokensService.name);
+ constructor(
+ private readonly configService: ConfigService,
+ private readonly jwtService: JwtService,
+ private readonly em: EntityManager,
+ ) {}
+
+ async generateAccessAndRefreshToken(
+ ownerId: string,
+ restaurantId: string,
+ isAdmin: boolean,
+ slug: string,
+ em?: EntityManager,
+ ) {
+ const refreshExpire = this.configService.getOrThrow('REFRESH_TOKEN_EXPIRE');
+ const accessExpire = this.configService.getOrThrow('JWT_EXPIRATION_TIME');
+
+ const payload: ITokenPayload | IAdminTokenPayload = isAdmin
+ ? { adminId: ownerId, restId: restaurantId }
+ : { userId: ownerId, restId: restaurantId, slug };
+
+ const accessToken = await this.generateAccessToken(payload, accessExpire);
+ const refreshToken = this.generateRefreshToken();
+ const type = isAdmin ? RefreshTokenType.ADMIN : RefreshTokenType.USER;
+
+ // Only pass em if it's a transaction manager (not this.em), otherwise pass undefined to trigger flush
+ await this.storeRefreshToken(ownerId, restaurantId, refreshToken, type, em);
+
+ return {
+ accessToken: { token: accessToken, expire: dayjs().add(accessExpire, 'seconds').valueOf() },
+ refreshToken: { token: refreshToken, expire: dayjs().add(refreshExpire, 'day').valueOf() },
+ };
+ }
+
+ private generateAccessToken(payload: ITokenPayload | IAdminTokenPayload, expiresIn: number) {
+ // Ensure expiresIn is passed as a string with time unit for reliability
+ // JWT library accepts: number (seconds) or string with unit (e.g., "3600s", "1h")
+ // Using string format is more explicit and prevents unit confusion
+ return this.jwtService.signAsync(payload, { expiresIn: `${expiresIn}s` });
+ }
+
+ async storeRefreshToken(
+ ownerId: string,
+ restId: string,
+ refreshToken: string,
+ type: RefreshTokenType,
+ em?: EntityManager,
+ ) {
+ const entityManager = em || this.em;
+ const refreshExpire = this.configService.getOrThrow('REFRESH_TOKEN_EXPIRE');
+ const expiresAt = dayjs().add(refreshExpire, 'day').toDate();
+
+ const hashedToken = this.hashToken(refreshToken);
+
+ const token = entityManager.create(RefreshToken, {
+ hashedToken,
+ ownerId,
+ restId,
+ type,
+ expiresAt,
+ });
+
+ if (em) {
+ // Within transaction, just persist (flush will be called by transaction)
+ entityManager.persist(token);
+ } else {
+ // Outside transaction, persist and flush immediately
+ await entityManager.persistAndFlush(token);
+ }
+ }
+
+ async refreshToken(oldRefreshToken: string) {
+ const hashedToken = this.hashToken(oldRefreshToken);
+
+ // Use transaction to ensure atomicity and prevent race conditions
+ return this.em.transactional(async em => {
+ // Lock the token row to prevent concurrent refresh attempts
+ // Using pessimistic write lock (FOR UPDATE) to prevent race conditions
+ const token = await em.findOne(RefreshToken, { hashedToken }, { lockMode: LockMode.PESSIMISTIC_WRITE });
+
+ if (!token) {
+ throw new UnauthorizedException(AuthMessage.INVALID_REFRESH_TOKEN);
+ }
+
+ // Check expiration
+ if (dayjs(token.expiresAt).isBefore(dayjs())) {
+ em.remove(token);
+ await em.flush();
+ throw new UnauthorizedException(AuthMessage.REFRESH_TOKEN_EXPIRED);
+ }
+
+ // Store token data before removal
+ const ownerId = token.ownerId;
+ const restId = token.restId;
+ const isAdmin = token.type === RefreshTokenType.ADMIN;
+
+ // Verify restaurant still exists
+ const restaurant = await em.findOne(Restaurant, { id: restId });
+ if (!restaurant) {
+ throw new UnauthorizedException(AuthMessage.INVALID_REFRESH_TOKEN);
+ }
+
+ try {
+ // Generate new tokens first (before removing old token)
+ // Pass the transaction EntityManager to ensure operations are within the transaction
+ const tokens = await this.generateAccessAndRefreshToken(ownerId, restaurant.id, isAdmin, restaurant.slug, em);
+
+ // Remove old token only after new token is created
+ em.remove(token);
+
+ // Persist changes atomically
+ await em.flush();
+
+ return tokens;
+ } catch (error) {
+ this.logger.error('Failed to generate new tokens after refresh', error);
+ // Transaction will rollback automatically, preserving the old token
+ throw new UnauthorizedException('Failed to refresh token');
+ }
+ });
+ }
+
+ private generateRefreshToken() {
+ return randomBytes(32).toString('hex');
+ }
+
+ private hashToken(token: string): string {
+ return createHash('sha256').update(token).digest('hex');
+ }
+}
diff --git a/src/modules/auth/transformers/admin-login.transformer.ts b/src/modules/auth/transformers/admin-login.transformer.ts
new file mode 100644
index 0000000..c58ed4b
--- /dev/null
+++ b/src/modules/auth/transformers/admin-login.transformer.ts
@@ -0,0 +1,93 @@
+import type { Admin } from '../../admin/entities/admin.entity';
+import type { Restaurant } from '../../restaurants/entities/restaurant.entity';
+
+export interface AdminLoginResponse {
+ id: string;
+ firstName?: string;
+ lastName?: string;
+ phone: string;
+ role: string;
+ permissions: string[];
+ restaurant?: {
+ id: string;
+ name: string;
+ slug: string;
+ };
+}
+
+export class AdminLoginTransformer {
+ static async transform(admin: Admin, restaurant?: Restaurant): Promise {
+ // Find the AdminRole that matches the restaurant (or get the first one)
+ let adminRole = admin.roles.getItems().find(r => (restaurant ? r.restaurant?.id === restaurant.id : true));
+
+ // If no match found, get the first one
+ if (!adminRole && admin.roles.getItems().length > 0) {
+ adminRole = admin.roles.getItems()[0];
+ }
+
+ if (!adminRole) {
+ return {
+ id: admin.id,
+ firstName: admin.firstName,
+ lastName: admin.lastName,
+ phone: admin.phone,
+ role: '',
+ permissions: [],
+ restaurant: restaurant
+ ? {
+ id: restaurant.id,
+ name: restaurant.name,
+ slug: restaurant.slug,
+ }
+ : undefined,
+ };
+ }
+
+ // Get the role from AdminRole
+ const role = adminRole.role;
+ if (!role) {
+ return {
+ id: admin.id,
+ firstName: admin.firstName,
+ lastName: admin.lastName,
+ phone: admin.phone,
+ role: '',
+ permissions: [],
+ restaurant: restaurant
+ ? {
+ id: restaurant.id,
+ name: restaurant.name,
+ slug: restaurant.slug,
+ }
+ : undefined,
+ };
+ }
+
+ // Extract permissions - ensure collection is loaded if needed
+ let permissions: string[] = [];
+ if (role.permissions) {
+ if (role.permissions.isInitialized()) {
+ permissions = role.permissions.getItems().map(p => p.name);
+ } else {
+ await role.permissions.loadItems();
+ permissions = role.permissions.getItems().map(p => p.name);
+ }
+ }
+
+ return {
+ id: admin.id,
+ firstName: admin.firstName,
+ lastName: admin.lastName,
+ phone: admin.phone,
+ role: role.name,
+ permissions,
+ restaurant: restaurant
+ ? {
+ id: restaurant.id,
+ name: restaurant.name,
+ slug: restaurant.slug,
+ }
+ : undefined,
+ };
+ }
+}
diff --git a/src/modules/auth/transformers/user-login.transformer.ts b/src/modules/auth/transformers/user-login.transformer.ts
new file mode 100644
index 0000000..6148def
--- /dev/null
+++ b/src/modules/auth/transformers/user-login.transformer.ts
@@ -0,0 +1,33 @@
+import type { User } from '../../users/entities/user.entity';
+import type { Restaurant } from '../../restaurants/entities/restaurant.entity';
+
+export interface UserLoginResponse {
+ id: string;
+ firstName: string;
+ lastName?: string;
+ phone: string;
+
+ isActive?: boolean;
+ restaurant: {
+ id: string;
+ name: string;
+ slug: string;
+ };
+}
+
+export class UserLoginTransformer {
+ static transform(user: User, restaurant: Restaurant): UserLoginResponse {
+ return {
+ id: user.id,
+ firstName: user.firstName,
+ lastName: user.lastName,
+ phone: user.phone,
+ isActive: user.isActive,
+ restaurant: {
+ id: restaurant.id,
+ name: restaurant.name,
+ slug: restaurant.slug,
+ },
+ };
+ }
+}
diff --git a/src/modules/delivery/controllers/delivery.controller.ts b/src/modules/delivery/controllers/delivery.controller.ts
new file mode 100644
index 0000000..c2ece7c
--- /dev/null
+++ b/src/modules/delivery/controllers/delivery.controller.ts
@@ -0,0 +1,88 @@
+import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards } from '@nestjs/common';
+import {
+ ApiTags,
+ ApiOperation,
+ ApiCreatedResponse,
+ ApiOkResponse,
+ ApiNotFoundResponse,
+ ApiParam,
+ ApiBody,
+ ApiBearerAuth,
+ ApiHeader,
+} from '@nestjs/swagger';
+import { DeliveryService } from '../providers/delivery.service';
+import { CreateDeliveryDto } from '../dto/create-delivery.dto';
+import { UpdateDeliveryDto } from '../dto/update-delivery.dto';
+import { RestId } from 'src/common/decorators/rest-id.decorator';
+import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { Delivery } from '../entities/delivery.entity';
+import { API_HEADER_SLUG } from 'src/common/constants';
+import { Permission } from 'src/common/enums/permission.enum';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+
+@ApiTags('Delivery')
+@Controller()
+export class DeliveryController {
+ constructor(private readonly deliveryService: DeliveryService) {}
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/delivery-methods/restaurant')
+ @ApiOperation({ summary: 'Get restaurant delivery methods' })
+ @ApiHeader(API_HEADER_SLUG)
+ findAllDeliveryMethods(@RestId() restId: string) {
+ return this.deliveryService.findAllForRestaurantId(restId);
+ }
+
+ /*** Admin ***/
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_DELIVERY)
+ @Post('admin/delivery-methods/restaurant')
+ @ApiOperation({ summary: 'Create a delivery method for a restaurant' })
+ @ApiBody({ type: CreateDeliveryDto })
+ create(@Body() createDto: CreateDeliveryDto, @RestId() restId: string) {
+ return this.deliveryService.create(restId, createDto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_DELIVERY)
+ @Get('admin/delivery-methods/restaurant')
+ @ApiOperation({ summary: 'Get the restaurant delivery methods' })
+ findRestaurantDeliveryMethods(@RestId() restId: string) {
+ return this.deliveryService.findAllForRestaurantId(restId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_DELIVERY)
+ @Get('admin/delivery-methods/restaurant/:deliveryId')
+ @ApiOperation({ summary: 'Get a restaurant delivery method by delivery ID' })
+ @ApiParam({ name: 'deliveryId', description: 'Delivery method ID' })
+ findOne(@Param('deliveryId') deliveryId: string, @RestId() restId: string) {
+ return this.deliveryService.findOne(restId, deliveryId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_DELIVERY)
+ @Patch('admin/delivery-methods/restaurant/:deliveryId')
+ @ApiOperation({ summary: 'Update a restaurant delivery method' })
+ @ApiParam({ name: 'deliveryId', description: 'Delivery method ID' })
+ @ApiBody({ type: UpdateDeliveryDto })
+ update(@Param('deliveryId') deliveryId: string, @Body() updateDto: UpdateDeliveryDto, @RestId() restId: string) {
+ return this.deliveryService.update(restId, deliveryId, updateDto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_DELIVERY)
+ @Delete('admin/delivery-methods/restaurant/:deliveryId')
+ @ApiOperation({ summary: 'Delete a restaurant delivery method' })
+ @ApiParam({ name: 'deliveryId', description: 'Delivery method ID' })
+ remove(@Param('deliveryId') deliveryId: string, @RestId() restId: string) {
+ return this.deliveryService.remove(restId, deliveryId);
+ }
+}
diff --git a/src/modules/delivery/delivery.module.ts b/src/modules/delivery/delivery.module.ts
new file mode 100644
index 0000000..bdf933a
--- /dev/null
+++ b/src/modules/delivery/delivery.module.ts
@@ -0,0 +1,16 @@
+import { Module } from '@nestjs/common';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { JwtModule } from '@nestjs/jwt';
+import { DeliveryController } from './controllers/delivery.controller';
+import { DeliveryService } from './providers/delivery.service';
+import { RestaurantsModule } from '../restaurants/restaurants.module';
+import { Delivery } from './entities/delivery.entity';
+import { DeliveryRepository } from './repositories/delivery.repository';
+
+@Module({
+ controllers: [DeliveryController],
+ providers: [DeliveryService, DeliveryRepository],
+ exports: [DeliveryService, DeliveryRepository],
+ imports: [MikroOrmModule.forFeature([Delivery]), JwtModule, RestaurantsModule],
+})
+export class DeliveryModule {}
diff --git a/src/modules/delivery/dto/create-delivery.dto.ts b/src/modules/delivery/dto/create-delivery.dto.ts
new file mode 100644
index 0000000..cabdb1b
--- /dev/null
+++ b/src/modules/delivery/dto/create-delivery.dto.ts
@@ -0,0 +1,60 @@
+import { IsNumber, IsBoolean, IsOptional, IsString, Min, IsEnum } from 'class-validator';
+import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
+import { Type } from 'class-transformer';
+import { DeliveryFeeTypeEnum, DeliveryMethodEnum } from '../interface/delivery';
+
+export class CreateDeliveryDto {
+ @ApiProperty({ example: 'dineIn', description: 'Delivery method name', enum: DeliveryMethodEnum })
+ @IsEnum(DeliveryMethodEnum)
+ method!: DeliveryMethodEnum;
+
+ @ApiProperty({ example: 5000, description: 'Delivery fee' })
+ @IsNumber()
+ @Min(0)
+ @Type(() => Number)
+ deliveryFee!: number;
+
+ @ApiProperty({ example: 100000, description: 'Minimum order price for free delivery' })
+ @IsNumber()
+ @Min(0)
+ @Type(() => Number)
+ minOrderPrice!: number;
+
+ @ApiPropertyOptional({ example: 'توضیحات روش ارسال', description: 'Delivery method description' })
+ @IsOptional()
+ @IsString()
+ description?: string;
+
+ @ApiPropertyOptional({ example: true, description: 'Is this delivery method enabled?' })
+ @IsOptional()
+ @IsBoolean()
+ @Type(() => Boolean)
+ enabled?: boolean;
+
+ @ApiPropertyOptional({ example: 0, description: 'Display order for sorting delivery methods' })
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ order?: number;
+
+ @ApiPropertyOptional({ example: 0, description: 'Kilometer number' })
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ distanceBasedMinCost?: number;
+
+ @ApiPropertyOptional({ example: 0, description: 'Delivery fee per kilometer' })
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ perKilometerFee?: number;
+
+ @ApiPropertyOptional({
+ example: DeliveryFeeTypeEnum.FIXED,
+ description: 'Delivery fee type',
+ enum: DeliveryFeeTypeEnum,
+ })
+ @IsOptional()
+ @IsEnum(DeliveryFeeTypeEnum)
+ deliveryFeeType!: DeliveryFeeTypeEnum;
+}
diff --git a/src/modules/delivery/dto/update-delivery.dto.ts b/src/modules/delivery/dto/update-delivery.dto.ts
new file mode 100644
index 0000000..90c5b6a
--- /dev/null
+++ b/src/modules/delivery/dto/update-delivery.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/swagger';
+import { CreateDeliveryDto } from './create-delivery.dto';
+
+export class UpdateDeliveryDto extends PartialType(CreateDeliveryDto) {}
diff --git a/src/modules/delivery/entities/delivery.entity.ts b/src/modules/delivery/entities/delivery.entity.ts
new file mode 100644
index 0000000..b1ae9da
--- /dev/null
+++ b/src/modules/delivery/entities/delivery.entity.ts
@@ -0,0 +1,37 @@
+import { Entity, Property, Enum, ManyToOne } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { DeliveryFeeTypeEnum, DeliveryMethodEnum } from '../interface/delivery';
+
+@Entity({ tableName: 'deliveries' })
+export class Delivery extends BaseEntity {
+ @Enum(() => DeliveryMethodEnum)
+ method!: DeliveryMethodEnum;
+
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ deliveryFee: number = 0;
+
+ @Enum(() => DeliveryFeeTypeEnum)
+ deliveryFeeType: DeliveryFeeTypeEnum = DeliveryFeeTypeEnum.FIXED;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ perKilometerFee: number | null = null;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ distanceBasedMinCost: number | null = null;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ minOrderPrice: number = 0;
+
+ @Property({ nullable: true })
+ description?: string;
+
+ @Property({ default: true })
+ enabled: boolean = true;
+
+ @Property({ type: 'integer', default: 0 })
+ order: number = 0;
+}
diff --git a/src/modules/delivery/interface/delivery.ts b/src/modules/delivery/interface/delivery.ts
new file mode 100644
index 0000000..c8b756d
--- /dev/null
+++ b/src/modules/delivery/interface/delivery.ts
@@ -0,0 +1,11 @@
+export enum DeliveryMethodEnum {
+ DineIn = 'dineIn',
+ CustomerPickup = 'customerPickup',
+ DeliveryCar = 'deliveryCar',
+ DeliveryCourier = 'deliveryCourier',
+}
+
+export enum DeliveryFeeTypeEnum {
+ FIXED = 'fixed',
+ DISTANCE_BASED = 'distanceBased',
+}
diff --git a/src/modules/delivery/providers/delivery.service.ts b/src/modules/delivery/providers/delivery.service.ts
new file mode 100644
index 0000000..b9b266c
--- /dev/null
+++ b/src/modules/delivery/providers/delivery.service.ts
@@ -0,0 +1,115 @@
+import { Injectable, NotFoundException, ConflictException } from '@nestjs/common';
+import { EntityManager, RequiredEntityData } from '@mikro-orm/postgresql';
+import { Delivery } from '../entities/delivery.entity';
+import { DeliveryRepository } from '../repositories/delivery.repository';
+import { CreateDeliveryDto } from '../dto/create-delivery.dto';
+import { UpdateDeliveryDto } from '../dto/update-delivery.dto';
+import { RestRepository } from '../../restaurants/repositories/rest.repository';
+import { DeliveryMethodEnum } from '../interface/delivery';
+import { DeliveryMessage } from 'src/common/enums/message.enum';
+
+@Injectable()
+export class DeliveryService {
+ constructor(
+ private readonly deliveryRepository: DeliveryRepository,
+ private readonly restRepository: RestRepository,
+ private readonly em: EntityManager,
+ ) {}
+
+ async create(restId: string, createDto: CreateDeliveryDto): Promise {
+ const restaurant = await this.restRepository.findOne({ id: restId });
+ if (!restaurant) {
+ throw new NotFoundException(DeliveryMessage.RESTAURANT_NOT_FOUND);
+ }
+
+ // Check if the delivery method with the same name already exists for this restaurant
+ const existing = await this.deliveryRepository.findOne({
+ restaurant: { id: restId },
+ method: createDto.method,
+ });
+
+ if (existing) {
+ throw new ConflictException('این روش ارسال قبلاً برای این رستوران ثبت شده است.');
+ }
+
+ const data: RequiredEntityData = {
+ restaurant,
+ method: createDto.method,
+ deliveryFee: createDto.deliveryFee,
+ minOrderPrice: createDto.minOrderPrice,
+ description: createDto.description,
+ enabled: createDto.enabled ?? true,
+ order: createDto.order ?? 0,
+ deliveryFeeType: createDto.deliveryFeeType,
+ perKilometerFee: createDto.perKilometerFee ?? null,
+ distanceBasedMinCost: createDto.distanceBasedMinCost ?? null,
+ };
+
+ const delivery = this.deliveryRepository.create(data);
+ await this.em.persistAndFlush(delivery);
+ return delivery;
+ }
+
+ async findAllForRestaurantId(restId: string): Promise {
+ return this.deliveryRepository.find({ restaurant: { id: restId } }, { orderBy: { order: 'asc' } });
+ }
+
+ async findOne(restId: string, deliveryId: string): Promise {
+ const delivery = await this.deliveryRepository.findOne({
+ id: deliveryId,
+ restaurant: { id: restId },
+ });
+
+ if (!delivery) {
+ throw new NotFoundException(DeliveryMessage.DELIVERY_METHOD_NOT_FOUND);
+ }
+
+ return delivery;
+ }
+
+ async update(restId: string, deliveryId: string, updateDto: UpdateDeliveryDto): Promise {
+ const delivery = await this.deliveryRepository.findOne({
+ restaurant: { id: restId },
+ id: deliveryId,
+ });
+
+ if (!delivery) {
+ throw new NotFoundException(DeliveryMessage.DELIVERY_METHOD_NOT_FOUND);
+ }
+
+ // If method is being updated, check for conflicts
+ if (updateDto.method !== undefined && updateDto.method !== delivery.method) {
+ const existing = await this.deliveryRepository.findOne({
+ restaurant: { id: restId },
+ method: updateDto.method,
+ id: { $ne: deliveryId },
+ });
+
+ if (existing) {
+ throw new ConflictException('این روش ارسال قبلاً برای این رستوران ثبت شده است.');
+ }
+ }
+
+ this.em.assign(delivery, updateDto);
+ await this.em.persistAndFlush(delivery);
+
+ return delivery;
+ }
+
+ async remove(restId: string, deliveryId: string): Promise {
+ const delivery = await this.deliveryRepository.findOne({
+ restaurant: { id: restId },
+ id: deliveryId,
+ });
+
+ if (!delivery) {
+ throw new NotFoundException(DeliveryMessage.DELIVERY_METHOD_NOT_FOUND);
+ }
+
+ await this.em.removeAndFlush(delivery);
+ }
+
+ findAll(): DeliveryMethodEnum[] {
+ return Object.values(DeliveryMethodEnum);
+ }
+}
diff --git a/src/modules/delivery/repositories/delivery.repository.ts b/src/modules/delivery/repositories/delivery.repository.ts
new file mode 100644
index 0000000..84f205e
--- /dev/null
+++ b/src/modules/delivery/repositories/delivery.repository.ts
@@ -0,0 +1,10 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { Delivery } from '../entities/delivery.entity';
+
+@Injectable()
+export class DeliveryRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, Delivery);
+ }
+}
diff --git a/src/modules/foods/controllers/category.controller.ts b/src/modules/foods/controllers/category.controller.ts
new file mode 100644
index 0000000..9360e58
--- /dev/null
+++ b/src/modules/foods/controllers/category.controller.ts
@@ -0,0 +1,89 @@
+import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
+import { CategoryService } from '../providers/category.service';
+import { CreateCategoryDto } from '../dto/create-category.dto';
+import { UpdateCategoryDto } from '../dto/update-category.dto';
+import {
+ ApiTags,
+ ApiOperation,
+ ApiCreatedResponse,
+ ApiOkResponse,
+ ApiNotFoundResponse,
+ ApiParam,
+ ApiBody,
+ ApiBearerAuth,
+ ApiHeader,
+} from '@nestjs/swagger';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { UseGuards } from '@nestjs/common';
+import { RestId } from 'src/common/decorators';
+import { Permission } from 'src/common/enums/permission.enum';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { API_HEADER_SLUG } from 'src/common/constants';
+
+@ApiTags('category')
+@Controller()
+export class CategoryController {
+ constructor(private readonly categoryService: CategoryService) { }
+
+ @Get('public/categories/restaurant/:slug')
+ @ApiOperation({ summary: 'Get all categories by restaurant slug' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiParam({ name: 'slug', required: true, description: 'Restaurant Slug' })
+ @ApiOkResponse({ description: 'List of all categories for the restaurant' })
+ findAllByRestaurant(@Param('slug') slug: string) {
+ return this.categoryService.findAllByRestaurant(slug);
+ }
+
+ /*** Admin ***/
+
+ @ApiOperation({ summary: 'Create category' })
+ @ApiBody({ type: CreateCategoryDto })
+ @Permissions(Permission.MANAGE_CATEGORIES)
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Post('admin/categories')
+ create(@Body() dto: CreateCategoryDto, @RestId() restId: string) {
+ return this.categoryService.create(restId, dto);
+ }
+ @Permissions(Permission.MANAGE_CATEGORIES)
+ @ApiOperation({ summary: 'my restaurant categories' })
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('admin/categories')
+ findAll(@RestId() restId: string) {
+ return this.categoryService.findAllByRestaurantId(restId);
+ }
+
+ @Permissions(Permission.MANAGE_CATEGORIES)
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('admin/categories/:id')
+ @ApiOperation({ summary: 'Get category' })
+ @ApiParam({ name: 'id', required: true, type: String })
+ findOne(@Param('id') id: string, @RestId() restId: string) {
+ return this.categoryService.findOne(restId, id);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_CATEGORIES)
+ @Patch('admin/categories/:id')
+ @ApiOperation({ summary: 'Update category' })
+ @ApiParam({ name: 'id' })
+ @ApiBody({ type: UpdateCategoryDto })
+ update(@Param('id') id: string, @Body() dto: UpdateCategoryDto, @RestId() restId: string) {
+ return this.categoryService.update(restId, id, dto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_CATEGORIES)
+ @Delete('admin/categories/:id')
+ @ApiOperation({ summary: 'Delete category' })
+ @ApiParam({ name: 'id' })
+ @ApiOkResponse({ description: 'Deleted' })
+ remove(@Param('id') id: string, @RestId() restId: string) {
+ return this.categoryService.remove(restId, id);
+ }
+
+}
diff --git a/src/modules/foods/controllers/food.controller.ts b/src/modules/foods/controllers/food.controller.ts
new file mode 100644
index 0000000..2cd3662
--- /dev/null
+++ b/src/modules/foods/controllers/food.controller.ts
@@ -0,0 +1,126 @@
+import { Controller, Get, Post, Body, Patch, Param, Delete, Query, UseGuards } from '@nestjs/common';
+import { FoodService } from '../providers/food.service';
+import { CreateFoodDto } from '../dto/create-food.dto';
+import { UpdateFoodDto } from '../dto/update-food.dto';
+import { FindFoodsDto } from '../dto/find-foods.dto';
+import {
+ ApiTags,
+ ApiOperation,
+ ApiCreatedResponse,
+ ApiOkResponse,
+ ApiNotFoundResponse,
+ ApiQuery,
+ ApiBody,
+ ApiParam,
+ ApiBearerAuth,
+ ApiHeader,
+} from '@nestjs/swagger';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { RestId, UserId } from 'src/common/decorators';
+import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
+import { OptionalAuthGuard } from 'src/modules/auth/guards/optinalAuth.guard';
+import { API_HEADER_SLUG } from 'src/common/constants';
+import { Permission } from 'src/common/enums/permission.enum';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+
+@ApiTags('foods')
+@Controller()
+export class FoodController {
+ constructor(private readonly foodsService: FoodService) { }
+
+ @Get('public/foods/restaurant/:slug')
+ @ApiOperation({ summary: 'Get all foods by restaurant slug' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiParam({ name: 'slug', required: true, description: 'Restaurant Slug' })
+ findAllByRestaurant(@Param('slug') slug: string) {
+ return this.foodsService.findByWeekDateAndMealType(slug);
+ }
+
+ @Get('public/foods/:foodId')
+ @UseGuards(OptionalAuthGuard)
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get a food by id' })
+ @ApiParam({ name: 'foodId', required: true })
+ findPublicFoodById(@Param('foodId') foodId: string, @UserId() userId?: string): Promise {
+ const a = this.foodsService.findPublicById(foodId, userId);
+ return a;
+ }
+
+ @Post('public/foods/favorite/:foodId')
+ @UseGuards(AuthGuard)
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'toggle a food as favorite' })
+ @ApiParam({ name: 'foodId', required: true })
+ setAsFavorute(@Param('foodId') foodId: string, @UserId() userId: string) {
+ return this.foodsService.toggleFavorite(userId, foodId);
+ }
+
+ @Get('public/foods/favorite')
+ @UseGuards(AuthGuard)
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'get my favorites' })
+ getMyFavorites(@UserId() userId: string, @RestId() restId: string) {
+ return this.foodsService.getMyFavorites(userId, restId);
+ }
+
+ /* ---------------------------------- Admin ---------------------------------- */
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_FOODS)
+ @Post('admin/foods')
+ @ApiOperation({ summary: 'Create a new food' })
+ @ApiBody({ type: CreateFoodDto })
+ create(@Body() createFoodDto: CreateFoodDto, @RestId() restId: string) {
+ return this.foodsService.create(restId, createFoodDto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_FOODS)
+ @Get('admin/foods')
+ @ApiOperation({ summary: 'Get a paginated list of foods' })
+ @ApiQuery({ name: 'page', required: false, type: Number })
+ @ApiQuery({ name: 'limit', required: false, type: Number })
+ @ApiQuery({ name: 'search', required: false, type: String })
+ @ApiQuery({ name: 'orderBy', required: false, type: String })
+ @ApiQuery({ name: 'order', required: false, enum: ['asc', 'desc'] })
+ @ApiQuery({ name: 'categoryId', required: false, type: String })
+ @ApiQuery({ name: 'isActive', required: false, type: Boolean })
+ async findAll(@Query() dto: FindFoodsDto, @RestId() restId: string) {
+ const result = await this.foodsService.findAll(restId, dto);
+ return result;
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_FOODS)
+ @Get('admin/foods/:id')
+ @ApiOperation({ summary: 'Get a food by id' })
+ @ApiParam({ name: 'id', required: true })
+ findById(@Param('id') id: string, @RestId() restId: string) {
+ return this.foodsService.findAdminById(restId, id);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_FOODS)
+ @Patch('admin/foods/:id')
+ @ApiOperation({ summary: 'Update a food' })
+ @ApiParam({ name: 'id', required: true })
+ @ApiBody({ type: UpdateFoodDto })
+ update(@Param('id') id: string, @Body() updateFoodDto: UpdateFoodDto, @RestId() restId: string) {
+ return this.foodsService.update(restId, id, updateFoodDto);
+ }
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_FOODS)
+ @Delete('admin/foods/:id')
+ @ApiOperation({ summary: 'Delete (soft) a food' })
+ @ApiParam({ name: 'id', required: true })
+ remove(@Param('id') id: string, @RestId() restId: string) {
+ return this.foodsService.remove(restId, id);
+ }
+}
diff --git a/src/modules/foods/crone/food.crone.ts b/src/modules/foods/crone/food.crone.ts
new file mode 100644
index 0000000..5749702
--- /dev/null
+++ b/src/modules/foods/crone/food.crone.ts
@@ -0,0 +1,45 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { Cron } from '@nestjs/schedule';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { Inventory } from '../../inventory/entities/inventory.entity';
+
+@Injectable()
+export class FoodStockCrone {
+ private readonly logger = new Logger(FoodStockCrone.name);
+
+ constructor(private readonly em: EntityManager) {}
+
+ // run every day at 00:03
+ @Cron('3 0 * * *', {
+ name: 'resetAvailableStock',
+ timeZone: 'UTC',
+ })
+ async handleCron() {
+ try {
+ this.logger.debug('Starting daily inventory reset (availableStock = totalStock)');
+
+ const inventories = await this.em.find(Inventory, {});
+ if (!inventories || inventories.length === 0) {
+ this.logger.debug('No inventory records found to reset');
+ return;
+ }
+
+ this.logger.log(`Resetting available stock for ${inventories.length} inventory records`);
+
+ await this.em.transactional(async em => {
+ for (const inv of inventories) {
+ // reload inside transaction to avoid concurrency issues
+ const record = await em.findOne(Inventory, { id: inv.id });
+ if (!record) continue;
+ record.availableStock = record.totalStock;
+ em.persist(record);
+ }
+ await em.flush();
+ });
+
+ this.logger.log('Daily inventory reset completed');
+ } catch (err) {
+ this.logger.error(`FoodStockCrone failed: ${err?.message}`, err);
+ }
+ }
+}
diff --git a/src/modules/foods/dto/create-category.dto.ts b/src/modules/foods/dto/create-category.dto.ts
new file mode 100644
index 0000000..8646850
--- /dev/null
+++ b/src/modules/foods/dto/create-category.dto.ts
@@ -0,0 +1,27 @@
+import { IsString, IsOptional, IsBoolean, IsInt, Min } from 'class-validator';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { Type } from 'class-transformer';
+
+export class CreateCategoryDto {
+ @IsString()
+ @ApiPropertyOptional({ example: 'ایرانی' })
+ title!: string;
+
+ @IsOptional()
+ @IsBoolean()
+ @Type(() => Boolean)
+ @ApiPropertyOptional({ example: true })
+ isActive?: boolean;
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional({ example: 'https://cdn.example.com/avatar.png' })
+ avatarUrl?: string;
+
+ @IsOptional()
+ @IsInt()
+ @Min(0)
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 1 })
+ order?: number;
+}
diff --git a/src/modules/foods/dto/create-food.dto.ts b/src/modules/foods/dto/create-food.dto.ts
new file mode 100644
index 0000000..988ee06
--- /dev/null
+++ b/src/modules/foods/dto/create-food.dto.ts
@@ -0,0 +1,122 @@
+import { Type } from 'class-transformer';
+import {
+ ArrayUnique,
+ IsArray,
+ IsBoolean,
+ IsEnum,
+ IsInt,
+ IsNotEmpty,
+ IsNumber,
+ IsOptional,
+ IsString,
+ Max,
+ Min,
+} from 'class-validator';
+import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
+import { MealType } from '../interface/food.interface';
+
+export class CreateFoodDto {
+ @IsNotEmpty()
+ @IsString()
+ @ApiProperty()
+ categoryId: string;
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional({ example: 'قرمه سبزی' })
+ title?: string;
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional({ example: 'توضیحات غذا' })
+ desc?: string;
+
+ @IsOptional()
+ @IsArray()
+ @IsString({ each: true })
+ @ApiPropertyOptional({ type: [String] })
+ content?: string[];
+
+ @IsOptional()
+ @IsArray()
+ @ArrayUnique()
+ @IsInt({ each: true })
+ @Min(0, { each: true })
+ @Max(6, { each: true })
+ @Type(() => Number)
+ @ApiPropertyOptional({ type: [Number], example: [0, 1, 2, 3, 4, 5, 6] })
+ weekDays?: number[];
+
+ @IsOptional()
+ @IsArray()
+ @ArrayUnique()
+ @IsEnum(MealType, { each: true })
+ @ApiPropertyOptional({ enum: MealType, isArray: true })
+ mealTypes?: MealType[];
+
+ @IsOptional()
+ @IsNumber()
+ @Min(0)
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 120000 })
+ price?: number;
+
+ @IsOptional()
+ @IsInt()
+ @Min(0)
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 15 })
+ prepareTime?: number;
+
+ @IsOptional()
+ @IsBoolean()
+ @ApiPropertyOptional({ example: true })
+ @Type(() => Boolean)
+ isActive?: boolean;
+
+ @IsOptional()
+ @IsArray()
+ @IsString({ each: true })
+ @ApiPropertyOptional({ type: [String] })
+ images?: string[];
+
+ @IsOptional()
+ @IsBoolean()
+ @ApiPropertyOptional({ example: false })
+ @Type(() => Boolean)
+ inPlaceServe?: boolean;
+
+ @IsOptional()
+ @IsBoolean()
+ @ApiPropertyOptional({ example: false })
+ @Type(() => Boolean)
+ pickupServe?: boolean;
+
+ @IsOptional()
+ @IsNumber()
+ @Min(0)
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 0 })
+ discount?: number;
+
+ @IsOptional()
+ @IsNumber()
+ @Min(0)
+ @Type(() => Number)
+ @ApiProperty({ example: 50 })
+ dailyStock: number;
+
+ @IsOptional()
+ @IsBoolean()
+ @ApiPropertyOptional({ example: false })
+ @Type(() => Boolean)
+ isSpecialOffer?: boolean;
+
+ @IsOptional()
+ @IsInt()
+ @Min(0)
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 1 })
+ order?: number;
+
+}
diff --git a/src/modules/foods/dto/find-foods.dto.ts b/src/modules/foods/dto/find-foods.dto.ts
new file mode 100644
index 0000000..19cb94a
--- /dev/null
+++ b/src/modules/foods/dto/find-foods.dto.ts
@@ -0,0 +1,43 @@
+import { IsOptional, IsNumber, IsString, IsIn, IsBoolean } from 'class-validator';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { Type } from 'class-transformer';
+
+export class FindFoodsDto {
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 1 })
+ page?: number;
+
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ @ApiPropertyOptional({ example: 10 })
+ limit?: number;
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional()
+ search?: string;
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional({ example: 'createdAt' })
+ orderBy?: string;
+
+ @IsOptional()
+ @IsIn(['asc', 'desc'])
+ @ApiPropertyOptional({ example: 'desc' })
+ order?: 'asc' | 'desc';
+
+ @IsOptional()
+ @IsString()
+ @ApiPropertyOptional()
+ categoryId?: string;
+
+ @IsOptional()
+ @IsBoolean()
+ @Type(() => Boolean)
+ @ApiPropertyOptional({ example: true })
+ isActive?: boolean;
+}
diff --git a/src/modules/foods/dto/update-category.dto.ts b/src/modules/foods/dto/update-category.dto.ts
new file mode 100644
index 0000000..d713b9b
--- /dev/null
+++ b/src/modules/foods/dto/update-category.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/swagger';
+import { CreateCategoryDto } from './create-category.dto';
+
+export class UpdateCategoryDto extends PartialType(CreateCategoryDto) {}
diff --git a/src/modules/foods/dto/update-food.dto.ts b/src/modules/foods/dto/update-food.dto.ts
new file mode 100644
index 0000000..f0cdb15
--- /dev/null
+++ b/src/modules/foods/dto/update-food.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/swagger';
+import { CreateFoodDto } from './create-food.dto';
+
+export class UpdateFoodDto extends PartialType(CreateFoodDto) {}
diff --git a/src/modules/foods/entities/category.entity.ts b/src/modules/foods/entities/category.entity.ts
new file mode 100644
index 0000000..a2c679f
--- /dev/null
+++ b/src/modules/foods/entities/category.entity.ts
@@ -0,0 +1,27 @@
+import { Entity, Index, Property, Collection, OneToMany, ManyToOne } from '@mikro-orm/core';
+import { Food } from './food.entity';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+
+@Entity({ tableName: 'categories' })
+@Index({ properties: ['restaurant', 'isActive'] })
+@Index({ properties: ['isActive'] })
+export class Category extends BaseEntity {
+ @Property()
+ title!: string;
+
+ @OneToMany(() => Food, food => food.category)
+ foods = new Collection(this);
+
+ @Property({ default: true })
+ isActive: boolean = true;
+
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Property({ nullable: true })
+ avatarUrl?: string;
+
+ @Property({ type: 'int', nullable: true })
+ order?: number;
+}
diff --git a/src/modules/foods/entities/favorite.entity.ts b/src/modules/foods/entities/favorite.entity.ts
new file mode 100644
index 0000000..245e102
--- /dev/null
+++ b/src/modules/foods/entities/favorite.entity.ts
@@ -0,0 +1,14 @@
+import { Entity, ManyToOne, Unique } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { User } from '../../users/entities/user.entity';
+import { Food } from '../../foods/entities/food.entity';
+
+@Entity({ tableName: 'favorites' })
+@Unique({ properties: ['user', 'food'] })
+export class Favorite extends BaseEntity {
+ @ManyToOne(() => User)
+ user: User;
+
+ @ManyToOne(() => Food)
+ food: Food;
+}
diff --git a/src/modules/foods/entities/food.entity.ts b/src/modules/foods/entities/food.entity.ts
new file mode 100644
index 0000000..14443ae
--- /dev/null
+++ b/src/modules/foods/entities/food.entity.ts
@@ -0,0 +1,77 @@
+import { Cascade, Collection, Entity, Index, ManyToOne, OneToMany, Property, OneToOne } from '@mikro-orm/core';
+import { Category } from './category.entity';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from '../../../modules/restaurants/entities/restaurant.entity';
+import { Review } from 'src/modules/review/entities/review.entity';
+import { Inventory } from 'src/modules/inventory/entities/inventory.entity';
+import { MealType } from '../interface/food.interface';
+import { Favorite } from './favorite.entity';
+
+@Entity({ tableName: 'foods' })
+@Index({ properties: ['restaurant', 'isActive'] })
+@Index({ properties: ['category', 'isActive'] })
+@Index({ properties: ['isActive'] })
+export class Food extends BaseEntity {
+ @ManyToOne(() => Restaurant)
+ restaurant: Restaurant;
+
+ @ManyToOne(() => Category)
+ category: Category;
+
+ @OneToMany(() => Review, review => review.food, { cascade: [Cascade.ALL], orphanRemoval: true })
+ reviews = new Collection(this);
+
+ @OneToOne(() => Inventory, {
+ mappedBy: 'food',
+ nullable: true,
+ })
+ inventory?: Inventory;
+
+ @OneToMany(() => Favorite, favorite => favorite.food)
+ favorites = new Collection(this);
+
+ @Property({ nullable: true })
+ title?: string;
+
+ @Property({ type: 'text', nullable: true })
+ desc?: string;
+
+ @Property({ type: 'json', nullable: true })
+ content?: string[];
+
+ @Property({ type: 'decimal', precision: 10, scale: 2, nullable: true })
+ price?: number;
+
+ @Property({ type: 'int', nullable: true })
+ order?: number;
+
+ @Property({ type: 'int', nullable: true })
+ prepareTime?: number; // in minutes
+
+ @Property({ type: 'jsonb', default: [] })
+ weekDays: number[] = [0, 1, 2, 3, 4, 5, 6];
+
+ @Property({ type: 'jsonb', default: [] })
+ mealTypes: MealType[] = [];
+
+ @Property({ type: 'boolean', default: true })
+ isActive: boolean = true;
+
+ @Property({ type: 'json', nullable: true })
+ images?: string[];
+
+ @Property({ type: 'boolean', default: false })
+ inPlaceServe: boolean = false;
+
+ @Property({ type: 'boolean', default: false })
+ pickupServe: boolean = false;
+
+ @Property({ type: 'float', default: null })
+ score?: number | null = null;
+
+ @Property({ type: 'float', default: 0 })
+ discount: number = 0;
+
+ @Property({ type: 'boolean', default: false })
+ isSpecialOffer: boolean = false;
+}
diff --git a/src/modules/foods/food.module.ts b/src/modules/foods/food.module.ts
new file mode 100644
index 0000000..68b0569
--- /dev/null
+++ b/src/modules/foods/food.module.ts
@@ -0,0 +1,30 @@
+import { Module } from '@nestjs/common';
+import { FoodService } from './providers/food.service';
+import { FoodStockCrone } from './crone/food.crone';
+import { FoodController } from './controllers/food.controller';
+import { CategoryController } from './controllers/category.controller';
+import { CategoryService } from './providers/category.service';
+import { FoodRepository } from './repositories/food.repository';
+import { CategoryRepository } from './repositories/category.repository';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { Category } from './entities/category.entity';
+import { Food } from './entities/food.entity';
+import { RestaurantsModule } from '../restaurants/restaurants.module';
+import { AuthModule } from '../auth/auth.module';
+import { JwtModule } from '@nestjs/jwt';
+import { UtilsModule } from '../utils/utils.module';
+import { Favorite } from './entities/favorite.entity';
+
+@Module({
+ imports: [
+ MikroOrmModule.forFeature([Food, Category, Favorite]),
+ RestaurantsModule,
+ AuthModule,
+ JwtModule,
+ UtilsModule,
+ ],
+ controllers: [FoodController, CategoryController],
+ providers: [FoodService, CategoryService, FoodRepository, CategoryRepository, FoodStockCrone],
+ exports: [FoodRepository, CategoryRepository],
+})
+export class FoodModule {}
diff --git a/src/modules/foods/interface/food.interface.ts b/src/modules/foods/interface/food.interface.ts
new file mode 100644
index 0000000..033e3ca
--- /dev/null
+++ b/src/modules/foods/interface/food.interface.ts
@@ -0,0 +1,6 @@
+export enum MealType {
+ BREAKFAST = 'breakfast',
+ LUNCH = 'lunch',
+ DINNER = 'dinner',
+ SNACK = 'snack',
+}
diff --git a/src/modules/foods/providers/category.service.ts b/src/modules/foods/providers/category.service.ts
new file mode 100644
index 0000000..cac0809
--- /dev/null
+++ b/src/modules/foods/providers/category.service.ts
@@ -0,0 +1,111 @@
+import { Injectable, NotFoundException } from '@nestjs/common';
+import { CreateCategoryDto } from '../dto/create-category.dto';
+import { UpdateCategoryDto } from '../dto/update-category.dto';
+import { CategoryRepository } from '../repositories/category.repository';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { RequiredEntityData } from '@mikro-orm/core';
+import { Category } from '../entities/category.entity';
+import { CategoryMessage, RestMessage } from 'src/common/enums/message.enum';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+
+@Injectable()
+export class CategoryService {
+ constructor(
+ private readonly categoryRepository: CategoryRepository,
+ private readonly em: EntityManager,
+ ) { }
+
+ async create(restId: string, dto: CreateCategoryDto): Promise {
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) {
+ throw new NotFoundException(RestMessage.NOT_FOUND);
+ }
+ const data: RequiredEntityData = {
+ title: dto.title,
+ isActive: dto.isActive ?? true,
+ restaurant: restaurant,
+ avatarUrl: dto.avatarUrl,
+ };
+
+ const category = this.categoryRepository.create(data);
+ await this.em.persistAndFlush(category);
+ return category;
+ }
+
+ async findAllByRestaurant(slug: string): Promise {
+ const restaurant = await this.em.findOne(Restaurant, { slug });
+ if (!restaurant || !restaurant.id) {
+ throw new NotFoundException(RestMessage.NOT_FOUND);
+ }
+ return this.categoryRepository.find({ restaurant: restaurant, isActive: true });
+ }
+
+ async findAllByRestaurantId(restId: string): Promise {
+ return this.categoryRepository.find({ restaurant: { id: restId } });
+ }
+
+ // async findAll(opts?: { restId?: string; isActive?: boolean }): Promise {
+ // const where: FilterQuery = {};
+ // if (opts?.restId) where.restId = opts.restId;
+ // if (opts && typeof opts.isActive === 'boolean') where.isActive = opts.isActive;
+ // const cats = await this.categoryRepository.find(where, { populate: ['foods'] });
+
+ // // Return plain objects to avoid circular references during JSON serialization
+ // return cats.map(cat => ({
+ // id: cat.id,
+ // title: cat.title,
+ // isActive: cat.isActive,
+ // restId: cat.restId,
+ // avatarUrl: cat.avatarUrl,
+ // createdAt: cat.createdAt,
+ // updatedAt: cat.updatedAt,
+ // foods: cat.foods.getItems().map(f => ({ id: f.id, title: f.title })),
+ // })) as unknown as Category[];
+ // }
+
+ async findOne(restId: string, id: string): Promise {
+ const cat = await this.categoryRepository.findOne({ id, restaurant: { id: restId } }, { populate: ['foods'] });
+ if (!cat) throw new NotFoundException(CategoryMessage.NOT_FOUND);
+
+ return {
+ id: cat.id,
+ title: cat.title,
+ isActive: cat.isActive,
+ restaurant: cat.restaurant,
+ avatarUrl: cat.avatarUrl,
+ createdAt: cat.createdAt,
+ updatedAt: cat.updatedAt,
+ foods: cat.foods.getItems().map(f => ({ id: f.id, title: f.title })),
+ } as unknown as Category;
+ }
+
+ async findRestaurantCategories(restId: string): Promise {
+ const cat = await this.categoryRepository.findOne({ restaurant: { id: restId } }, { populate: ['foods'] });
+ if (!cat) throw new NotFoundException(CategoryMessage.NOT_FOUND);
+
+ return {
+ id: cat.id,
+ title: cat.title,
+ isActive: cat.isActive,
+ restaurant: cat.restaurant,
+ avatarUrl: cat.avatarUrl,
+ createdAt: cat.createdAt,
+ updatedAt: cat.updatedAt,
+ } as unknown as Category;
+ }
+
+ async update(restId: string, id: string, dto: UpdateCategoryDto): Promise {
+ const cat = await this.categoryRepository.findOne({ id, restaurant: { id: restId } });
+ if (!cat) throw new NotFoundException(CategoryMessage.NOT_FOUND);
+ this.em.assign(cat, dto);
+ await this.em.persistAndFlush(cat);
+ return cat;
+ }
+
+ async remove(restId: string, id: string): Promise {
+ const cat = await this.categoryRepository.findOne({ id, restaurant: { id: restId } });
+ if (!cat) throw new NotFoundException(CategoryMessage.NOT_FOUND);
+ cat.deletedAt = new Date();
+ await this.em.persistAndFlush(cat);
+ }
+}
diff --git a/src/modules/foods/providers/food.service.ts b/src/modules/foods/providers/food.service.ts
new file mode 100644
index 0000000..9aa4334
--- /dev/null
+++ b/src/modules/foods/providers/food.service.ts
@@ -0,0 +1,274 @@
+import { Injectable, NotFoundException } from '@nestjs/common';
+import { CreateFoodDto } from '../dto/create-food.dto';
+import { FindFoodsDto } from '../dto/find-foods.dto';
+import { FoodRepository } from '../repositories/food.repository';
+import { CategoryRepository } from '../repositories/category.repository';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { RequiredEntityData, FilterQuery } from '@mikro-orm/core';
+import { Food } from '../entities/food.entity';
+import { CategoryMessage, FoodMessage, RestMessage } from 'src/common/enums/message.enum';
+import { RestRepository } from 'src/modules/restaurants/repositories/rest.repository';
+import { CacheService } from '../../utils/cache.service';
+import { Favorite } from '../entities/favorite.entity';
+import { MealType } from '../interface/food.interface';
+import { Inventory } from 'src/modules/inventory/entities/inventory.entity';
+
+@Injectable()
+export class FoodService {
+ private readonly FOODS_BY_RESTAURANT_CACHE_KEY_PREFIX = 'foods:restaurant:';
+ private readonly FOODS_CACHE_TTL = 600; // 10 minutes in seconds
+
+ constructor(
+ private readonly foodRepository: FoodRepository,
+ private readonly categoryRepository: CategoryRepository,
+ private readonly restRepository: RestRepository,
+ private readonly em: EntityManager,
+ private readonly cacheService: CacheService,
+ ) { }
+
+ async create(restId: string, createFoodDto: CreateFoodDto) {
+ const { categoryId, dailyStock = 0, ...rest } = createFoodDto;
+ const restaurant = await this.restRepository.findOne({ id: restId });
+ if (!restaurant) {
+ throw new NotFoundException(RestMessage.NOT_FOUND);
+ }
+ const category = await this.categoryRepository.findOne({ id: categoryId, restaurant: { id: restId } });
+ if (!category) {
+ throw new NotFoundException(CategoryMessage.NOT_FOUND);
+ }
+
+ const { food, inventory } = await this.em.transactional(async em => {
+ // prepare data with defaults for required fields so repository.create typing is satisfied
+ const data: RequiredEntityData = {
+ desc: rest.desc,
+ isActive: rest.isActive ?? true,
+ inPlaceServe: rest.inPlaceServe ?? false,
+ pickupServe: rest.pickupServe ?? false,
+ discount: rest.discount ?? 0,
+ isSpecialOffer: rest.isSpecialOffer ?? false,
+ order: rest.order ?? null,
+ // map single-title/content DTO to localized fields
+ title: rest.title,
+ content: rest.content,
+ // numeric/array fields
+ price: rest.price ?? 0,
+ prepareTime: rest.prepareTime ?? 0,
+ images: rest.images ?? undefined,
+ // new fields
+ weekDays: rest.weekDays ?? [0, 1, 2, 3, 4, 5, 6],
+ mealTypes: rest.mealTypes ?? [],
+ restaurant: restaurant,
+ category: category,
+ };
+
+ const food = em.create(Food, data);
+ const newInventoryRecord = em.create(Inventory, {
+ food: food,
+ availableStock: dailyStock,
+ totalStock: dailyStock,
+ });
+
+ await em.flush();
+ return { food, inventory: newInventoryRecord };
+ });
+
+ // Re-load created entities with the primary EM to ensure they're attached
+ const savedFood = food?.id
+ ? await this.foodRepository.findOne({ id: food.id }, { populate: ['category', 'restaurant'] })
+ : null;
+ const savedInventory = inventory?.id ? await this.em.findOne(Inventory, { id: inventory.id }) : inventory;
+
+ return { food: savedFood ?? food, inventory: savedInventory ?? inventory };
+ }
+
+ findAll(restId: string, dto: FindFoodsDto) {
+ return this.foodRepository.findAllPaginated(restId, dto);
+ }
+
+ /**
+ * Public food detail (only active foods are visible).
+ */
+ async findPublicById(foodId: string, userId?: string): Promise {
+ const food = await this.foodRepository.findOne({ id: foodId, isActive: true }, { populate: ['category', 'inventory'] });
+ if (!food) throw new NotFoundException(FoodMessage.NOT_FOUND);
+ let isFavorite = false;
+ if (userId) {
+ isFavorite = (await this.em.count(Favorite, { user: { id: userId }, food: { id: foodId } })) > 0;
+ }
+ return {
+ ...food,
+ isFavorite,
+ };
+ }
+
+ /**
+ * Admin food detail (scoped to the authenticated restaurant).
+ */
+ async findAdminById(restId: string, id: string): Promise {
+ const food = await this.foodRepository.findOne({ id, restaurant: { id: restId } }, { populate: ['category','inventory'] });
+
+ if (!food) throw new NotFoundException(FoodMessage.NOT_FOUND);
+ return food;
+ }
+
+ /**
+ * Find active foods for a restaurant based on current week day and meal type in Iran timezone.
+ * @param slug - Restaurant slug identifier
+ * @returns Array of active foods matching current day and meal time
+ */
+ async findByWeekDateAndMealType(slug: string): Promise {
+ const restaurant = await this.restRepository.findOne({ slug });
+ if (!restaurant) {
+ throw new NotFoundException(RestMessage.NOT_FOUND);
+ }
+
+ const { iranWeekDay, mealType } = this.getCurrentIranTimeContext();
+
+ const queryFilter: FilterQuery = {
+ restaurant: { slug },
+ isActive: true,
+ // weekDays: { $contains: iranWeekDay },
+ // ...(mealType ? { mealTypes: { $contains: mealType } } : {}),
+ } as unknown as FilterQuery;
+
+ return this.foodRepository.find(queryFilter, { populate: ['category'] });
+ }
+
+ /**
+ * Get current Iran timezone context (weekday and meal type).
+ * @returns Object containing Iran weekday (0-6, where 0=Saturday) and current meal type
+ */
+ private getCurrentIranTimeContext(): { iranWeekDay: number; mealType: MealType | null } {
+ const nowInIran = new Date(new Date().toLocaleString('en-US', { timeZone: 'Asia/Tehran' }));
+ const weekDay = nowInIran.getDay(); // 0 = Sunday, 6 = Saturday
+ const currentHour = nowInIran.getHours();
+
+ // Convert to Iran weekday: Saturday=0, Sunday=1, ..., Friday=6
+ // JavaScript: Sunday=0, Monday=1, ..., Saturday=6
+ // Iran week: Saturday=0, Sunday=1, ..., Friday=6
+ const iranWeekDay = (weekDay + 1) % 7;
+
+ const mealType = this.getMealTypeByHour(currentHour);
+
+ return { iranWeekDay, mealType };
+ }
+
+ /**
+ * Determine meal type based on current hour in Iran timezone.
+ * @param hour - Current hour (0-23)
+ * @returns Meal type or null if outside meal hours
+ */
+ private getMealTypeByHour(hour: number): MealType | null {
+ const MEAL_TIME_RANGES = {
+ BREAKFAST: { start: 6, end: 11 },
+ LUNCH: { start: 11, end: 15 },
+ SNACK: { start: 15, end: 19 },
+ DINNER: { start: 19, end: 24 },
+ } as const;
+
+ if (hour >= MEAL_TIME_RANGES.BREAKFAST.start && hour < MEAL_TIME_RANGES.BREAKFAST.end) {
+ return MealType.BREAKFAST;
+ }
+ if (hour >= MEAL_TIME_RANGES.LUNCH.start && hour < MEAL_TIME_RANGES.LUNCH.end) {
+ return MealType.LUNCH;
+ }
+ if (hour >= MEAL_TIME_RANGES.SNACK.start && hour < MEAL_TIME_RANGES.SNACK.end) {
+ return MealType.SNACK;
+ }
+ if (hour >= MEAL_TIME_RANGES.DINNER.start && hour < MEAL_TIME_RANGES.DINNER.end) {
+ return MealType.DINNER;
+ }
+
+ return null;
+ }
+
+ async update(restId: string, id: string, dto: Partial): Promise {
+ const { categoryId, dailyStock, ...rest } = dto;
+ const food = await this.foodRepository.findOne({ id, restaurant: { id: restId } }, { populate: ['restaurant'] });
+ if (!food) {
+ throw new NotFoundException(FoodMessage.NOT_FOUND);
+ }
+
+ // attach new categories if provided (adds, does not attempt to preserve/remove existing ones)
+ if (categoryId) {
+ const category = await this.categoryRepository.findOne({ id: categoryId, restaurant: { id: restId } });
+
+ if (!category) {
+ throw new NotFoundException(CategoryMessage.NOT_FOUND);
+ }
+
+ this.em.assign(food, { category: category });
+ }
+
+ // assign other fields from DTO (excluding dailyStock handled below)
+ this.em.assign(food, rest);
+
+ // Persist food and update/create related inventory atomically
+ await this.em.transactional(async em => {
+ await em.persistAndFlush(food);
+
+ if (typeof dailyStock !== 'undefined') {
+ const inventoryRecord = await em.findOne(Inventory, { food: food });
+ if (inventoryRecord) {
+ inventoryRecord.totalStock = dailyStock;
+ } else {
+ em.create(Inventory, {
+ food: food,
+ availableStock: dailyStock,
+ totalStock: dailyStock,
+ });
+ }
+ }
+
+ await em.flush();
+ });
+
+ // Re-load the food to ensure populated relations and stable instance
+ const savedFood = await this.foodRepository.findOne({ id: food.id }, { populate: ['category', 'restaurant'] });
+
+ // Invalidate cache for the restaurant if present (optional)
+ // await this.invalidateRestaurantFoodsCache(savedFood?.restaurant?.slug);
+
+ return savedFood ?? food;
+ }
+
+ async remove(restId: string, id: string): Promise {
+ const food = await this.foodRepository.findOne({ id, restaurant: { id: restId } }, { populate: ['restaurant'] });
+ if (!food) {
+ throw new NotFoundException(FoodMessage.NOT_FOUND);
+ }
+
+ // const restaurantSlug = food.restaurant.slug;
+ food.deletedAt = new Date();
+ await this.em.persistAndFlush(food);
+
+ // Invalidate cache for the restaurant
+ // await this.invalidateRestaurantFoodsCache(restaurantSlug);
+ }
+
+
+ async toggleFavorite(userId: string, foodId: string) {
+
+ const favorite = await this.em.findOne(Favorite, { user: userId, food: foodId });
+ if (favorite) {
+ return this.em.removeAndFlush(favorite);
+ }
+ const newFavorite = this.em.create(Favorite, {
+ user: userId,
+ food: foodId,
+ });
+ return this.em.persistAndFlush(newFavorite);
+ }
+
+
+ async getMyFavorites(userId: string,restId: string) {
+ return this.em.find(Favorite, { user: userId, food: { restaurant: { id: restId } } }, { populate: ['food'] });
+ }
+ /**
+ * Invalidate cache for restaurant foods
+ */
+ // private async invalidateRestaurantFoodsCache(slug: string): Promise {
+ // const cacheKey = `${this.FOODS_BY_RESTAURANT_CACHE_KEY_PREFIX}${slug}`;
+ // await this.cacheService.del(cacheKey);
+ // }
+}
diff --git a/src/modules/foods/repositories/category.repository.ts b/src/modules/foods/repositories/category.repository.ts
new file mode 100644
index 0000000..b3028b3
--- /dev/null
+++ b/src/modules/foods/repositories/category.repository.ts
@@ -0,0 +1,10 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { Category } from '../entities/category.entity';
+
+@Injectable()
+export class CategoryRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, Category);
+ }
+}
diff --git a/src/modules/foods/repositories/food.repository.ts b/src/modules/foods/repositories/food.repository.ts
new file mode 100644
index 0000000..171bf41
--- /dev/null
+++ b/src/modules/foods/repositories/food.repository.ts
@@ -0,0 +1,68 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { FilterQuery } from '@mikro-orm/core';
+import { Food } from '../entities/food.entity';
+import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
+
+type FindFoodsOpts = {
+ page?: number;
+ limit?: number;
+ search?: string;
+ orderBy?: string;
+ order?: 'asc' | 'desc';
+ categoryId?: string;
+ isActive?: boolean;
+};
+
+@Injectable()
+export class FoodRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, Food);
+ }
+ /**
+ * Find foods with pagination and optional filters.
+ * Supports: search (title/content), categoryId, isActive, ordering.
+ */
+ async findAllPaginated(restId: string, opts: FindFoodsOpts = {}): Promise> {
+ const { page = 1, limit = 10, search, orderBy = 'createdAt', order = 'desc', categoryId, isActive } = opts;
+
+ const offset = (page - 1) * limit;
+
+ const where: FilterQuery = { restaurant: { id: restId } };
+
+ if (typeof isActive === 'boolean') {
+ where.isActive = isActive;
+ }
+
+ if (search) {
+ const pattern = `%${search}%`;
+ where.$or = [{ title: { $ilike: pattern } }, { desc: { $ilike: pattern } }];
+ }
+
+ if (categoryId) {
+ // filter by related category (Food has a single `category` relation)
+ Object.assign(where, { category: { id: categoryId } } as unknown as FilterQuery);
+ }
+
+ const [data, total] = await this.findAndCount(where, {
+ limit,
+ offset,
+ orderBy: { [orderBy]: order.toLowerCase() as 'asc' | 'desc' },
+ populate: ['category','inventory'],
+ });
+
+ const totalPages = Math.ceil(total / limit);
+
+ return {
+ data,
+ meta: {
+ total,
+ page,
+ limit,
+ totalPages,
+ },
+ };
+
+
+ }
+}
diff --git a/src/modules/notifications/constants/queue.ts b/src/modules/notifications/constants/queue.ts
new file mode 100644
index 0000000..644e72f
--- /dev/null
+++ b/src/modules/notifications/constants/queue.ts
@@ -0,0 +1,5 @@
+export enum NotificationQueueNameEnum {
+ SMS = 'sms',
+ PUSH = 'push',
+ IN_APP = 'in-app',
+}
diff --git a/src/modules/notifications/controllers/notifications.controller.ts b/src/modules/notifications/controllers/notifications.controller.ts
new file mode 100644
index 0000000..71e5335
--- /dev/null
+++ b/src/modules/notifications/controllers/notifications.controller.ts
@@ -0,0 +1,196 @@
+import { Controller, Get, Body, Param, UseGuards, Query, Patch, Put, Post } from '@nestjs/common';
+import { ApiTags, ApiOperation, ApiBearerAuth, ApiParam, ApiQuery, ApiHeader } from '@nestjs/swagger';
+import { NotificationService } from '../services/notification.service';
+import { NotificationPreferenceService } from '../services/notification-preference.service';
+import { AuthGuard } from '../../auth/guards/auth.guard';
+import { UserId } from '../../../common/decorators/user-id.decorator';
+import { AdminAuthGuard } from '../../auth/guards/adminAuth.guard';
+import { RestId } from '../../../common/decorators/rest-id.decorator';
+import { UpdatePreferenceDto } from '../dto/update-preference.dto';
+import { CreatePreferenceDto } from '../dto/create-preference.dto';
+import { AdminId } from 'src/common/decorators/admin-id.decorator';
+import { API_HEADER_SLUG } from 'src/common/constants/index';
+import { NotificationMessage } from 'src/common/enums/message.enum';
+import { SuperAdminAuthGuard } from 'src/modules/auth/guards/superAdminAuth.guard';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { Permission } from 'src/common/enums/permission.enum';
+
+@ApiTags('notifications')
+@Controller()
+export class NotificationsController {
+ constructor(
+ private readonly notificationService: NotificationService,
+ private readonly preferenceService: NotificationPreferenceService,
+ ) { }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/notifications')
+ @ApiOperation({ summary: 'Get user restaurant notifications' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiQuery({ name: 'limit', required: false, type: Number, description: 'Number of items to return (default: 50)' })
+ @ApiQuery({
+ name: 'cursor',
+ required: false,
+ type: String,
+ description: 'Cursor for pagination (ID of the last item from previous page)',
+ })
+ @ApiQuery({ name: 'status', required: false, enum: ['seen', 'unseen'], description: 'Filter by notification status' })
+ async getUserNotifications(
+ @UserId() userId: string,
+ @RestId() restaurantId: string,
+ @Query('limit') limit?: number,
+ @Query('cursor') cursor?: string,
+ @Query('status') status?: 'seen' | 'unseen',
+ ) {
+ return await this.notificationService.findByUserAndRestaurant(
+ userId,
+ restaurantId,
+ limit ? parseInt(limit.toString(), 10) : 50,
+ cursor,
+ status,
+ );
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/notifications/unseen-count')
+ @ApiOperation({ summary: 'Get unseen notifications count for user' })
+ @ApiHeader(API_HEADER_SLUG)
+ async getUserUnseenCount(@UserId() userId: string, @RestId() restaurantId: string) {
+ const count = await this.notificationService.countUnseenByUserAndRestaurant(userId, restaurantId);
+ return { count };
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Put('public/notifications/:id')
+ @ApiOperation({ summary: 'Read a notification ' })
+ @ApiParam({ name: 'id', description: 'Notification ID' })
+ async readNotificationUser(@RestId() restaurantId: string, @Param('id') id: string, @UserId() userId: string) {
+ await this.notificationService.readNotificationAsUser(id, userId, restaurantId);
+ return { message: NotificationMessage.READ_SUCCESS };
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Put('public/notifications/read/all')
+ @ApiOperation({ summary: 'Read all notification ' })
+ async readAllNotificationUser(@RestId() restaurantId: string, @UserId() userId: string) {
+ await this.notificationService.readAllNotifsAsUser(userId, restaurantId);
+ return { message: NotificationMessage.READ_SUCCESS };
+ }
+ /* ***************** Admin Endpoints ***************** */
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('admin/notifications')
+ @ApiOperation({ summary: 'Get Admin notifications' })
+ @ApiQuery({ name: 'limit', required: false, type: Number })
+ @ApiQuery({
+ name: 'cursor',
+ required: false,
+ type: String,
+ description: 'Cursor for pagination (ID of the last item from previous page)',
+ })
+ @ApiQuery({ name: 'status', required: false, enum: ['seen', 'unseen'], description: 'Filter by notification status' })
+ async getAdminNotifications(
+ @AdminId() adminId: string,
+ @RestId() restaurantId: string,
+ @Query('limit') limit?: number,
+ @Query('cursor') cursor?: string,
+ @Query('status') status?: 'seen' | 'unseen',
+ ) {
+ const parsedLimit = limit ? parseInt(limit.toString(), 10) : 50;
+ return await this.notificationService.findByRestaurant(restaurantId, adminId, parsedLimit, cursor, status);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('admin/notifications/unseen-count')
+ @ApiOperation({ summary: 'Get unseen notifications count for admin' })
+ async getAdminUnseenCount(@AdminId() adminId: string, @RestId() restaurantId: string) {
+ const count = await this.notificationService.countUnseenByRestaurant(adminId, restaurantId);
+ return { count };
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Put('admin/notifications/:id')
+ @ApiOperation({ summary: 'Read a notification ' })
+ @ApiParam({ name: 'id', description: 'Notification ID' })
+ async readNotificationAdmin(@RestId() restaurantId: string, @AdminId() adminId: string, @Param('id') id: string) {
+ await this.notificationService.readNotificationAdmin(id, adminId, restaurantId);
+ return { message: NotificationMessage.READ_SUCCESS };
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Put('admin/notifications/read/all')
+ @ApiOperation({ summary: 'Read all notification ' })
+ async readAllNotificationAdmin(@RestId() restaurantId: string, @AdminId() adminId: string, @Param('id') id: string) {
+ await this.notificationService.readAllNotifsAsAdmin(adminId, restaurantId);
+ return { message: NotificationMessage.READ_SUCCESS };
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_SETTINGS)
+ @Get('admin/notification-preferences')
+ @ApiOperation({ summary: 'Get all notification preferences for a restaurant' })
+ async getPreferences(@RestId() restaurantId: string) {
+ return this.preferenceService.findByRestaurant(restaurantId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_SETTINGS)
+ @Patch('admin/notification-preferences/:id')
+ @ApiOperation({ summary: 'Update notification channels' })
+ @ApiParam({ name: 'id', description: 'Notification preference ID' })
+ async updatePreference(
+ @RestId() restaurantId: string,
+ @Param('id') preferenceId: string,
+ @Body() dto: UpdatePreferenceDto,
+ ) {
+ return this.preferenceService.updatePreference(preferenceId, restaurantId, dto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_SETTINGS)
+ @Post('admin/notification-preferences')
+ @ApiOperation({ summary: 'Create notification preference' })
+ async createPreference(
+ @RestId() restaurantId: string,
+ @Body() dto: CreatePreferenceDto,
+ ) {
+ return this.preferenceService.create(restaurantId, dto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('admin/notifications/sms-usage')
+ @ApiOperation({ summary: 'Get SMS usage for my restaurant' })
+ async getRestaurantSmsUsage(@RestId() restaurantId: string) {
+ const smsCount = await this.notificationService.getSmsCountByRestaurantId(restaurantId);
+ return { smsCount };
+ }
+
+ // super admin endpoints
+
+ @UseGuards(SuperAdminAuthGuard)
+ @ApiBearerAuth()
+ @Get('super-admin/notifications/sms-count')
+ @ApiOperation({ summary: 'Get SMS count for each restaurant with pagination' })
+ @ApiQuery({ name: 'page', required: false, type: Number, description: 'Page number (default: 1)', minimum: 1 })
+ @ApiQuery({ name: 'limit', required: false, type: Number, description: 'Items per page (default: 10)', minimum: 1 })
+ async getSmsCount(
+ @Query('page') page?: number,
+ @Query('limit') limit?: number,
+ ) {
+ const parsedPage = page ? parseInt(page.toString(), 10) : 1;
+ const parsedLimit = limit ? parseInt(limit.toString(), 10) : 10;
+ return await this.notificationService.getSmsCountByRestaurant(parsedPage, parsedLimit);
+ }
+}
diff --git a/src/modules/notifications/crone/notification.crone.ts b/src/modules/notifications/crone/notification.crone.ts
new file mode 100644
index 0000000..01052fa
--- /dev/null
+++ b/src/modules/notifications/crone/notification.crone.ts
@@ -0,0 +1,46 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { Cron } from '@nestjs/schedule';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { Notification } from '../entities/notification.entity';
+
+@Injectable()
+export class NotificationCrone {
+ private readonly logger = new Logger(NotificationCrone.name);
+
+ constructor(private readonly em: EntityManager) {}
+
+ // run every day at 03:00 (3:00 AM)
+ @Cron('0 3 * * *', {
+ name: 'deleteOldNotifications',
+ timeZone: 'UTC',
+ })
+ async handleCron() {
+ try {
+ this.logger.debug('Starting daily notification cleanup (removing notifications older than 24 hours)');
+
+ // Calculate the date 24 hours ago
+ const twentyFourHoursAgo = new Date();
+ twentyFourHoursAgo.setHours(twentyFourHoursAgo.getHours() - 24);
+
+ // Find all notifications created more than 24 hours ago
+ const oldNotifications = await this.em.find(Notification, {
+ createdAt: { $lt: twentyFourHoursAgo },
+ });
+
+ if (!oldNotifications || oldNotifications.length === 0) {
+ this.logger.debug('No old notifications found to delete');
+ return;
+ }
+
+ this.logger.log(`Found ${oldNotifications.length} notifications older than 24 hours to delete`);
+
+ // Delete the old notifications
+ await this.em.removeAndFlush(oldNotifications);
+
+ this.logger.log(`Successfully deleted ${oldNotifications.length} old notifications`);
+ } catch (err) {
+ this.logger.error(`NotificationCrone failed: ${err?.message}`, err);
+ }
+ }
+}
+
diff --git a/src/modules/notifications/decorators/ws-rest-id.decorator.ts b/src/modules/notifications/decorators/ws-rest-id.decorator.ts
new file mode 100644
index 0000000..8391a8e
--- /dev/null
+++ b/src/modules/notifications/decorators/ws-rest-id.decorator.ts
@@ -0,0 +1,26 @@
+import type { ExecutionContext } from '@nestjs/common';
+import { createParamDecorator } from '@nestjs/common';
+import type { AuthenticatedSocket } from '../guards/ws-admin-auth.guard';
+
+/**
+ * Extract restaurant ID from authenticated WebSocket client
+ * Use this decorator in WebSocket handlers to get the restId from the authenticated admin
+ *
+ * @example
+ * ```typescript
+ * @SubscribeMessage('get:notifications')
+ * handleGetNotifications(@WsRestId() restId: string) {
+ * // restId is automatically extracted from authenticated admin
+ * }
+ * ```
+ */
+export const WsRestId = createParamDecorator((data: unknown, ctx: ExecutionContext): string => {
+ const client = ctx.switchToWs().getClient();
+ const restId = client.restId;
+
+ if (!restId) {
+ throw new Error('Restaurant ID not found. Ensure WsAdminAuthGuard is applied.');
+ }
+
+ return restId;
+});
diff --git a/src/modules/notifications/dto/create-notification.dto.ts b/src/modules/notifications/dto/create-notification.dto.ts
new file mode 100644
index 0000000..e42d4b5
--- /dev/null
+++ b/src/modules/notifications/dto/create-notification.dto.ts
@@ -0,0 +1,40 @@
+import { IsString, IsNotEmpty, IsOptional, IsArray, IsObject } from 'class-validator';
+import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
+
+export class CreateNotificationDto {
+ @ApiProperty({ description: 'Notification title' })
+ @IsString()
+ @IsNotEmpty()
+ title: string;
+
+ @ApiProperty({ description: 'Notification message' })
+ @IsString()
+ @IsNotEmpty()
+ message: string;
+
+ @ApiProperty({ description: 'Notification type' })
+ @IsString()
+ @IsNotEmpty()
+ type: string;
+
+ @ApiPropertyOptional({ description: 'User ID' })
+ @IsString()
+ @IsOptional()
+ userId?: string;
+
+ @ApiPropertyOptional({ description: 'Phone number for SMS' })
+ @IsString()
+ @IsOptional()
+ phoneNumber?: string;
+
+ @ApiPropertyOptional({ description: 'Push notification tokens', type: [String] })
+ @IsArray()
+ @IsString({ each: true })
+ @IsOptional()
+ pushTokens?: string[];
+
+ @ApiPropertyOptional({ description: 'Additional data' })
+ @IsObject()
+ @IsOptional()
+ data?: Record;
+}
diff --git a/src/modules/notifications/dto/create-preference.dto.ts b/src/modules/notifications/dto/create-preference.dto.ts
new file mode 100644
index 0000000..63583fc
--- /dev/null
+++ b/src/modules/notifications/dto/create-preference.dto.ts
@@ -0,0 +1,24 @@
+import { IsNotEmpty, IsEnum, IsArray } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+import { NotifTitleEnum } from '../interfaces/notification.interface';
+import { NotifChannelEnum } from '../interfaces/notification.interface';
+
+export class CreatePreferenceDto {
+ @ApiProperty({
+ description: 'Notification title/type (e.g., order.created, review.created)',
+ enum: NotifTitleEnum,
+ example: NotifTitleEnum.ORDER_CREATED,
+ })
+ @IsEnum(NotifTitleEnum)
+ @IsNotEmpty()
+ title!: NotifTitleEnum;
+
+ @ApiProperty({
+ description: 'Notification type (SMS, PUSH, BOTH, or NONE)',
+ enum: NotifChannelEnum,
+ example: NotifChannelEnum.SMS,
+ })
+ @IsArray()
+ @IsEnum(NotifChannelEnum, { each: true })
+ channels!: NotifChannelEnum[];
+}
diff --git a/src/modules/notifications/dto/send-notification.dto.ts b/src/modules/notifications/dto/send-notification.dto.ts
new file mode 100644
index 0000000..c306319
--- /dev/null
+++ b/src/modules/notifications/dto/send-notification.dto.ts
@@ -0,0 +1,38 @@
+import { IsString, IsNotEmpty, IsOptional, IsObject } from 'class-validator';
+import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
+
+export class SendNotificationDto {
+ @ApiProperty({ description: 'Restaurant ID (ULID)' })
+ @IsString()
+ @IsNotEmpty()
+ restaurantId: string;
+
+ @ApiPropertyOptional({ description: 'User ID (ULID)' })
+ @IsString()
+ @IsOptional()
+ userId?: string;
+
+ @ApiProperty({ description: 'Notification type (e.g., ORDER_CONFIRMED, PAYMENT_FAILED)' })
+ @IsString()
+ @IsNotEmpty()
+ notificationType: string;
+
+ @ApiProperty({ description: 'Notification payload' })
+ @IsObject()
+ @IsNotEmpty()
+ payload: {
+ title?: string;
+ message: string;
+ body?: string;
+ phoneNumber?: string;
+ pushToken?: string;
+ data?: Record;
+ templateId?: string;
+ parameters?: Array<{ name: string; value: string }>;
+ };
+
+ @ApiPropertyOptional({ description: 'Idempotency key to prevent duplicates' })
+ @IsString()
+ @IsOptional()
+ idempotencyKey?: string;
+}
diff --git a/src/modules/notifications/dto/update-preference.dto.ts b/src/modules/notifications/dto/update-preference.dto.ts
new file mode 100644
index 0000000..19af347
--- /dev/null
+++ b/src/modules/notifications/dto/update-preference.dto.ts
@@ -0,0 +1,15 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsArray, IsEnum } from 'class-validator';
+import { NotifChannelEnum } from '../interfaces/notification.interface';
+
+export class UpdatePreferenceDto {
+ @ApiProperty({
+ description: 'Notification channels (can be empty or contain any enum values)',
+ enum: NotifChannelEnum,
+ isArray: true,
+ example: ['sms', 'push'],
+ })
+ @IsArray()
+ @IsEnum(NotifChannelEnum, { each: true })
+ channels!: NotifChannelEnum[];
+}
diff --git a/src/modules/notifications/entities/notification-preference.entity.ts b/src/modules/notifications/entities/notification-preference.entity.ts
new file mode 100644
index 0000000..e3ab3bc
--- /dev/null
+++ b/src/modules/notifications/entities/notification-preference.entity.ts
@@ -0,0 +1,18 @@
+import { Entity, Property, ManyToOne, Unique } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { NotifTitleEnum } from '../interfaces/notification.interface';
+import { NotifChannelEnum } from '../interfaces/notification.interface';
+
+@Entity({ tableName: 'notification_preferences' })
+@Unique({ properties: ['restaurant', 'title'] })
+export class NotificationPreference extends BaseEntity {
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Property()
+ title!: NotifTitleEnum;
+
+ @Property({ type: 'json' })
+ channels: NotifChannelEnum[] = [];
+}
diff --git a/src/modules/notifications/entities/notification.entity.ts b/src/modules/notifications/entities/notification.entity.ts
new file mode 100644
index 0000000..0f2d544
--- /dev/null
+++ b/src/modules/notifications/entities/notification.entity.ts
@@ -0,0 +1,27 @@
+import { Entity, Property, ManyToOne, Enum } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { User } from '../../users/entities/user.entity';
+import { NotifTitleEnum } from '../interfaces/notification.interface';
+import { Admin } from 'src/modules/admin/entities/admin.entity';
+
+@Entity({ tableName: 'notifications' })
+export class Notification extends BaseEntity {
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @ManyToOne(() => User, { nullable: true })
+ user?: User;
+
+ @ManyToOne(() => Admin, { nullable: true })
+ admin?: Admin;
+
+ @Enum(() => NotifTitleEnum)
+ title!: NotifTitleEnum;
+
+ @Property()
+ content!: string;
+
+ @Property({ nullable: true })
+ seenAt?: Date;
+}
diff --git a/src/modules/notifications/entities/smsLogs.entity.ts b/src/modules/notifications/entities/smsLogs.entity.ts
new file mode 100644
index 0000000..edeb103
--- /dev/null
+++ b/src/modules/notifications/entities/smsLogs.entity.ts
@@ -0,0 +1,17 @@
+import { Entity, Property, ManyToOne, PrimaryKey } from '@mikro-orm/core';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+
+@Entity({ tableName: 'sms_logs' })
+export class SmsLog {
+ @PrimaryKey()
+ id!: number;
+
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Property()
+ phone!: string;
+
+ @Property()
+ createdAt: Date = new Date();
+}
\ No newline at end of file
diff --git a/src/modules/notifications/events/sms.events.ts b/src/modules/notifications/events/sms.events.ts
new file mode 100644
index 0000000..303b366
--- /dev/null
+++ b/src/modules/notifications/events/sms.events.ts
@@ -0,0 +1,7 @@
+export class SmsSentEvent {
+ constructor(
+ public readonly phoneNumber: string,
+ public readonly restaurantId: string,
+ ) {}
+}
+
diff --git a/src/modules/notifications/guards/ws-admin-auth.guard.ts b/src/modules/notifications/guards/ws-admin-auth.guard.ts
new file mode 100644
index 0000000..296e004
--- /dev/null
+++ b/src/modules/notifications/guards/ws-admin-auth.guard.ts
@@ -0,0 +1,125 @@
+import { CanActivate, ExecutionContext, Injectable, Logger, Inject } from '@nestjs/common';
+import { WsException } from '@nestjs/websockets';
+import { Socket } from 'socket.io';
+import { JwtService } from '@nestjs/jwt';
+import { ConfigService } from '@nestjs/config';
+import { IAdminTokenPayload } from '../../auth/interfaces/IToken-payload';
+
+export interface AuthenticatedSocket extends Socket {
+ adminId?: string;
+ restId?: string;
+}
+
+@Injectable()
+export class WsAdminAuthGuard implements CanActivate {
+ private readonly logger = new Logger(WsAdminAuthGuard.name);
+
+ constructor(
+ @Inject(JwtService)
+ private readonly jwtService: JwtService,
+ @Inject(ConfigService)
+ private readonly configService: ConfigService,
+ ) {}
+
+ async canActivate(context: ExecutionContext): Promise {
+ const client: Socket = context.switchToWs().getClient();
+
+ try {
+ const token = this.extractToken(client);
+
+ if (!token) {
+ this.logger.warn('No token provided in WebSocket connection', {
+ socketId: client.id,
+ auth: client.handshake.auth,
+ query: client.handshake.query,
+ });
+ throw new WsException('Authentication required');
+ }
+
+ const secret = this.configService.getOrThrow('JWT_SECRET');
+ const payload = await this.jwtService.verifyAsync(token, {
+ secret,
+ });
+
+ if (!payload.adminId || !payload.restId) {
+ this.logger.error('Invalid token payload structure', payload);
+ throw new WsException('Invalid token payload');
+ }
+
+ // Attach admin info to socket
+ (client as AuthenticatedSocket).adminId = payload.adminId;
+ (client as AuthenticatedSocket).restId = payload.restId;
+
+ this.logger.log(`Admin authenticated via WebSocket: ${payload.adminId}, restId: ${payload.restId}`);
+
+ return true;
+ } catch (error) {
+ if (error instanceof WsException) {
+ throw error;
+ }
+ this.logger.error('WebSocket authentication error', {
+ error: error instanceof Error ? error.message : 'Unknown error',
+ socketId: client.id,
+ });
+ throw new WsException('Authentication failed');
+ }
+ }
+
+ private extractToken(client: Socket): string | undefined {
+ // Try to get token from handshake auth (recommended for socket.io)
+ const auth = client.handshake.auth;
+ const authToken = (auth?.token as string | undefined) || (auth?.authorization as string | undefined);
+
+ if (authToken) {
+ // If it's "Bearer ", extract just the token
+ if (typeof authToken === 'string' && authToken.startsWith('Bearer ')) {
+ return authToken.substring(7);
+ }
+ return authToken;
+ }
+
+ // Try to get from query parameters (fallback)
+ const queryToken = client.handshake.query?.token || client.handshake.query?.authorization;
+
+ if (queryToken) {
+ if (typeof queryToken === 'string' && queryToken.startsWith('Bearer ')) {
+ return queryToken.substring(7);
+ }
+ return queryToken as string;
+ }
+
+ // Try to get from headers (if available)
+ const headers = client.handshake.headers;
+ const authHeader = headers.authorization || headers['authorization'];
+
+ if (authHeader && typeof authHeader === 'string') {
+ const [type, token] = authHeader.split(' ');
+ if (type?.toLowerCase() === 'bearer' && token) {
+ return token;
+ }
+ }
+
+ return undefined;
+ }
+
+ // private extractToken(client: Socket): string | undefined {
+ // const tryGet = (...values: any[]) => values.find(v => typeof v === 'string' && v.length > 0);
+
+ // let token = tryGet(
+ // client.handshake.auth?.token,
+ // client.handshake.auth?.authorization,
+ // client.handshake.query?.token,
+ // client.handshake.query?.authorization,
+ // client.handshake.headers.authorization,
+ // client.handshake.headers['authorization'],
+ // );
+
+ // if (!token) return undefined;
+
+ // if (token.startsWith('Bearer ')) {
+ // token = token.slice(7);
+ // }
+
+ // return token;
+ // }
+}
diff --git a/src/modules/notifications/interfaces/jobs-queue.interface.ts b/src/modules/notifications/interfaces/jobs-queue.interface.ts
new file mode 100644
index 0000000..470a72c
--- /dev/null
+++ b/src/modules/notifications/interfaces/jobs-queue.interface.ts
@@ -0,0 +1,32 @@
+import type { NotifTitleEnum, recipientType } from './notification.interface';
+
+export interface SmsNotificationQueueJob {
+ recipient: recipientType;
+ templateId: string;
+ restaurantId: string;
+ parameters?: Record;
+}
+export interface PushNotificationQueueJob {
+ title: string;
+ content: string;
+ icon: string;
+ action: {
+ type: string; //view order
+ url: string;
+ };
+ pushToken?: string; // FCM token for push notifications
+ pushTokens?: string[]; // Multiple FCM tokens for bulk push notifications
+}
+export interface InAppNotificationQueueJob {
+ recipient: { adminId: string; restaurantId: string };
+ subject: NotifTitleEnum;
+ body: string;
+ notificationId: string;
+}
+
+export interface SmsNotificationQueueJobResult {
+ success: boolean;
+ notificationId: string;
+ providerResponse?: Record;
+ error?: string;
+}
diff --git a/src/modules/notifications/interfaces/notification.interface.ts b/src/modules/notifications/interfaces/notification.interface.ts
new file mode 100644
index 0000000..c97ca61
--- /dev/null
+++ b/src/modules/notifications/interfaces/notification.interface.ts
@@ -0,0 +1,76 @@
+export enum NotifChannelEnum {
+ IN_APP = 'in-app',
+ SMS = 'sms',
+ PUSH = 'push',
+}
+export enum NotifTypeEnum {
+ TRANSACTIONAL = 'transactional',
+ PROMOTIONAL = 'promotional',
+ SYSTEM = 'system',
+}
+export enum NotifTitleEnum {
+ PAGER_CREATED = 'pager.created',
+ ORDER_CREATED = 'order.created',
+ PAYMENT_SUCCESS = 'payment.success',
+ REVIEW_CREATED = 'review.created',
+ ORDER_STATUS_CHANGED = 'order.status.changed',
+}
+export type recipientType = { userId: string } | { adminId: string };
+
+export interface NotifRequestMessage {
+ title: NotifTitleEnum;
+ content: string;
+ sms: {
+ templateId: string;
+ parameters?: Record;
+ };
+ pushNotif: {
+ title: string;
+ content: string;
+ icon: string;
+ action: {
+ type: string; //view order
+ url: string;
+ };
+ };
+}
+
+export interface NotifRequest {
+ // requestId: string;
+ // timestamp: Date;
+ // notifType: NotifTypeEnum;
+ // channels: NotifChannelEnum[];
+ restaurantId: string;
+ recipients: recipientType[];
+ message: NotifRequestMessage;
+ metadata: {
+ priority: number;
+ // retries: number;
+ };
+}
+//************************************************ */
+interface INotifySmsPayload {
+ [key: string]: string | number | Date;
+}
+interface INotifySms {
+ phone: string;
+ subject: NotifTitleEnum;
+}
+export interface IInAppNotificationPayload {
+ notificationId: string;
+ subject: NotifTitleEnum;
+ body: string;
+}
+
+// 2. Payment Success
+interface IPaymentSuccessSmsNotifyPayload extends INotifySmsPayload {
+ amount: number;
+ date: Date;
+}
+
+interface IPaymentSuccessSmsNotify extends INotifySms {
+ subject: NotifTitleEnum.PAYMENT_SUCCESS;
+ payload: IPaymentSuccessSmsNotifyPayload;
+}
+
+export type ISmsNotifyPayload = IPaymentSuccessSmsNotify;
diff --git a/src/modules/notifications/interfaces/sms.ts b/src/modules/notifications/interfaces/sms.ts
new file mode 100644
index 0000000..fd0a746
--- /dev/null
+++ b/src/modules/notifications/interfaces/sms.ts
@@ -0,0 +1,16 @@
+export interface ISmsResponse {
+ status: number;
+ message: string;
+}
+
+export interface ISmsParams {
+ phone: string;
+ parameters?: Record;
+ templateId: string;
+}
+
+export interface ISmsBodyParameters {
+ Mobile: string;
+ TemplateId: string;
+ Parameters: { name: string; value: string }[];
+}
diff --git a/src/modules/notifications/listeners/sms.listeners.ts b/src/modules/notifications/listeners/sms.listeners.ts
new file mode 100644
index 0000000..8c2a842
--- /dev/null
+++ b/src/modules/notifications/listeners/sms.listeners.ts
@@ -0,0 +1,55 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { OnEvent } from '@nestjs/event-emitter';
+import { SmsSentEvent } from '../events/sms.events';
+import { RestRepository } from '../../restaurants/repositories/rest.repository';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { SmsLog } from '../entities/smsLogs.entity';
+
+@Injectable()
+export class SmsListeners {
+ private readonly logger = new Logger(SmsListeners.name);
+
+ constructor(
+ private readonly restRepository: RestRepository,
+ private readonly em: EntityManager,
+ ) {
+ }
+
+ @OnEvent(SmsSentEvent.name)
+ async handleSmsSent(event: SmsSentEvent) {
+ try {
+ this.logger.log(
+ `SMS sent event received: phone ${event.phoneNumber} for restaurant: ${event.restaurantId}`,
+ );
+
+ // Get the restaurant entity
+ const restaurant = await this.restRepository.findOne({ id: event.restaurantId });
+
+ if (!restaurant) {
+ this.logger.warn(
+ `Restaurant not found for SMS log: ${event.restaurantId}`,
+ );
+ return;
+ }
+
+ // Create SMS log record
+ const smsLog = this.em.create(SmsLog, {
+ restaurant: restaurant,
+ phone: event.phoneNumber,
+ createdAt: new Date(),
+ });
+
+ await this.em.flush();
+
+ this.logger.log(
+ `SMS log created successfully: ${smsLog.id} for phone ${event.phoneNumber}`,
+ );
+ } catch (error) {
+ this.logger.error(
+ `Failed to create SMS log for event: ${event.restaurantId}`,
+ error instanceof Error ? error.stack : String(error),
+ );
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/modules/notifications/notifications.gateway.ts b/src/modules/notifications/notifications.gateway.ts
new file mode 100644
index 0000000..2bbd80d
--- /dev/null
+++ b/src/modules/notifications/notifications.gateway.ts
@@ -0,0 +1,115 @@
+import {
+ WebSocketGateway,
+ WebSocketServer,
+ // SubscribeMessage,
+ OnGatewayConnection,
+ OnGatewayDisconnect,
+ // MessageBody,
+ // ConnectedSocket,
+} from '@nestjs/websockets';
+import { Server, Socket } from 'socket.io';
+import { Logger, Inject, forwardRef } from '@nestjs/common';
+import { NotificationService } from './services/notification.service';
+import { WsAdminAuthGuard, type AuthenticatedSocket } from './guards/ws-admin-auth.guard';
+import { ModuleRef } from '@nestjs/core';
+import { ExecutionContext } from '@nestjs/common';
+import { IInAppNotificationPayload } from './interfaces/notification.interface';
+
+@WebSocketGateway({
+ cors: {
+ origin: true,
+ credentials: true,
+ },
+ namespace: '/notifications',
+ transports: ['websocket', 'polling'],
+})
+export class NotificationsGateway implements OnGatewayConnection, OnGatewayDisconnect {
+ @WebSocketServer()
+ server!: Server;
+
+ private readonly logger = new Logger(NotificationsGateway.name);
+ private readonly pingIntervals = new Map();
+
+ constructor(
+ @Inject(forwardRef(() => NotificationService))
+ private readonly notificationService: NotificationService,
+ private readonly moduleRef: ModuleRef,
+ ) {}
+
+ async handleConnection(client: Socket) {
+ try {
+ await this.authenticateConnection(client);
+ const authenticatedClient = client as AuthenticatedSocket;
+ this.logger.log(`Admin connected: ${authenticatedClient.adminId}`);
+ this.handleJoinRoom(authenticatedClient);
+
+ // Start ping interval for this client
+ // const intervalId = setInterval(() => {
+ // void authenticatedClient.emit('ping', { message: 'ping', timestamp: new Date().toISOString() });
+ // }, 2000);
+
+ // this.pingIntervals.set(client.id, intervalId);
+ } catch (error) {
+ this.logger.error(
+ `Connection authentication failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
+ );
+ void client.emit('error', { message: 'Authentication failed' });
+ client.disconnect();
+ }
+ }
+
+ handleDisconnect(client: Socket) {
+ this.logger.log(`Client disconnected: ${client.id}`);
+ this.handleLeaveRoom(client);
+
+ // Clear ping interval for this client
+ // const intervalId = this.pingIntervals.get(client.id);
+ // if (intervalId) {
+ // clearInterval(intervalId);
+ // this.pingIntervals.delete(client.id);
+ // }
+ }
+
+ sendInAppNotification(repipient: { adminId: string; restaurantId: string }, payload: IInAppNotificationPayload) {
+ const room = this.getRoom(repipient.adminId, repipient.restaurantId);
+
+ this.logger.log(`Sending in app notification to admin: ${repipient.adminId}`);
+ this.server.to(room).emit('notifications', payload, async () => {
+ // 3. ACK (delivered)
+ // await this.notificationService.markAsDelivered(payload.notificationId);
+ });
+ this.logger.log(`In app notification sent to admin: ${repipient.adminId}`);
+ }
+
+ private getRoom(adminId: string, restaurantId: string) {
+ return `restaurant:${restaurantId}-admin:${adminId}`;
+ }
+
+ handleLeaveRoom(client: AuthenticatedSocket) {
+ const room = this.getRoom(client.adminId!, client.restId!);
+ void client.leave(room);
+ this.logger.log(`Admin ${client.adminId} (Client ${client.id}) left room: ${room}`);
+ void client.emit('left', { room, message: 'Successfully Admin left room' });
+ }
+
+ handleJoinRoom(client: AuthenticatedSocket) {
+ const room = this.getRoom(client.adminId!, client.restId!);
+ void client.join(room);
+ this.logger.log(`Admin ${client.adminId} (Client ${client.id}) joined room: ${room}`);
+ void client.emit('joined', { room, message: 'Successfully Admin joined room' });
+ }
+
+ private async authenticateConnection(client: Socket): Promise {
+ const guard = this.moduleRef.get(WsAdminAuthGuard);
+ const context = {
+ switchToWs: () => ({ getClient: () => client }),
+ getClass: () => NotificationsGateway,
+ getHandler: () => this.handleConnection,
+ } as unknown as ExecutionContext;
+
+ const canActivate = await guard.canActivate(context);
+ if (!canActivate) {
+ throw new Error('Authentication failed');
+ }
+ }
+}
diff --git a/src/modules/notifications/notifications.module.ts b/src/modules/notifications/notifications.module.ts
new file mode 100644
index 0000000..c99a1ae
--- /dev/null
+++ b/src/modules/notifications/notifications.module.ts
@@ -0,0 +1,76 @@
+import { Module, forwardRef } from '@nestjs/common';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { BullModule } from '@nestjs/bullmq';
+import { JwtModule } from '@nestjs/jwt';
+import { Notification } from './entities/notification.entity';
+import { NotificationPreference } from './entities/notification-preference.entity';
+import { NotificationService } from './services/notification.service';
+import { NotificationPreferenceService } from './services/notification-preference.service';
+import { NotificationQueueService } from './services/notification-queue.service';
+import { PushNotificationService } from './services/push-notification.service';
+import { SmsProcessor } from './processors/sms.processor';
+import { PushProcessor } from './processors/push.processor';
+import { NotificationsController } from './controllers/notifications.controller';
+import { User } from '../users/entities/user.entity';
+import { Restaurant } from '../restaurants/entities/restaurant.entity';
+import { AuthModule } from '../auth/auth.module';
+import { ConfigService } from '@nestjs/config';
+import { NotificationQueueNameEnum } from './constants/queue';
+import { UtilsModule } from '../utils/utils.module';
+import { NotificationsGateway } from './notifications.gateway';
+import { WsAdminAuthGuard } from './guards/ws-admin-auth.guard';
+import { InAppProcessor } from './processors/in-app.processor';
+import { AdminModule } from '../admin/admin.module';
+import { UserModule } from '../users/user.module';
+import { NotificationCrone } from './crone/notification.crone';
+import { SmsService } from './services/sms.service';
+import { SmsLog } from './entities/smsLogs.entity';
+import { SmsLogRepository } from './repositories/sms-log.repository';
+import { RestaurantsModule } from '../restaurants/restaurants.module';
+import { SmsListeners } from './listeners/sms.listeners';
+
+@Module({
+ imports: [
+ forwardRef(() => AuthModule),
+ JwtModule,
+ MikroOrmModule.forFeature([Notification, NotificationPreference, User, Restaurant, SmsLog]),
+ BullModule.registerQueue(
+ { name: NotificationQueueNameEnum.SMS },
+ { name: NotificationQueueNameEnum.PUSH },
+ { name: NotificationQueueNameEnum.IN_APP },
+ ),
+ BullModule.forRootAsync({
+ inject: [ConfigService],
+ useFactory: (config: ConfigService) => ({
+ connection: {
+ host: config.get('REDIS_HOST') || 'captain.dev.danakcorp.com',
+ port: config.get('REDIS_PORT') || 50601,
+ password: config.get('REDIS_PASSWORD'), // Pull from .env
+ },
+ }),
+ }),
+ AdminModule,
+ forwardRef(() => UserModule),
+ UtilsModule,
+ forwardRef(() => RestaurantsModule),
+ ],
+ controllers: [NotificationsController],
+ providers: [
+ NotificationService,
+ NotificationPreferenceService,
+ NotificationQueueService,
+ PushNotificationService,
+ PushProcessor,
+ SmsProcessor,
+ InAppProcessor,
+ NotificationsGateway,
+ WsAdminAuthGuard,
+ NotificationCrone,
+ SmsService,
+ SmsLogRepository,
+ SmsListeners,
+ ],
+ exports: [NotificationService, NotificationPreferenceService,
+ NotificationQueueService, PushNotificationService, SmsService],
+})
+export class NotificationsModule { }
diff --git a/src/modules/notifications/processors/in-app.processor.ts b/src/modules/notifications/processors/in-app.processor.ts
new file mode 100644
index 0000000..45c23df
--- /dev/null
+++ b/src/modules/notifications/processors/in-app.processor.ts
@@ -0,0 +1,50 @@
+import { Processor, WorkerHost, OnWorkerEvent } from '@nestjs/bullmq';
+import { Logger } from '@nestjs/common';
+import { Job } from 'bullmq';
+import { InjectRepository } from '@mikro-orm/nestjs';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { Notification } from '../entities/notification.entity';
+import { InAppNotificationQueueJob } from '../interfaces/jobs-queue.interface';
+import { NotificationQueueNameEnum } from '../constants/queue';
+import { NotificationsGateway } from '../notifications.gateway';
+
+@Processor(NotificationQueueNameEnum.IN_APP)
+export class InAppProcessor extends WorkerHost {
+ private readonly logger = new Logger(InAppProcessor.name);
+
+ constructor(
+ @InjectRepository(Notification)
+ private readonly em: EntityManager,
+ private readonly notificationsGateway: NotificationsGateway,
+ ) {
+ super();
+ }
+
+ async process(job: Job): Promise {
+ const { recipient, subject, body, notificationId } = job.data;
+
+ this.logger.log(`Processing InApp notification - Recipient: ${JSON.stringify(recipient)}, subject: ${subject}`);
+
+ try {
+ this.notificationsGateway.sendInAppNotification(
+ { adminId: recipient.adminId, restaurantId: recipient.restaurantId },
+ { subject, body, notificationId },
+ );
+
+ this.logger.log(`InApp notification sent successfully to ${recipient.adminId}`);
+ } catch (error) {
+ this.logger.error(`Error processing InApp notification job ${job.id}:`, error);
+ throw error;
+ }
+ }
+
+ @OnWorkerEvent('completed')
+ onCompleted(job: Job) {
+ this.logger.log(`Notification job ${job.id} completed`);
+ }
+
+ @OnWorkerEvent('failed')
+ onFailed(job: Job, error: Error) {
+ this.logger.error(`Notification job ${job.id} failed:`, error);
+ }
+}
diff --git a/src/modules/notifications/processors/push.processor.ts b/src/modules/notifications/processors/push.processor.ts
new file mode 100644
index 0000000..756ca05
--- /dev/null
+++ b/src/modules/notifications/processors/push.processor.ts
@@ -0,0 +1,96 @@
+import { Processor, WorkerHost, OnWorkerEvent } from '@nestjs/bullmq';
+import { Logger } from '@nestjs/common';
+import { Job } from 'bullmq';
+import { InjectRepository } from '@mikro-orm/nestjs';
+import { EntityRepository, EntityManager } from '@mikro-orm/postgresql';
+import { Notification } from '../entities/notification.entity';
+import { PushNotificationQueueJob } from '../interfaces/jobs-queue.interface';
+import { NotificationQueueNameEnum } from '../constants/queue';
+import { PushNotificationService } from '../services/push-notification.service';
+
+@Processor(NotificationQueueNameEnum.PUSH)
+export class PushProcessor extends WorkerHost {
+ private readonly logger = new Logger(PushProcessor.name);
+
+ constructor(
+ @InjectRepository(Notification)
+ private readonly notificationRepository: EntityRepository,
+ private readonly em: EntityManager,
+ private readonly pushNotificationService: PushNotificationService,
+ ) {
+ super();
+ }
+
+ async process(job: Job) {
+ const { title, content, action, pushToken, pushTokens } = job.data;
+
+ this.logger.log(`Processing push notification job: ${job.id} - Title: ${title},`);
+
+ try {
+ // Get push token from job data
+ const pushToken = job.data.pushToken;
+ const pushTokens = job.data.pushTokens;
+
+ if (!pushToken && (!pushTokens || pushTokens.length === 0)) {
+ this.logger.warn(`Push token(s) not provided for notification `);
+ throw new Error('Push token or pushTokens array is required for push notifications');
+ }
+
+ // Send push notification
+ // Convert NotificationTitle enum to a readable string for the notification title
+ const notificationTitle = String(title)
+ .replace(/\./g, ' ')
+ .replace(/\b\w/g, l => l.toUpperCase());
+
+ let pushResult;
+ if (pushTokens && pushTokens.length > 0) {
+ // Send to multiple tokens
+ pushResult = await this.pushNotificationService.sendToMultipleTokens({
+ title: notificationTitle,
+ body: content,
+ tokens: pushTokens,
+ data: {
+ action,
+ },
+ });
+ } else if (pushToken) {
+ // Send to single token
+ pushResult = await this.pushNotificationService.sendToToken({
+ title: notificationTitle,
+ body: content,
+ token: pushToken,
+ data: {
+ action,
+ },
+ });
+ } else {
+ throw new Error('Push token or pushTokens array is required');
+ }
+
+ if (!pushResult.success) {
+ throw new Error(pushResult.error || 'Failed to send push notification');
+ }
+
+ this.logger.log(`Push notification sent successfully`);
+
+ return {
+ success: true,
+
+ providerResponse: { messageId: pushResult.messageId },
+ };
+ } catch (error) {
+ this.logger.error(`Error processing push notification job ${job.id}:`, error);
+ throw error;
+ }
+ }
+
+ @OnWorkerEvent('completed')
+ onCompleted(job: Job) {
+ this.logger.log(`Notification job ${job.id} completed`);
+ }
+
+ @OnWorkerEvent('failed')
+ onFailed(job: Job, error: Error) {
+ this.logger.error(`Notification job ${job.id} failed:`, error);
+ }
+}
diff --git a/src/modules/notifications/processors/sms.processor.ts b/src/modules/notifications/processors/sms.processor.ts
new file mode 100644
index 0000000..0846e2b
--- /dev/null
+++ b/src/modules/notifications/processors/sms.processor.ts
@@ -0,0 +1,81 @@
+import { Processor, WorkerHost, OnWorkerEvent } from '@nestjs/bullmq';
+import { Logger } from '@nestjs/common';
+import { Job } from 'bullmq';
+import { UserRepository } from 'src/modules/users/repositories/user.repository';
+import { SmsNotificationQueueJob } from '../interfaces/jobs-queue.interface';
+import { AdminRepository } from 'src/modules/admin/repositories/admin.repository';
+import { NotificationQueueNameEnum } from '../constants/queue';
+import { SmsService } from '../services/sms.service';
+import { SmsSentEvent } from '../events/sms.events';
+import { EventEmitter2 } from '@nestjs/event-emitter';
+
+@Processor(NotificationQueueNameEnum.SMS)
+export class SmsProcessor extends WorkerHost {
+ private readonly logger = new Logger(SmsProcessor.name);
+
+ constructor(
+ private readonly adminRepository: AdminRepository,
+ private readonly userRepository: UserRepository,
+ private readonly smsService: SmsService,
+ private readonly eventEmitter: EventEmitter2,
+ ) {
+ super();
+ }
+
+ async process(job: Job) {
+ const { recipient, templateId, parameters, restaurantId } = job.data;
+
+ this.logger.log(`Processing SMS notification - Recipient: ${JSON.stringify(recipient)}, templateID: ${templateId}`);
+
+ try {
+ let phone!: string;
+ if ('userId' in recipient) {
+ const user = await this.userRepository.findOne({ id: recipient.userId });
+ if (!user || !user.phone) {
+ this.logger.warn(`User ${recipient.userId} not found or has no phone number`);
+ throw new Error('User phone number is required for SMS notifications');
+ }
+ phone = user.phone;
+ }
+ if ('adminId' in recipient) {
+ const admin = await this.adminRepository.findOne({ id: recipient.adminId });
+ if (!admin || !admin.phone) {
+ this.logger.warn(`Admin ${recipient.adminId} not found or has no phone number`);
+ throw new Error('Admin phone number is required for SMS notifications');
+ }
+ phone = admin.phone;
+ }
+ if (!phone) {
+ this.logger.warn(`Phone number not found for recipient ${JSON.stringify(recipient)}`);
+ throw new Error('Phone number is required for SMS notifications');
+ }
+ // Send SMS notification
+ await this.smsService.sendSms({
+ phone,
+ templateId,
+ parameters,
+ });
+
+ this.logger.log(`SMS notification sent successfully to ${phone}`);
+
+ this.eventEmitter.emit(SmsSentEvent.name, new SmsSentEvent(phone, restaurantId));
+
+ return {
+ success: true,
+ };
+ } catch (error) {
+ this.logger.error(`Error processing SMS notification job ${job.id}:`, error);
+ throw error;
+ }
+ }
+
+ @OnWorkerEvent('completed')
+ onCompleted(job: Job) {
+ this.logger.log(`Notification job ${job.id} completed`);
+ }
+
+ @OnWorkerEvent('failed')
+ onFailed(job: Job, error: Error) {
+ this.logger.error(`Notification job ${job.id} failed:`, error);
+ }
+}
diff --git a/src/modules/notifications/repositories/sms-log.repository.ts b/src/modules/notifications/repositories/sms-log.repository.ts
new file mode 100644
index 0000000..6076a29
--- /dev/null
+++ b/src/modules/notifications/repositories/sms-log.repository.ts
@@ -0,0 +1,76 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { SmsLog } from '../entities/smsLogs.entity';
+import { PaginatedResult } from '../../../common/interfaces/pagination.interface';
+
+@Injectable()
+export class SmsLogRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, SmsLog);
+ }
+
+ async getSmsCountByRestaurant(
+ page: number = 1,
+ limit: number = 10,
+ ): Promise> {
+ const offset = (page - 1) * limit;
+
+ // Get total count of unique restaurants with SMS logs
+ const totalResult = await this.em.execute(
+ `
+ SELECT COUNT(DISTINCT sl.restaurant_id) as total
+ FROM sms_logs sl
+ WHERE sl.restaurant_id IS NOT NULL
+ `,
+ );
+ const total = parseInt(totalResult[0]?.total || '0', 10);
+
+ // Get paginated results with SMS counts grouped by restaurant
+ const results = await this.em.execute(
+ `
+ SELECT
+ r.id as "restaurantId",
+ r.name as "restaurantName",
+ COUNT(sl.id)::int as "smsCount"
+ FROM sms_logs sl
+ INNER JOIN restaurants r ON sl.restaurant_id = r.id
+ GROUP BY r.id, r.name
+ ORDER BY "smsCount" DESC, r.name ASC
+ LIMIT ? OFFSET ?
+ `,
+ [limit, offset],
+ );
+
+ const data = results.map((row: any) => ({
+ restaurantId: row.restaurantId,
+ restaurantName: row.restaurantName || 'Unknown',
+ smsCount: parseInt(row.smsCount || '0', 10),
+ }));
+
+ const totalPages = Math.ceil(total / limit);
+
+ return {
+ data,
+ meta: {
+ total,
+ page,
+ limit,
+ totalPages,
+ },
+ };
+ }
+
+ async getSmsCountByRestaurantId(restaurantId: string): Promise {
+ const result = await this.em.execute(
+ `
+ SELECT COUNT(sl.id)::int as "smsCount"
+ FROM sms_logs sl
+ WHERE sl.restaurant_id = ?
+ `,
+ [restaurantId],
+ );
+
+ return parseInt(result[0]?.smsCount || '0', 10);
+ }
+}
+
diff --git a/src/modules/notifications/services/notification-preference.service.ts b/src/modules/notifications/services/notification-preference.service.ts
new file mode 100644
index 0000000..afe4477
--- /dev/null
+++ b/src/modules/notifications/services/notification-preference.service.ts
@@ -0,0 +1,85 @@
+import { Injectable, NotFoundException } from '@nestjs/common';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { NotificationPreference } from '../entities/notification-preference.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { CreatePreferenceDto } from '../dto/create-preference.dto';
+import { UpdatePreferenceDto } from '../dto/update-preference.dto';
+import { NotifTitleEnum } from '../interfaces/notification.interface';
+
+@Injectable()
+export class NotificationPreferenceService {
+ constructor(private readonly em: EntityManager) { }
+
+ async create(restaurantId: string, dto: CreatePreferenceDto): Promise {
+ const restaurant = await this.em.findOne(Restaurant, { id: restaurantId });
+ if (!restaurant) {
+ throw new NotFoundException('Restaurant not found');
+ }
+
+ const preference = this.em.create(NotificationPreference, {
+ restaurant,
+ channels: dto.channels,
+ title: dto.title,
+ });
+
+ await this.em.persistAndFlush(preference);
+ return preference;
+ }
+
+ async findByRestaurant(restaurantId: string): Promise {
+ return this.em.find(NotificationPreference, {
+ restaurant: { id: restaurantId },
+ });
+ }
+
+ async findByRestaurantAndType(restaurantId: string, title: NotifTitleEnum): Promise {
+ return this.em.findOne(NotificationPreference, {
+ restaurant: { id: restaurantId },
+ title,
+ });
+ }
+
+ // async updateEnabled(
+ // restaurantId: string,
+ // notificationType: string,
+ // enabled: boolean,
+ // ): Promise {
+ // const preference = await this.findByRestaurantAndType(restaurantId, notificationType);
+ // if (!preference) {
+ // throw new NotFoundException('Notification preference not found');
+ // }
+
+ // preference.enabled = enabled;
+ // await this.em.persistAndFlush(preference);
+ // return preference;
+ // }
+
+ async updatePreference(
+ preferenceId: string,
+ restaurantId: string,
+ dto: UpdatePreferenceDto,
+ ): Promise {
+ const preference = await this.em.findOne(NotificationPreference, {
+ id: preferenceId,
+ restaurant: { id: restaurantId },
+ });
+ if (!preference) {
+ throw new NotFoundException('Notification preference not found');
+ }
+
+ this.em.assign(preference, dto);
+ await this.em.persistAndFlush(preference);
+ return preference;
+ }
+
+ async delete(restaurantId: string, preferenceId: string): Promise {
+ const preference = await this.em.findOne(NotificationPreference, {
+ restaurant: { id: restaurantId },
+ id: preferenceId,
+ });
+ if (!preference) {
+ throw new NotFoundException('Notification preference not found');
+ }
+ await this.em.removeAndFlush(preference);
+ }
+}
diff --git a/src/modules/notifications/services/notification-queue.service.ts b/src/modules/notifications/services/notification-queue.service.ts
new file mode 100644
index 0000000..d556c51
--- /dev/null
+++ b/src/modules/notifications/services/notification-queue.service.ts
@@ -0,0 +1,145 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { InjectQueue } from '@nestjs/bullmq';
+import { Queue } from 'bullmq';
+import { NotificationQueueNameEnum } from '../constants/queue';
+import {
+ InAppNotificationQueueJob,
+ PushNotificationQueueJob,
+ SmsNotificationQueueJob,
+} from '../interfaces/jobs-queue.interface';
+
+@Injectable()
+export class NotificationQueueService {
+ private readonly logger = new Logger(NotificationQueueService.name);
+
+ constructor(
+ @InjectQueue(NotificationQueueNameEnum.SMS) private readonly smsQueue: Queue,
+ @InjectQueue(NotificationQueueNameEnum.PUSH) private readonly pushQueue: Queue,
+ @InjectQueue(NotificationQueueNameEnum.IN_APP) private readonly inAppQueue: Queue,
+ ) {}
+
+ async addSmsNotification(job: SmsNotificationQueueJob): Promise {
+ try {
+ const jobId = `${job.templateId}-${this.generateRandomInt()}-${Date.now()}`;
+
+ await this.smsQueue.add('sms-notification', job, {
+ jobId,
+ attempts: 3,
+ backoff: {
+ type: 'exponential',
+ delay: 2000,
+ },
+ removeOnComplete: {
+ age: 24 * 3600, // Keep completed jobs for 24 hours
+ count: 1000,
+ },
+ removeOnFail: {
+ age: 7 * 24 * 3600, // Keep failed jobs for 7 days
+ },
+ });
+
+ this.logger.log(`SMS notification job added to queue: ${jobId}`);
+ } catch (error) {
+ this.logger.error(`Failed to add SMS notification to queue:`, error);
+ throw error;
+ }
+ }
+
+ async addPushNotification(job: PushNotificationQueueJob): Promise {
+ try {
+ const jobId = `${job.title}-${this.generateRandomInt()}-${Date.now()}`;
+
+ await this.pushQueue.add('push-notification', job, {
+ jobId,
+ attempts: 3,
+ backoff: {
+ type: 'exponential',
+ delay: 2000,
+ },
+ removeOnComplete: {
+ age: 24 * 3600, // Keep completed jobs for 24 hours
+ count: 1000,
+ },
+ removeOnFail: {
+ age: 7 * 24 * 3600, // Keep failed jobs for 7 days
+ },
+ });
+
+ this.logger.log(`Push notification job added to queue: ${jobId}`);
+ } catch (error) {
+ this.logger.error(`Failed to add push notification to queue:`, error);
+ throw error;
+ }
+ }
+
+ async addBulkSmsNotifications(jobs: SmsNotificationQueueJob[]): Promise {
+ try {
+ const queueJobs = jobs.map(job => ({
+ name: 'sms-notification',
+ data: job,
+ opts: {
+ jobId: `${job.templateId}-${this.generateRandomInt()}`,
+ attempts: 3,
+ backoff: {
+ type: 'exponential',
+ delay: 2000,
+ },
+ },
+ }));
+
+ await this.smsQueue.addBulk(queueJobs);
+ this.logger.log(`Added ${jobs.length} SMS notification jobs to queue`);
+ } catch (error) {
+ this.logger.error(`Failed to add bulk notifications to queue:`, error);
+ throw error;
+ }
+ }
+
+ async addBulkPushNotifications(jobs: PushNotificationQueueJob[]): Promise {
+ try {
+ const queueJobs = jobs.map(job => ({
+ name: 'push-notification',
+ data: job,
+ opts: {
+ jobId: `${job.title}-${this.generateRandomInt()}-${Date.now()}`,
+ attempts: 3,
+ backoff: {
+ type: 'exponential',
+ delay: 2000,
+ },
+ },
+ }));
+
+ await this.pushQueue.addBulk(queueJobs);
+ this.logger.log(`Added ${jobs.length} Push notification jobs to queue`);
+ } catch (error) {
+ this.logger.error(`Failed to add bulk notifications to queue:`, error);
+ throw error;
+ }
+ }
+ async addBulkInAppNotifications(jobs: InAppNotificationQueueJob[]): Promise {
+ try {
+ const queueJobs = jobs.map(job => ({
+ name: 'in-app-notification',
+ data: job,
+ opts: {
+ jobId: `${job.subject}-${job.notificationId}-${Date.now()}`,
+ attempts: 3,
+ backoff: {
+ type: 'exponential',
+ delay: 2000,
+ },
+ },
+ }));
+
+ await this.inAppQueue.addBulk(queueJobs);
+ this.logger.log(`Added ${jobs.length} InApp notification jobs to queue`);
+ } catch (error) {
+ this.logger.error(`Failed to add bulk notifications to queue:`, error);
+ throw error;
+ }
+ }
+ private generateRandomInt(): string {
+ return Math.random().toString(36).substring(2, 15);
+ }
+}
diff --git a/src/modules/notifications/services/notification.service.ts b/src/modules/notifications/services/notification.service.ts
new file mode 100644
index 0000000..6c7e243
--- /dev/null
+++ b/src/modules/notifications/services/notification.service.ts
@@ -0,0 +1,282 @@
+import { Injectable, Logger, NotFoundException } from '@nestjs/common';
+import { EntityManager, FilterQuery } from '@mikro-orm/postgresql';
+import { Notification } from '../entities/notification.entity';
+import { NotificationPreferenceService } from './notification-preference.service';
+import { NotificationQueueService } from './notification-queue.service';
+import { NotificationsGateway } from '../notifications.gateway';
+import { NotifChannelEnum, NotifRequest, NotifTitleEnum } from '../interfaces/notification.interface';
+import { SmsLog } from '../entities/smsLogs.entity';
+import { SmsLogRepository } from '../repositories/sms-log.repository';
+import { PaginatedResult } from '../../../common/interfaces/pagination.interface';
+
+@Injectable()
+export class NotificationService {
+ private readonly logger = new Logger(NotificationService.name);
+
+ constructor(
+ private readonly em: EntityManager,
+ private readonly preferenceService: NotificationPreferenceService,
+ private readonly queueService: NotificationQueueService,
+ private readonly notificationGateway: NotificationsGateway,
+ private readonly smsLogRepository: SmsLogRepository,
+ ) { }
+
+ async sendNotification(params: NotifRequest): Promise {
+ const { recipients, message, metadata, restaurantId } = params;
+
+ // create Database notifications
+ const notifications = await this.createAdminBulkNotifications(
+ recipients.map(recipient => ({
+ restaurantId,
+ title: message.title,
+ content: message.content,
+ adminId: 'adminId' in recipient ? recipient.adminId : null,
+ userId: 'userId' in recipient ? recipient.userId : null,
+ })),
+ );
+
+ // get admin prefrences
+ const preference = await this.preferenceService.findByRestaurantAndType(restaurantId, message.title);
+
+ if (preference?.channels?.length === 0) {
+ this.logger.warn(`Notification type is NONE for restaurant ${restaurantId}, title ${message.title}`);
+ return notifications;
+ }
+
+ // send in app notification
+ if (preference?.channels?.includes(NotifChannelEnum.IN_APP)) {
+ await this.queueService.addBulkInAppNotifications(
+ notifications.map(notification => ({
+ recipient: { adminId: notification.admin?.id || '', restaurantId },
+ subject: message.title,
+ body: message.content,
+ notificationId: notification.id,
+ })),
+ );
+ }
+
+ // add sms notifications to queue
+ if (preference?.channels?.includes(NotifChannelEnum.SMS)) {
+ await this.queueService.addBulkSmsNotifications(
+ recipients.map(recipient => ({
+ recipient,
+ templateId: message.sms.templateId,
+ parameters: message.sms.parameters,
+ restaurantId,
+ })),
+ );
+ }
+
+ this.logger.log(`Queued notification for restaurant ${restaurantId}, title ${message.title}`);
+
+ return notifications;
+ }
+
+ async createAdminBulkNotifications(
+ params: {
+ restaurantId: string;
+ title: NotifTitleEnum;
+ content: string;
+ adminId: string | null;
+ userId: string | null;
+ }[],
+ ): Promise {
+ const notifications = params.map(param => {
+ return this.em.create(Notification, {
+ restaurant: param.restaurantId,
+ admin: param.adminId,
+ user: param.userId && param.userId.trim() !== '' ? param.userId : null,
+ title: param.title,
+ content: param.content,
+ });
+ });
+ await this.em.persistAndFlush(notifications);
+ return notifications;
+ }
+
+ async findOne(id: string): Promise {
+ const notification = await this.em.findOne(Notification, { id }, { populate: ['restaurant', 'user'] });
+ if (!notification) {
+ throw new NotFoundException('Notification not found');
+ }
+ return notification;
+ }
+
+ async findByRestaurant(
+ restaurantId: string,
+ adminId: string,
+ limit = 50,
+ cursor?: string,
+ status?: 'seen' | 'unseen',
+ ): Promise<{ data: Notification[]; nextCursor: string | null }> {
+ const where: FilterQuery = {
+ restaurant: { id: restaurantId },
+ admin: { id: adminId },
+ };
+
+ // Filter by status (seen/unseen)
+ if (status === 'seen') {
+ where.seenAt = { $ne: null };
+ } else if (status === 'unseen') {
+ where.seenAt = null;
+ }
+
+ // Cursor-based pagination: if cursor is provided, get items with id < cursor
+ if (cursor) {
+ where.id = { $lt: cursor };
+ }
+
+ const notifications = await this.em.find(Notification, where, {
+ orderBy: { createdAt: 'DESC', id: 'DESC' },
+ limit: limit + 1, // fetch one extra to determine next page
+ populate: ['user'],
+ });
+
+ const hasNextPage = notifications.length > limit;
+ const data = hasNextPage ? notifications.slice(0, limit) : notifications;
+ const nextCursor = hasNextPage && data.length > 0 ? data[data.length - 1].id : null;
+
+ return {
+ data,
+ nextCursor: nextCursor ?? null,
+ };
+ }
+
+ async findByUserAndRestaurant(
+ userId: string,
+ restaurantId: string,
+ limit = 50,
+ cursor?: string,
+ status?: 'seen' | 'unseen',
+ ): Promise<{ data: Notification[]; nextCursor: string | null }> {
+ const where: FilterQuery = {
+ user: { id: userId },
+ restaurant: { id: restaurantId },
+ };
+
+ // Filter by status (seen/unseen)
+ if (status === 'seen') {
+ where.seenAt = { $ne: null };
+ } else if (status === 'unseen') {
+ where.seenAt = null;
+ }
+
+ // Cursor-based pagination: if cursor is provided, get items with id < cursor (since ULIDs are time-ordered)
+ if (cursor) {
+ where.id = { $lt: cursor };
+ }
+
+ const notifications = await this.em.find(Notification, where, {
+ orderBy: { createdAt: 'DESC', id: 'DESC' },
+ limit: limit + 1, // Fetch one extra to determine if there's a next page
+ });
+
+ // Check if there's a next page
+ const hasNextPage = notifications.length > limit;
+ const data = hasNextPage ? notifications.slice(0, limit) : notifications;
+ const nextCursor = hasNextPage && data.length > 0 ? data[data.length - 1].id : null;
+
+ return {
+ data,
+ nextCursor: nextCursor ?? null,
+ };
+ }
+
+ async readNotificationAdmin(id: string, adminId: string, restaurantId: string): Promise {
+ const notification = await this.em.findOne(Notification, {
+ id,
+ admin: { id: adminId },
+ restaurant: { id: restaurantId },
+ });
+ if (!notification) {
+ throw new NotFoundException('Notification not found');
+ }
+ notification.seenAt = new Date();
+ await this.em.persistAndFlush(notification);
+ }
+ async readNotificationAsUser(id: string, userId: string, restaurantId: string): Promise {
+ const notification = await this.em.findOne(Notification, {
+ id,
+ user: { id: userId },
+ restaurant: { id: restaurantId },
+ });
+ if (!notification) {
+ throw new NotFoundException('Notification not found');
+ }
+ notification.seenAt = new Date();
+ await this.em.persistAndFlush(notification);
+ }
+
+ async findByRestaurantAndType(restaurantId: string, title: NotifTitleEnum, limit = 50): Promise {
+ return this.em.find(
+ Notification,
+ {
+ restaurant: { id: restaurantId },
+ title,
+ },
+ {
+ orderBy: { createdAt: 'DESC' },
+ limit,
+ populate: ['user'],
+ },
+ );
+ }
+
+ async findByAdminAndRestaurant(adminId: string, restaurantId: string, limit = 50): Promise {
+ return this.em.find(
+ Notification,
+ { admin: { id: adminId }, restaurant: { id: restaurantId } },
+ {
+ orderBy: { createdAt: 'DESC' },
+ limit,
+ },
+ );
+ }
+
+ async countUnseenByUserAndRestaurant(userId: string, restaurantId: string): Promise {
+ const where: FilterQuery = {
+ user: { id: userId },
+ restaurant: { id: restaurantId },
+ seenAt: null,
+ };
+ return this.em.count(Notification, where);
+ }
+
+ async countUnseenByRestaurant(adminId: string, restaurantId: string): Promise {
+ const where: FilterQuery = {
+ admin: { id: adminId },
+ restaurant: { id: restaurantId },
+ seenAt: null,
+ };
+ return this.em.count(Notification, where);
+ }
+
+ readAllNotifsAsUser(userId: string, restaurantId: string): Promise {
+ const where: FilterQuery = {
+ user: { id: userId },
+ restaurant: { id: restaurantId },
+ seenAt: null,
+ };
+ return this.em.nativeUpdate(Notification, where, { seenAt: new Date() });
+ }
+
+ readAllNotifsAsAdmin(adminId: string, restaurantId: string): Promise {
+ const where: FilterQuery = {
+ admin: { id: adminId },
+ restaurant: { id: restaurantId },
+ seenAt: null,
+ };
+ return this.em.nativeUpdate(Notification, where, { seenAt: new Date() });
+ }
+
+ async getSmsCountByRestaurant(
+ page: number = 1,
+ limit: number = 10,
+ ): Promise> {
+ return this.smsLogRepository.getSmsCountByRestaurant(page, limit);
+ }
+
+ async getSmsCountByRestaurantId(restaurantId: string): Promise {
+ return this.smsLogRepository.getSmsCountByRestaurantId(restaurantId);
+ }
+}
diff --git a/src/modules/notifications/services/push-notification.service.ts b/src/modules/notifications/services/push-notification.service.ts
new file mode 100644
index 0000000..e62c16c
--- /dev/null
+++ b/src/modules/notifications/services/push-notification.service.ts
@@ -0,0 +1,148 @@
+import { Injectable, Logger, HttpException, HttpStatus } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import * as admin from 'firebase-admin';
+
+export interface PushNotificationPayload {
+ title: string;
+ body: string;
+ data?: Record;
+ token?: string;
+ tokens?: string[];
+}
+
+export interface PushNotificationResponse {
+ success: boolean;
+ messageId?: string;
+ error?: string;
+}
+
+@Injectable()
+export class PushNotificationService {
+ private readonly logger = new Logger(PushNotificationService.name);
+ private firebaseApp: admin.app.App | null = null;
+
+ constructor(private readonly configService: ConfigService) {
+ this.initializeFirebase();
+ }
+
+ private initializeFirebase() {
+ try {
+ const firebaseConfig = this.configService.get('FIREBASE_SERVICE_ACCOUNT');
+
+ if (!firebaseConfig) {
+ this.logger.warn('Firebase service account not configured. Push notifications will be disabled.');
+ return;
+ }
+
+ // Parse the service account JSON
+ const serviceAccount = JSON.parse(firebaseConfig);
+
+ if (!this.firebaseApp) {
+ this.firebaseApp = admin.initializeApp({
+ credential: admin.credential.cert(serviceAccount),
+ });
+ this.logger.log('Firebase initialized successfully');
+ }
+ } catch (error) {
+ this.logger.error('Failed to initialize Firebase:', error);
+ this.logger.warn('Push notifications will be disabled');
+ }
+ }
+
+ async sendToToken(payload: PushNotificationPayload): Promise {
+ if (!this.firebaseApp || !payload.token) {
+ throw new HttpException(
+ 'Push notification service not configured or token missing',
+ HttpStatus.SERVICE_UNAVAILABLE,
+ );
+ }
+
+ try {
+ const message: admin.messaging.Message = {
+ notification: {
+ title: payload.title,
+ body: payload.body,
+ },
+ data: this.convertDataToString(payload.data || {}),
+ token: payload.token,
+ android: {
+ priority: 'high',
+ },
+ apns: {
+ headers: {
+ 'apns-priority': '10',
+ },
+ },
+ };
+
+ const response = await admin.messaging().send(message);
+ this.logger.log(`Push notification sent successfully: ${response}`);
+
+ return {
+ success: true,
+ messageId: response,
+ };
+ } catch (error) {
+ this.logger.error(`Failed to send push notification: ${error}`);
+ return {
+ success: false,
+ error: error instanceof Error ? error.message : 'Unknown error',
+ };
+ }
+ }
+
+ async sendToMultipleTokens(payload: PushNotificationPayload): Promise {
+ if (!this.firebaseApp || !payload.tokens || payload.tokens.length === 0) {
+ throw new HttpException(
+ 'Push notification service not configured or tokens missing',
+ HttpStatus.SERVICE_UNAVAILABLE,
+ );
+ }
+
+ try {
+ const message: admin.messaging.MulticastMessage = {
+ notification: {
+ title: payload.title,
+ body: payload.body,
+ },
+ data: this.convertDataToString(payload.data || {}),
+ tokens: payload.tokens,
+ android: {
+ priority: 'high',
+ },
+ apns: {
+ headers: {
+ 'apns-priority': '10',
+ },
+ },
+ };
+
+ const response = await admin.messaging().sendEachForMulticast(message);
+ this.logger.log(`Push notifications sent: ${response.successCount} successful, ${response.failureCount} failed`);
+
+ return {
+ success: response.successCount > 0,
+ messageId: response.responses[0]?.messageId,
+ error: response.failureCount > 0 ? `${response.failureCount} notifications failed` : undefined,
+ };
+ } catch (error) {
+ this.logger.error(`Failed to send push notifications: ${error}`);
+ return {
+ success: false,
+ error: error instanceof Error ? error.message : 'Unknown error',
+ };
+ }
+ }
+
+ private convertDataToString(data: Record): Record {
+ const result: Record = {};
+ for (const [key, value] of Object.entries(data)) {
+ result[key] = typeof value === 'string' ? value : JSON.stringify(value);
+ }
+ return result;
+ }
+
+ isConfigured(): boolean {
+ return this.firebaseApp !== null;
+ }
+}
diff --git a/src/modules/notifications/services/sms.service.ts b/src/modules/notifications/services/sms.service.ts
new file mode 100644
index 0000000..996664b
--- /dev/null
+++ b/src/modules/notifications/services/sms.service.ts
@@ -0,0 +1,80 @@
+import { Injectable, HttpException, HttpStatus } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import axios from 'axios';
+import { ISmsParams, ISmsResponse, ISmsBodyParameters } from '../interfaces/sms';
+
+@Injectable()
+export class SmsService {
+ private readonly baseURL: string;
+ private readonly OTP: string;
+ private readonly apiKey: string;
+
+ constructor(
+ // private readonly httpService: HttpService,
+ private readonly configService: ConfigService,
+ ) {
+ this.baseURL = this.configService.getOrThrow('SMS_BASE_URL');
+ this.apiKey = this.configService.getOrThrow('SMS_API_KEY');
+ this.OTP = this.configService.getOrThrow('SMS_PATTERN_OTP');
+ }
+
+ sendotp(phone: string, otp: string) {
+ return this.sendSms({
+ phone,
+ parameters: { otp },
+ templateId: this.OTP,
+ });
+ }
+
+ async sendSms(params: ISmsParams) {
+ const { parameters, phone, templateId } = params;
+ const parametersArray = Object.entries(parameters ?? {}).map(([name, value]) => ({
+ name,
+ value: value.toString(),
+ }));
+ const cleanedPhone = this.formatPhone(phone);
+
+ const smsData: ISmsBodyParameters = {
+ Parameters: parametersArray,
+ Mobile: cleanedPhone,
+ TemplateId: templateId,
+ };
+
+ const url = `${this.baseURL}/send/verify`;
+
+ try {
+ const { data } = await axios.post(url, smsData, {
+ headers: {
+ 'Content-Type': 'application/json',
+ 'X-API-KEY': this.apiKey,
+ },
+ });
+ if (data.status !== 1) {
+ throw new HttpException('The SMS was not sent. Please try again later.', HttpStatus.BAD_GATEWAY);
+ }
+ return data;
+ } catch (error) {
+ console.error('SMS sending failed:', JSON.stringify(error));
+ throw new HttpException('The SMS was not sent. Please try again later.', HttpStatus.BAD_GATEWAY);
+ }
+ }
+
+ formatPhone(phone: string): string {
+ // remove spaces, dashes, parentheses
+ phone = phone.replace(/[^\d+]/g, '');
+
+ if (phone.startsWith('+98')) {
+ return phone;
+ }
+
+ if (phone.startsWith('98')) {
+ return `+${phone}`;
+ }
+
+ if (phone.startsWith('0')) {
+ return `+98${phone.slice(1)}`;
+ }
+
+ return `+98${phone}`;
+ }
+}
diff --git a/src/modules/orders/controllers/orders.controller.ts b/src/modules/orders/controllers/orders.controller.ts
new file mode 100644
index 0000000..93515f5
--- /dev/null
+++ b/src/modules/orders/controllers/orders.controller.ts
@@ -0,0 +1,120 @@
+import { Controller, Get, Post, Param, UseGuards, Patch, Query, Body } from '@nestjs/common';
+import { ApiTags, ApiOperation, ApiBearerAuth, ApiParam, ApiHeader, ApiBody } from '@nestjs/swagger';
+import { OrdersService } from '../providers/orders.service';
+import { AuthGuard } from '../../auth/guards/auth.guard';
+import { UserId } from '../../../common/decorators/user-id.decorator';
+import { RestId } from 'src/common/decorators/rest-id.decorator';
+import { AdminAuthGuard } from '../../auth/guards/adminAuth.guard';
+import { FindOrdersDto } from '../dto/find-orders.dto';
+import { OrderStatus } from '../interface/order.interface';
+import { API_HEADER_SLUG } from 'src/common/constants/index';
+import { UpdateOrderStatusDto } from '../dto/update-order-status.dto';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { Permission } from 'src/common/enums/permission.enum';
+
+@ApiTags('orders')
+@ApiBearerAuth()
+@Controller()
+export class OrdersController {
+ constructor(private readonly ordersService: OrdersService) { }
+
+ @UseGuards(AuthGuard)
+ @Post('public/checkout')
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOperation({ summary: 'Checkout : create order and payment record' })
+ checkout(@UserId() userId: string, @RestId() restaurantId: string) {
+ return this.ordersService.checkout(userId, restaurantId);
+ }
+
+ @UseGuards(AuthGuard)
+ @Get('public/orders')
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOperation({ summary: 'Get all orders with pagination and filters' })
+ findAll(@RestId() restId: string, @Query() dto: FindOrdersDto, @UserId() userId: string) {
+ return this.ordersService.findAllForUser(restId, dto, userId);
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiOperation({ summary: 'Get an order By id for User' })
+ @ApiParam({ name: 'orderId', description: 'Order ID' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('public/orders/:orderId')
+ findOne(@Param('orderId') orderId: string, @RestId() restId: string) {
+ return this.ordersService.findOne(orderId, restId);
+ }
+
+ @UseGuards(AuthGuard)
+ @Patch('public/orders/:id/:status')
+ @ApiParam({
+ name: 'status',
+ description: 'Order status',
+ enum: OrderStatus,
+ })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBody({ type: UpdateOrderStatusDto })
+ @ApiOperation({ summary: 'Update status of an order By User' })
+ @ApiParam({ name: 'id', description: 'Order ID' })
+ cancelOrder(
+ @Body() dto: UpdateOrderStatusDto,
+ @Param('id') orderId: string,
+ @Param('status') status: OrderStatus,
+ @RestId() restId: string,
+ ) {
+ return this.ordersService.changeOrderStatus(orderId, restId, status, 'user', dto?.desc);
+ }
+
+ /******************** Admin Routes **********************/
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ORDERS)
+ @Get('admin/orders')
+ @ApiOperation({ summary: 'Get all orders with pagination and filters' })
+ findAllAdmin(@RestId() restId: string, @Query() dto: FindOrdersDto) {
+ return this.ordersService.findAllForAdmin(restId, dto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ORDERS)
+ @ApiOperation({ summary: 'Get an order By id for User' })
+ @ApiParam({ name: 'orderId', description: 'Order ID' })
+ @Get('admin/orders/:orderId')
+ findOneAsAdmin(@Param('orderId') orderId: string, @RestId() restId: string) {
+ return this.ordersService.findOne(orderId, restId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ORDERS)
+ @Patch('admin/orders/:orderId/:status')
+ @ApiOperation({ summary: 'Update an order status' })
+ @ApiParam({ name: 'orderId', description: 'Order ID' })
+ @ApiBody({ type: UpdateOrderStatusDto })
+ @ApiParam({
+ name: 'status',
+ description: 'Order status',
+ enum: OrderStatus,
+ })
+ updateStatus(
+ @Param('orderId') orderId: string,
+ @Body() dto: UpdateOrderStatusDto,
+ @Param('status') status: OrderStatus,
+ @RestId() restId: string,
+ ) {
+ return this.ordersService.changeOrderStatus(orderId, restId, status, 'admin', dto?.desc);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.VIEW_REPORTS)
+ @ApiOperation({ summary: 'Get Stats for report page' })
+ @Get('admin/orders/stats')
+ findStats(@RestId() restId: string) {
+ return this.ordersService.getStats(restId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.VIEW_REPORTS)
+ @ApiOperation({ summary: 'Get food sales pie chart data for last month' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('admin/orders/food-sales-pie-chart')
+ getFoodSalesPieChart(@RestId() restId: string) {
+ return this.ordersService.getFoodSalesPieChart(restId);
+ }
+}
diff --git a/src/modules/orders/crone/order.crone.ts b/src/modules/orders/crone/order.crone.ts
new file mode 100644
index 0000000..b183cc9
--- /dev/null
+++ b/src/modules/orders/crone/order.crone.ts
@@ -0,0 +1,187 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { Cron } from '@nestjs/schedule';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { EventEmitter2 } from '@nestjs/event-emitter';
+import { Payment } from '../../payments/entities/payment.entity';
+import { PaymentMethodEnum, PaymentStatusEnum } from '../../payments/interface/payment';
+import { InventoryService } from '../../inventory/inventory.service';
+import { OrderStatus } from '../interface/order.interface';
+import { Order } from '../entities/order.entity';
+import { OrderStatusChangedEvent } from '../events/order.events';
+
+@Injectable()
+export class OrdersCrone {
+ private readonly logger = new Logger(OrdersCrone.name);
+
+ constructor(
+ private readonly em: EntityManager,
+ private readonly inventoryService: InventoryService,
+ private readonly eventEmitter: EventEmitter2,
+ ) { }
+
+ // run every minute and fail pending online payments older than 15 minutes
+ @Cron('*/1 * * * *', {
+ name: 'failOldOnlinePayments',
+ timeZone: 'UTC',
+ })
+ async cancelOldOnlinePendingOrders() {
+ try {
+ const cutoff = new Date(Date.now() - 15 * 60 * 1000);
+
+ this.logger.debug('Searching for pending online payments older than 15 minutes');
+
+ const payments = await this.em.find(
+ Payment,
+ {
+ method: PaymentMethodEnum.Online,
+ status: PaymentStatusEnum.Pending,
+ createdAt: { $lte: cutoff },
+ },
+ { populate: ['order', 'order.items', 'order.items.food'] },
+ );
+
+ if (!payments || payments.length === 0) {
+ return;
+ }
+
+ this.logger.log(`Found ${payments.length} stale pending online payments`);
+
+ for (const p of payments) {
+ try {
+ await this.em.transactional(async em => {
+ // reload inside transaction to avoid concurrency issues
+ const payment = await em.findOne(
+ Payment,
+ { id: p.id },
+ { populate: ['order', 'order.items', 'order.items.food'] },
+ );
+ if (!payment) return;
+ if (payment.status !== PaymentStatusEnum.Pending) return;
+
+ payment.status = PaymentStatusEnum.Failed;
+ payment.failedAt = new Date();
+
+ if (payment.order) {
+ payment.order.status = OrderStatus.CANCELED;
+
+ // prepare restore payload
+ const items = (payment.order as any).items || [];
+ const restorePayload = {
+ items: items.map((it: any) => ({ foodId: it.food.id, quantity: it.quantity })),
+ };
+
+ if (restorePayload.items.length > 0) {
+ await this.inventoryService.restoreToInventory(em, restorePayload);
+ }
+ }
+
+ em.persist(payment);
+ if (payment.order) em.persist(payment.order);
+ await em.flush();
+ this.logger.log(
+ `Marked payment ${payment.id} and order ${payment.order?.id} as failed and restored inventory`,
+ );
+ });
+ } catch (err) {
+ this.logger.error(`Error processing payment ${p.id}: ${err.message}`, err.stack);
+ }
+ }
+ } catch (err) {
+ this.logger.error(`OrdersCrone failed: ${err.message}`, err.stack);
+ }
+ }
+
+ // run every 15 minutes to complete orders that have been in shipped/delivered statuses for more than 3 hours
+ @Cron('*/15 * * * *', {
+ name: 'completeOldDeliveredOrders',
+ timeZone: 'UTC',
+ })
+ async completeOldDeliveredOrders() {
+ try {
+ const cutoff = new Date(Date.now() - 3 * 60 * 60 * 1000); // 3 hours ago
+
+ this.logger.debug('Searching for orders in shipped/delivered statuses older than 3 hours');
+
+ const orders = await this.em.find(
+ Order,
+ {
+ status: {
+ $in: [
+ OrderStatus.SHIPPED,
+ OrderStatus.DELIVERED_TO_WAITER,
+ OrderStatus.DELIVERED_TO_RECEPTIONIST,
+ ],
+ },
+ updatedAt: { $lte: cutoff },
+ },
+ { populate: ['restaurant'] },
+ );
+
+ if (!orders || orders.length === 0) {
+ return;
+ }
+
+ this.logger.log(`Found ${orders.length} orders to mark as completed`);
+
+ for (const order of orders) {
+ try {
+ await this.em.transactional(async em => {
+ // reload inside transaction to avoid concurrency issues
+ const reloadedOrder = await em.findOne(
+ Order,
+ { id: order.id },
+ { populate: ['restaurant', 'user'] },
+ );
+ if (!reloadedOrder) return;
+ if (
+ ![
+ OrderStatus.SHIPPED,
+ OrderStatus.DELIVERED_TO_WAITER,
+ OrderStatus.DELIVERED_TO_RECEPTIONIST,
+ ].includes(reloadedOrder.status)
+ ) {
+ return;
+ }
+
+ const previousStatus = reloadedOrder.status;
+ const restaurantId =
+ typeof reloadedOrder.restaurant === 'string'
+ ? reloadedOrder.restaurant
+ : reloadedOrder.restaurant.id;
+
+ // Update order status and history
+ reloadedOrder.status = OrderStatus.COMPLETED;
+ reloadedOrder.history.push({
+ status: OrderStatus.COMPLETED,
+ changedAt: new Date(),
+ desc: 'تکمیل سفارش توسط سیستم',
+ });
+
+ em.persist(reloadedOrder);
+ await em.flush();
+
+ // // Emit event after transaction completes
+ this.eventEmitter.emit(
+ OrderStatusChangedEvent.name,
+ new OrderStatusChangedEvent(
+ reloadedOrder.id,
+ reloadedOrder.user?.id || '',
+ String(reloadedOrder.orderNumber) || '',
+ restaurantId,
+ previousStatus,
+ OrderStatus.COMPLETED,
+ 'admin',
+ ),
+ );
+
+ this.logger.log(`Marked order ${reloadedOrder.id} as completed`);
+ });
+ } catch (err) {
+ this.logger.error(`Error processing order ${order.id}: ${err.message}`, err.stack);
+ }
+ }
+ } catch (err) {
+ this.logger.error(`completeOldDeliveredOrders cron failed: ${err.message}`, err.stack);
+ }
+ }
+}
diff --git a/src/modules/orders/dto/find-orders.dto.ts b/src/modules/orders/dto/find-orders.dto.ts
new file mode 100644
index 0000000..1ab7404
--- /dev/null
+++ b/src/modules/orders/dto/find-orders.dto.ts
@@ -0,0 +1,83 @@
+import {
+ IsOptional,
+ IsString,
+ IsNumber,
+ Min,
+ IsIn,
+ IsEnum,
+ IsDateString,
+ IsArray,
+} from 'class-validator';
+import { Type, Transform } from 'class-transformer';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { OrderStatus } from '../interface/order.interface';
+import { PaymentStatusEnum } from '../../payments/interface/payment';
+
+const sortOrderOptions = ['asc', 'desc'] as const;
+type SortOrder = (typeof sortOrderOptions)[number];
+
+export class FindOrdersDto {
+ @ApiPropertyOptional({ default: 1, minimum: 1 })
+ @IsOptional()
+ @Type(() => Number)
+ @IsNumber()
+ @Min(1)
+ page: number = 1;
+
+ @ApiPropertyOptional({ default: 10, minimum: 1 })
+ @IsOptional()
+ @Type(() => Number)
+ @IsNumber()
+ @Min(1)
+ limit: number = 10;
+
+ /**
+ * ?statuses=paid,confirmed
+ * ?statuses=paid&statuses=confirmed
+ */
+ @ApiPropertyOptional({
+ description: 'Filter by order statuses',
+ enum: OrderStatus,
+ isArray: true,
+ })
+ @IsOptional()
+ @Transform(({ value }) =>
+ Array.isArray(value) ? value : value?.split(',')
+ )
+ @IsArray()
+ @IsEnum(OrderStatus, { each: true })
+ statuses?: OrderStatus[];
+
+ @ApiPropertyOptional({ enum: PaymentStatusEnum })
+ @IsOptional()
+ @IsEnum(PaymentStatusEnum)
+ paymentStatus?: PaymentStatusEnum;
+
+ @ApiPropertyOptional()
+ @IsOptional()
+ @IsString()
+ search?: string;
+
+ @ApiPropertyOptional({ format: 'date-time' })
+ @IsOptional()
+ @IsDateString()
+ startDate?: string;
+
+ @ApiPropertyOptional({ format: 'date-time' })
+ @IsOptional()
+ @IsDateString()
+ endDate?: string;
+
+ @ApiPropertyOptional({ default: 'createdAt' })
+ @IsOptional()
+ @IsString()
+ orderBy: string = 'createdAt';
+
+ @ApiPropertyOptional({
+ enum: sortOrderOptions,
+ default: 'desc',
+ })
+ @IsOptional()
+ @IsIn(sortOrderOptions)
+ order: SortOrder = 'desc';
+}
diff --git a/src/modules/orders/dto/update-order-status.dto.ts b/src/modules/orders/dto/update-order-status.dto.ts
new file mode 100644
index 0000000..e4026bf
--- /dev/null
+++ b/src/modules/orders/dto/update-order-status.dto.ts
@@ -0,0 +1,10 @@
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { IsOptional, IsString } from 'class-validator';
+export class UpdateOrderStatusDto {
+ @ApiPropertyOptional({
+ description: 'Change Status description',
+ })
+ @IsOptional()
+ @IsString()
+ desc?: string;
+}
diff --git a/src/modules/orders/dto/update-order.dto.ts b/src/modules/orders/dto/update-order.dto.ts
new file mode 100644
index 0000000..e64eebc
--- /dev/null
+++ b/src/modules/orders/dto/update-order.dto.ts
@@ -0,0 +1,5 @@
+// import { PartialType } from '@nestjs/swagger';
+// import { CreateOrderDto } from './create-order.dto';
+
+// export class UpdateOrderDto extends PartialType(CreateOrderDto) {}
+export class UpdateOrderDto {}
diff --git a/src/modules/orders/entities/order-item.entity.ts b/src/modules/orders/entities/order-item.entity.ts
new file mode 100644
index 0000000..8c996ab
--- /dev/null
+++ b/src/modules/orders/entities/order-item.entity.ts
@@ -0,0 +1,27 @@
+import { Entity, Index, ManyToOne, Property } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Order } from './order.entity';
+import { Food } from '../../foods/entities/food.entity';
+
+@Entity({ tableName: 'order_items' })
+@Index({ properties: ['order'] })
+@Index({ properties: ['food'] })
+export class OrderItem extends BaseEntity {
+ @ManyToOne(() => Order)
+ order!: Order;
+
+ @ManyToOne(() => Food)
+ food!: Food;
+
+ @Property({ type: 'int' })
+ quantity!: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ unitPrice!: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ discount: number = 0;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ totalPrice!: number;
+}
diff --git a/src/modules/orders/entities/order.entity.ts b/src/modules/orders/entities/order.entity.ts
new file mode 100644
index 0000000..592627b
--- /dev/null
+++ b/src/modules/orders/entities/order.entity.ts
@@ -0,0 +1,130 @@
+import {
+ Entity,
+ Index,
+ ManyToOne,
+ OneToMany,
+ Property,
+ Collection,
+ Cascade,
+ Enum,
+ BeforeCreate,
+ Unique,
+ type EventArgs,
+} from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { OrderCouponDetail, OrderStatus } from '../interface/order.interface';
+import { User } from '../../users/entities/user.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { PaymentMethod } from '../../payments/entities/payment-method.entity';
+import { OrderItem } from './order-item.entity';
+import { Delivery } from '../../delivery/entities/delivery.entity';
+import { OrderUserAddress, OrderCarAddress } from '../interface/order.interface';
+import { Payment } from 'src/modules/payments/entities/payment.entity';
+
+@Entity({ tableName: 'orders' })
+@Unique({ properties: ['restaurant', 'orderNumber'] })
+@Index({ properties: ['restaurant', 'status'] })
+@Index({ properties: ['user', 'status'] })
+@Index({ properties: ['restaurant', 'orderNumber'] })
+@Index({ properties: ['status'] })
+export class Order extends BaseEntity {
+ @ManyToOne(() => User)
+ user!: User;
+
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @ManyToOne(() => Delivery)
+ deliveryMethod!: Delivery;
+
+ @OneToMany(() => Payment, payment => payment.order, {
+ cascade: [Cascade.ALL],
+ orphanRemoval: true,
+ })
+ payments = new Collection(this);
+
+ @OneToMany(() => OrderItem, item => item.order, {
+ cascade: [Cascade.ALL],
+ orphanRemoval: true,
+ })
+ items = new Collection(this);
+
+ @Property({ type: 'json', nullable: true })
+ userAddress?: OrderUserAddress | null;
+ // for car delivery
+ @Property({ type: 'json', nullable: true })
+ carAddress?: OrderCarAddress | null;
+
+ @ManyToOne(() => PaymentMethod)
+ paymentMethod: PaymentMethod;
+
+ @Property({ type: 'int', nullable: true })
+ orderNumber?: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ couponDiscount: number = 0;
+
+ @Property({ type: 'jsonb', nullable: true })
+ couponDetail?: OrderCouponDetail | null;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ itemsDiscount: number = 0;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ totalDiscount: number = 0;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ subTotal!: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ tax: number = 0;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0, default: 0 })
+ deliveryFee: number = 0;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ total!: number;
+
+ @Property({ type: 'int', default: 0 })
+ totalItems: number = 0;
+
+ @Property({ type: 'text', nullable: true })
+ description?: string;
+
+ @Property({ nullable: true })
+ tableNumber?: string;
+
+ @Enum(() => OrderStatus)
+ status!: OrderStatus;
+
+ @Property({ type: 'json', nullable: true })
+ history: Array<{ status: OrderStatus; changedAt: Date; desc: string | null }> = [];
+
+ @BeforeCreate()
+ async generateOrderNumber(args: EventArgs) {
+ const em = args.em;
+ const order = args.entity;
+
+ // Ensure restaurant is loaded
+ if (!order.restaurant) {
+ throw new Error('Restaurant must be set before creating order');
+ }
+
+ // Get the restaurant ID (handle both entity and ID cases)
+ const restaurantId = typeof order.restaurant === 'string' ? order.restaurant : order.restaurant.id;
+
+ // Query for max orderNumber for this restaurant
+ // Using findOne with orderBy to get the highest order number
+ const maxOrder = await em.findOne(
+ Order,
+ { restaurant: restaurantId },
+ {
+ orderBy: { orderNumber: 'DESC' },
+ fields: ['orderNumber'],
+ },
+ );
+
+ // Set the next order number (1 if no orders exist, otherwise max + 1)
+ order.orderNumber = maxOrder?.orderNumber ? maxOrder.orderNumber + 1 : 1;
+ }
+}
diff --git a/src/modules/orders/events/order.events.ts b/src/modules/orders/events/order.events.ts
new file mode 100644
index 0000000..5348149
--- /dev/null
+++ b/src/modules/orders/events/order.events.ts
@@ -0,0 +1,22 @@
+import type { OrderStatus, StatusTransitionRef } from '../interface/order.interface';
+
+export class OrderCreatedEvent {
+ constructor(
+ public readonly orderId: string,
+ public readonly restaurantId: string,
+ public readonly orderNumber: string,
+ public readonly total: number,
+ ) {}
+}
+
+export class OrderStatusChangedEvent {
+ constructor(
+ public readonly orderId: string,
+ public readonly userId: string,
+ public readonly orderNumber: string,
+ public readonly restaurantId: string,
+ public readonly previousStatus: OrderStatus,
+ public readonly newStatus: OrderStatus,
+ public readonly changedBy: StatusTransitionRef,
+ ) {}
+}
diff --git a/src/modules/orders/interface/order.interface.ts b/src/modules/orders/interface/order.interface.ts
new file mode 100644
index 0000000..d9d1a6c
--- /dev/null
+++ b/src/modules/orders/interface/order.interface.ts
@@ -0,0 +1,42 @@
+import type { CouponType } from 'src/modules/coupons/interface/coupon';
+
+export interface OrderUserAddress {
+ address?: string;
+ latitude?: number;
+ longitude?: number;
+ city: string;
+ province: string;
+ postalCode?: string;
+ fullName: string;
+ phone: string;
+}
+
+export interface OrderCarAddress {
+ carModel: string;
+ carColor: string;
+ plateNumber: string;
+ phone: string;
+}
+
+export enum OrderStatus {
+ PENDING_PAYMENT = 'pendingPayment',
+ PAID = 'paid',
+ PREPARING = 'preparing',
+ DELIVERED_TO_WAITER = 'deliveredToWaiter',
+ DELIVERED_TO_RECEPTIONIST = 'deliveredToReceptionist',
+ SHIPPED = 'shipped',
+ COMPLETED = 'completed',
+ CANCELED = 'canceled',
+}
+
+export interface OrderCouponDetail {
+ couponId: string;
+ couponName: string;
+ couponCode: string;
+ type: CouponType;
+ value: number;
+
+ maxDiscount?: number;
+}
+
+export type StatusTransitionRef = 'user' | 'admin';
diff --git a/src/modules/orders/listeners/order.listeners.ts b/src/modules/orders/listeners/order.listeners.ts
new file mode 100644
index 0000000..4495d74
--- /dev/null
+++ b/src/modules/orders/listeners/order.listeners.ts
@@ -0,0 +1,213 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { OnEvent } from '@nestjs/event-emitter';
+import { AdminRepository } from 'src/modules/admin/repositories/admin.repository';
+import { OrderCreatedEvent, OrderStatusChangedEvent } from '../events/order.events';
+import { Permission } from 'src/common/enums/permission.enum';
+import { NotifTitleEnum } from 'src/modules/notifications/interfaces/notification.interface';
+import { NotificationService } from 'src/modules/notifications/services/notification.service';
+import { ConfigService } from '@nestjs/config';
+import { OrderRepository } from '../repositories/order.repository';
+import { OrderStatus } from '../interface/order.interface';
+import { PaymentMethodEnum } from 'src/modules/payments/interface/payment';
+import { UserService } from 'src/modules/users/providers/user.service';
+import { WalletTransactionReason, WalletTransactionType } from 'src/modules/users/interface/wallet';
+
+@Injectable()
+export class OrderListeners {
+ private readonly logger = new Logger(OrderListeners.name);
+ private orderCreatedSmsTemplateId: string;
+ private orderStatusChangedSmsTemplateId: string;
+ // private orderCompletedSmsTemplateId: string;
+ constructor(
+ private readonly adminService: AdminRepository,
+ private readonly OrderRepository: OrderRepository,
+ private readonly notificationService: NotificationService,
+ private readonly configService: ConfigService,
+ private readonly userService: UserService,
+ ) {
+ this.orderCreatedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_CREATED') ?? '123';
+ this.orderStatusChangedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_STATUS_CHANGE') ?? '123';
+ // this.orderCompletedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_STATUS_COMPLETED') ?? '123';
+ }
+
+ private getStatusFarsi(status: OrderStatus): string {
+ const statusMap: Record = {
+ [OrderStatus.PENDING_PAYMENT]: 'در انتظار پرداخت',
+ [OrderStatus.PAID]: 'پرداخت شده',
+ [OrderStatus.PREPARING]: 'در حال آمادهسازی',
+ [OrderStatus.DELIVERED_TO_RECEPTIONIST]: 'تحویل به پذیرش',
+ [OrderStatus.DELIVERED_TO_WAITER]: 'تحویل به گارسون',
+ [OrderStatus.SHIPPED]: 'ارسال شده',
+ [OrderStatus.COMPLETED]: 'تکمیل شده',
+ [OrderStatus.CANCELED]: 'لغو شده',
+ };
+ return statusMap[status] || status;
+ }
+
+ @OnEvent(OrderCreatedEvent.name)
+ async handleOrderCreated(event: OrderCreatedEvent) {
+ try {
+ this.logger.log(
+ `Order created event received: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ );
+
+ const order = await this.OrderRepository.findOne(event.orderId);
+ if (order?.paymentMethod.method === PaymentMethodEnum.Online) {
+ return;
+ }
+
+
+ // get admnin os restuaraant that have order permissuins
+ const admins = await this.adminService.findAdminsWithPermission(event.restaurantId, Permission.MANAGE_ORDERS);
+ const recipients = admins.map(admin => ({
+ adminId: admin.id,
+ }));
+
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.ORDER_CREATED,
+ content: `سفارش شماره ${event.orderNumber} با مبلغ ${event.total} تومان با موفقیت ایجاد شد`,
+ sms: {
+ templateId: this.orderCreatedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+ total: event.total.toString(),
+ },
+ },
+ pushNotif: {
+ title: `سفارش جدید`,
+ content: `سفارش شماره ${event.orderNumber} با مبلغ ${event.total} تومان با موفقیت ایجاد شد`,
+ icon: `/`,
+ action: {
+ type: NotifTitleEnum.ORDER_CREATED,
+ url: `/`,
+ },
+ },
+ },
+ recipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+ } catch (error) {
+ this.logger.error(
+ `Failed to send notification for order created event: ${event.restaurantId}`,
+ error instanceof Error ? error.stack : String(error),
+ );
+ }
+ }
+
+ @OnEvent(OrderStatusChangedEvent.name)
+ async handleOrderStatusChanged(event: OrderStatusChangedEvent) {
+ try {
+ this.logger.log(
+ `Order status changed event received: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ );
+ //TODO : REFACTOR to use queue or other way to handle this
+ const recipients = [
+ {
+ userId: event.userId,
+ },
+ ];
+ if (event.newStatus === OrderStatus.COMPLETED) {
+
+ if (!event?.userId) {
+ this.logger.log(
+ `User not found for order: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ );
+ }
+
+ // const restaurant = await this.RestaurantRepository.findOne(event.restaurantId);
+ // if (!restaurant) {
+ // this.logger.log(
+ // `Restaurant not found for order: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ // );
+ // return;
+ // }
+ // const score = restaurant.score;
+ // if (!score) {
+ // this.logger.log(
+ // `Score not found for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ // );
+ // return;
+ // }
+
+ // increase score for user
+ // const order = await this.OrderRepository.findOne(event.orderId);
+ // if (!order) {
+ // this.logger.log(
+ // `Order not found for order: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ // );
+ // return;
+ // }
+ // this.userService.createWalletTransaction(event.userId, event.restaurantId, {
+ // amount: order.subTotal,
+ // type: WalletTransactionType.CREDIT,
+ // reason: WalletTransactionReason.ORDER_COMPLETED_DEPOSIT,
+ // });
+
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.ORDER_STATUS_CHANGED,
+ content: `لطفابرای ثبت نظر سفارش ${event.orderNumber} به اپ مراجعه کنید`,
+ sms: {
+ templateId: this.orderCreatedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+ },
+ },
+ pushNotif: {
+ title: `تغییر وضعیت سفارش`,
+ content: `لطفا برای ثبت نظر سفارش ${event.orderNumber} به اپ مراجعه کنید`,
+ icon: `/`,
+ action: {
+ type: NotifTitleEnum.ORDER_STATUS_CHANGED,
+ url: ``,
+ },
+ },
+ },
+ recipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+ } else {
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.ORDER_STATUS_CHANGED,
+ content: `وضعیت سفارش شماره ${event.orderNumber} به ${this.getStatusFarsi(event.newStatus)} تغییر کرد`,
+ sms: {
+ templateId: this.orderStatusChangedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+ status: this.getStatusFarsi(event.newStatus),
+ },
+ },
+ pushNotif: {
+ title: `تغییر وضعیت سفارش`,
+ content: `وضعیت سفارش شماره ${event.orderNumber} به ${this.getStatusFarsi(event.newStatus)} تغییر کرد`,
+ icon: `/`,
+ action: {
+ type: NotifTitleEnum.ORDER_STATUS_CHANGED,
+ url: ``,
+ },
+ },
+ },
+ recipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+ }
+ } catch (error) {
+ this.logger.error(
+ `Failed to send notification for order status changed event: ${event.restaurantId}`,
+ error instanceof Error ? error.stack : String(error),
+ );
+ }
+ }
+
+}
diff --git a/src/modules/orders/orders.module.ts b/src/modules/orders/orders.module.ts
new file mode 100644
index 0000000..6208faf
--- /dev/null
+++ b/src/modules/orders/orders.module.ts
@@ -0,0 +1,42 @@
+import { Module, forwardRef } from '@nestjs/common';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { OrdersService } from './providers/orders.service';
+import { OrdersController } from './controllers/orders.controller';
+import { Order } from './entities/order.entity';
+import { OrderItem } from './entities/order-item.entity';
+import { User } from '../users/entities/user.entity';
+import { Restaurant } from '../restaurants/entities/restaurant.entity';
+import { Food } from '../foods/entities/food.entity';
+import { UserAddress } from '../users/entities/user-address.entity';
+import { PaymentMethod } from '../payments/entities/payment-method.entity';
+import { CartModule } from '../cart/cart.module';
+import { UtilsModule } from '../utils/utils.module';
+import { AuthModule } from '../auth/auth.module';
+import { PaymentsModule } from '../payments/payments.module';
+import { JwtModule } from '@nestjs/jwt';
+import { OrderRepository } from './repositories/order.repository';
+import { OrderListeners } from './listeners/order.listeners';
+import { OrdersCrone } from './crone/order.crone';
+import { AdminModule } from '../admin/admin.module';
+import { NotificationsModule } from '../notifications/notifications.module';
+import { InventoryModule } from '../inventory/inventory.module';
+import { UserModule } from '../users/user.module';
+
+@Module({
+ imports: [
+ MikroOrmModule.forFeature([Order, OrderItem, User, Restaurant, Food, UserAddress, PaymentMethod]),
+ CartModule,
+ UtilsModule,
+ AuthModule,
+ forwardRef(() => PaymentsModule),
+ JwtModule,
+ AdminModule,
+ NotificationsModule,
+ InventoryModule,
+ forwardRef(() => UserModule)
+ ],
+ controllers: [OrdersController],
+ providers: [OrdersService, OrderRepository, OrderListeners, OrdersCrone],
+ exports: [OrderRepository, OrdersService],
+})
+export class OrdersModule { }
diff --git a/src/modules/orders/providers/orders.service.ts b/src/modules/orders/providers/orders.service.ts
new file mode 100644
index 0000000..62b4489
--- /dev/null
+++ b/src/modules/orders/providers/orders.service.ts
@@ -0,0 +1,601 @@
+import { Injectable, NotFoundException, BadRequestException, Logger } from '@nestjs/common';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { Order } from '../entities/order.entity';
+import { OrderItem } from '../entities/order-item.entity';
+import { User } from '../../users/entities/user.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { Food } from '../../foods/entities/food.entity';
+import { CartService } from '../../cart/providers/cart.service';
+import { OrderStatus, OrderUserAddress, OrderCarAddress } from '../interface/order.interface';
+import { PaymentMethodEnum, PaymentStatusEnum } from '../../payments/interface/payment';
+import { Cart } from '../../cart/interfaces/cart.interface';
+import { PaymentMethod } from '../../payments/entities/payment-method.entity';
+import { PaymentsService } from '../../payments/services/payments.service';
+import { DeliveryMethodEnum } from '../../delivery/interface/delivery';
+import { Delivery } from '../../delivery/entities/delivery.entity';
+import { OrderRepository } from '../repositories/order.repository';
+import { FindOrdersDto } from '../dto/find-orders.dto';
+import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
+import { Payment } from 'src/modules/payments/entities/payment.entity';
+import { InventoryService } from 'src/modules/inventory/inventory.service';
+import { BulkReserveFoodDto } from 'src/modules/inventory/dto/bulk-reserve-food.dto';
+import { StatusTransitionRef } from '../interface/order.interface';
+import { EventEmitter2 } from '@nestjs/event-emitter';
+import { OrderCreatedEvent, OrderStatusChangedEvent } from '../events/order.events';
+import { OrderMessage } from 'src/common/enums/message.enum';
+type OrderItemData = { food: Food; quantity: number; unitPrice: number; discount: number };
+
+type ValidatedCartForOrder = {
+ user: User;
+ restaurant: Restaurant;
+ delivery: Delivery;
+ userAddress: OrderUserAddress | null;
+ carAddress: OrderCarAddress | null;
+ paymentMethod: PaymentMethod;
+ orderItemsData: OrderItemData[];
+};
+
+@Injectable()
+export class OrdersService {
+ private readonly logger = new Logger(OrdersService.name);
+
+ private static readonly STATUS_TRANSITIONS: Record = {
+ [OrderStatus.PENDING_PAYMENT]: [OrderStatus.PAID, OrderStatus.CANCELED, OrderStatus.PREPARING],
+ [OrderStatus.PAID]: [OrderStatus.PREPARING, OrderStatus.CANCELED],
+ [OrderStatus.PREPARING]: [OrderStatus.DELIVERED_TO_RECEPTIONIST, OrderStatus.DELIVERED_TO_WAITER, OrderStatus.SHIPPED, OrderStatus.CANCELED],
+ [OrderStatus.DELIVERED_TO_WAITER]: [OrderStatus.COMPLETED, OrderStatus.CANCELED],
+ [OrderStatus.DELIVERED_TO_RECEPTIONIST]: [OrderStatus.COMPLETED, OrderStatus.CANCELED],
+ [OrderStatus.SHIPPED]: [OrderStatus.COMPLETED, OrderStatus.CANCELED],
+ [OrderStatus.COMPLETED]: [OrderStatus.CANCELED],
+ [OrderStatus.CANCELED]: [],
+ };
+
+ constructor(
+ private readonly em: EntityManager,
+ private readonly cartService: CartService,
+ private readonly orderRepository: OrderRepository,
+ private readonly paymentsService: PaymentsService,
+ private readonly inventoryService: InventoryService,
+ private readonly eventEmitter: EventEmitter2,
+ ) { }
+
+ async checkout(userId: string, restaurantId: string) {
+ const cart = await this.cartService.findOneOrFail(userId, restaurantId);
+ const validated = await this.validateCartForOrder(userId, restaurantId, cart);
+
+ const order = await this.em.transactional(async em => {
+ const order = em.create(Order, {
+ user: validated.user,
+ restaurant: validated.restaurant,
+ deliveryMethod: validated.delivery,
+ userAddress: validated.userAddress,
+ carAddress: validated.carAddress,
+ paymentMethod: validated.paymentMethod,
+ couponDiscount: cart.couponDiscount || 0,
+ couponDetail: cart.coupon,
+ itemsDiscount: cart.itemsDiscount || 0,
+ totalDiscount: cart.totalDiscount || 0,
+ subTotal: cart.subTotal || 0,
+ tax: cart.tax || 0,
+ deliveryFee: cart.deliveryFee || 0,
+ total: cart.total || 0,
+ totalItems: cart.totalItems || 0,
+ description: cart.description,
+ tableNumber: cart.tableNumber,
+ status: OrderStatus.PENDING_PAYMENT,
+ history: [{ status: OrderStatus.PENDING_PAYMENT, changedAt: new Date() }],
+ });
+
+ em.persist(order);
+
+ for (const itemData of validated.orderItemsData) {
+ const { food, quantity, unitPrice, discount } = itemData;
+
+ this.assertFoodHasSufficientStock(food, quantity);
+
+ const totalPrice = (unitPrice - discount) * quantity;
+
+ const orderItem = em.create(OrderItem, {
+ order,
+ food,
+ quantity,
+ unitPrice,
+ discount,
+ totalPrice,
+ });
+
+ em.persist(orderItem);
+ }
+
+ const payment = em.create(Payment, {
+ order,
+ amount: order.total,
+ status: PaymentStatusEnum.Pending,
+ method: order.paymentMethod.method,
+ gateway: order.paymentMethod.gateway ?? null,
+ });
+
+ em.persist(payment);
+ // reserve stock based on payment method.
+ const bulkReserveFoodDto: BulkReserveFoodDto = {
+ items: validated.orderItemsData.map(item => ({
+ foodId: item.food.id,
+ quantity: item.quantity,
+ })),
+ };
+ await this.inventoryService.deductFromInventory(em, bulkReserveFoodDto);
+ await em.flush();
+ this.logger.debug(`Order ${order.id} created for user ${userId} (restaurant ${restaurantId})`);
+ return order;
+ });
+
+ await this.cartService.clearCart(userId, restaurantId);
+
+ const { paymentUrl } = await this.paymentsService.payOrder(order.id);
+ this.eventEmitter.emit(
+ OrderCreatedEvent.name,
+ new OrderCreatedEvent(order.id, restaurantId, String(order?.orderNumber) || '', order.total),
+ );
+
+ return { paymentUrl, order };
+ }
+
+ /**
+ * Validates cart and prepares all required data for order creation
+ */
+ private async validateCartForOrder(userId: string, restaurantId: string, cart: Cart): Promise {
+ this.assertCartHasItems(cart);
+ this.assertCartHasDeliveryMethod(cart);
+ this.assertCartHasPaymentMethod(cart);
+
+ const [user, restaurant, delivery] = await Promise.all([
+ this.getUserOrFail(userId),
+ this.getRestaurantOrFail(restaurantId),
+ this.getDeliveryOrFail(cart.deliveryMethodId!),
+ ]);
+
+ this.assertMeetsMinOrderForDelivery(cart, delivery);
+ this.assertDeliveryMethodRequirements(cart, delivery);
+
+ const paymentMethod = await this.getPaymentMethodOrFail(cart.paymentMethodId!, restaurantId);
+ this.assertPaymentMethodEnabled(paymentMethod);
+
+ const orderItemsData = await this.buildOrderItemsData(cart, restaurantId);
+
+ return {
+ user,
+ restaurant,
+ delivery,
+ paymentMethod,
+ userAddress: delivery.method === DeliveryMethodEnum.DeliveryCourier ? (cart?.userAddress ?? null) : null,
+ carAddress: delivery.method === DeliveryMethodEnum.DeliveryCar ? (cart?.carAddress ?? null) : null,
+ orderItemsData,
+ };
+ }
+
+ async findAllForUser(restId: string, dto: FindOrdersDto, userId: string): Promise> {
+ const result = await this.orderRepository.findAllPaginated(restId, {
+ page: dto.page,
+ limit: dto.limit,
+ statuses: dto.statuses,
+ paymentStatus: dto.paymentStatus,
+ search: dto.search,
+ startDate: dto.startDate,
+ endDate: dto.endDate,
+ orderBy: dto.orderBy,
+ order: dto.order,
+ userId,
+ });
+
+ return result;
+ }
+
+ async findAllForAdmin(restId: string, dto: FindOrdersDto): Promise> {
+ const result = await this.orderRepository.findAllPaginated(restId, {
+ page: dto.page,
+ limit: dto.limit,
+ statuses: dto.statuses,
+ paymentStatus: dto.paymentStatus,
+ search: dto.search,
+ startDate: dto.startDate,
+ endDate: dto.endDate,
+ orderBy: dto.orderBy,
+ order: dto.order,
+ excludeOnlinePendingPayment: true,
+ });
+
+ return result;
+ }
+
+ async findOne(id: string, restId: string): Promise {
+ const order = await this.orderRepository.findOne(
+ { id, restaurant: { id: restId } },
+ {
+ populate: [
+ 'user',
+ 'restaurant',
+ 'deliveryMethod',
+ 'userAddress',
+ 'carAddress',
+ 'paymentMethod',
+ 'payments',
+ 'items',
+ 'items.food',
+ ],
+ },
+ );
+ if (!order) {
+ throw new NotFoundException(OrderMessage.NOT_FOUND);
+ }
+ return order;
+ }
+
+
+
+ async changeOrderStatus(
+ orderId: string,
+ restId: string,
+ toStatus: OrderStatus,
+ ref: StatusTransitionRef,
+ desc?: string,
+ ): Promise {
+ const order = await this.getOrderOrFail(orderId, restId);
+
+ // Store previous status before changing it
+ const previousStatus = order.status;
+
+ this.assertStatusTransitionAllowed(order, toStatus, ref);
+
+ order.status = toStatus;
+ order.history.push({ status: toStatus, changedAt: new Date(), desc: desc || null });
+ await this.em.persistAndFlush(order);
+
+ this.eventEmitter.emit(
+ OrderStatusChangedEvent.name,
+ new OrderStatusChangedEvent(
+ orderId,
+ order.user?.id || '',
+ String(order?.orderNumber) || '',
+ restId,
+ previousStatus,
+ toStatus,
+ ref,
+ ),
+ );
+ return order;
+ }
+ /* Helpers */
+ private assertStatusTransitionAllowed(order: Order, to: OrderStatus, ref: StatusTransitionRef) {
+ const paymentMethod = order.paymentMethod?.method;
+ if (!paymentMethod) {
+ throw new BadRequestException(OrderMessage.PAYMENT_METHOD_MISSING);
+ }
+
+ if (!this.canTransition(order.status, to, paymentMethod, ref, order.deliveryMethod.method)) {
+ throw new BadRequestException(OrderMessage.INVALID_STATUS_TRANSITION);
+ }
+ }
+
+ private canTransition(from: OrderStatus, to: OrderStatus, paymentMethod: PaymentMethodEnum, ref: 'user' | 'admin', deliveryMethod: DeliveryMethodEnum) {
+ if (!OrdersService.STATUS_TRANSITIONS[from]?.includes(to)) return false;
+
+ if (to === OrderStatus.CANCELED) {
+ // only allow orders with status of PENDING_PAYMENT and PAID are allowed to be canceled by user
+ if (ref === 'user' && ![OrderStatus.PENDING_PAYMENT, OrderStatus.PAID].includes(from)) {
+ return false;
+ } else if (ref === 'admin') {
+ return true;
+ }
+ }
+ // only allow orders with status of PENDING_PAYMENT and payment
+ // method of cash are allowed to move to CONFIRMED directly
+ if (
+ from == OrderStatus.PENDING_PAYMENT &&
+ to == OrderStatus.PREPARING &&
+ paymentMethod !== PaymentMethodEnum.Cash
+ ) {
+ return false;
+ }
+
+ /**
+ * Only allow orders with status of PREPARING to be shipped if the delivery method is DeliveryCourier
+ */
+ if (
+ from == OrderStatus.PREPARING &&
+ to == OrderStatus.SHIPPED &&
+ deliveryMethod !== DeliveryMethodEnum.DeliveryCourier
+ ) {
+ return false;
+ }
+ if (
+ from == OrderStatus.PREPARING &&
+ to == OrderStatus.DELIVERED_TO_WAITER &&
+ deliveryMethod !== DeliveryMethodEnum.DineIn &&
+ deliveryMethod !== DeliveryMethodEnum.DeliveryCar
+ ) {
+ return false;
+ }
+ if (
+ from == OrderStatus.PREPARING &&
+ to == OrderStatus.DELIVERED_TO_RECEPTIONIST &&
+ deliveryMethod !== DeliveryMethodEnum.CustomerPickup
+ ) {
+ return false;
+ }
+
+ if (paymentMethod === PaymentMethodEnum.Online) {
+ if (to === OrderStatus.PREPARING && from !== OrderStatus.PAID) return false;
+ }
+
+ return true;
+ }
+
+ private async getOrderOrFail(orderId: string, restId: string): Promise {
+ const order = await this.em.findOne(
+ Order,
+ { id: orderId, restaurant: { id: restId } },
+ { populate: ['paymentMethod', 'deliveryMethod', 'user'] },
+ );
+ if (!order) throw new NotFoundException(OrderMessage.NOT_FOUND);
+ return order;
+ }
+
+ private assertCartHasItems(cart: Cart) {
+ if (!cart.items || cart.items.length === 0) {
+ throw new BadRequestException(OrderMessage.CART_EMPTY);
+ }
+ }
+
+ private assertCartHasDeliveryMethod(cart: Cart) {
+ if (!cart.deliveryMethodId) {
+ throw new NotFoundException(OrderMessage.DELIVERY_METHOD_NOT_FOUND);
+ }
+ }
+
+ private assertCartHasPaymentMethod(cart: Cart) {
+ if (!cart.paymentMethodId) {
+ throw new BadRequestException(OrderMessage.PAYMENT_METHOD_REQUIRED);
+ }
+ }
+
+ private async getUserOrFail(userId: string): Promise {
+ const user = await this.em.findOne(User, { id: userId });
+ if (!user) throw new NotFoundException(OrderMessage.USER_NOT_FOUND);
+ return user;
+ }
+
+ private async getRestaurantOrFail(restaurantId: string): Promise {
+ const restaurant = await this.em.findOne(Restaurant, { id: restaurantId });
+ if (!restaurant) throw new NotFoundException(OrderMessage.RESTAURANT_NOT_FOUND);
+ return restaurant;
+ }
+
+ private async getDeliveryOrFail(deliveryId: string): Promise {
+ const delivery = await this.em.findOne(Delivery, { id: deliveryId });
+ if (!delivery) throw new NotFoundException(OrderMessage.DELIVERY_NOT_FOUND);
+ return delivery;
+ }
+
+ private assertMeetsMinOrderForDelivery(cart: Cart, delivery: Delivery) {
+ const minOrderPrice = Number(delivery.minOrderPrice) || 0;
+ if (minOrderPrice > 0 && cart.total < minOrderPrice) {
+ throw new BadRequestException(OrderMessage.MIN_ORDER_AMOUNT_NOT_MET);
+ }
+ }
+
+ private assertDeliveryMethodRequirements(cart: Cart, delivery: Delivery) {
+ if (delivery.method === DeliveryMethodEnum.DineIn) {
+ if (!cart.tableNumber || cart.tableNumber.trim() === '') {
+ throw new BadRequestException(OrderMessage.TABLE_NUMBER_REQUIRED);
+ }
+ }
+
+ if (delivery.method === DeliveryMethodEnum.DeliveryCourier && !cart.userAddress) {
+ throw new BadRequestException(OrderMessage.ADDRESS_REQUIRED);
+ }
+
+ if (delivery.method === DeliveryMethodEnum.DeliveryCar && !cart.carAddress) {
+ throw new BadRequestException(OrderMessage.CAR_ADDRESS_REQUIRED);
+ }
+ }
+
+ private async getPaymentMethodOrFail(paymentMethodId: string, restaurantId: string): Promise {
+ const paymentMethod = await this.em.findOne(
+ PaymentMethod,
+ {
+ id: paymentMethodId,
+ restaurant: { id: restaurantId },
+ },
+ { populate: ['restaurant'] },
+ );
+
+ if (!paymentMethod) {
+ throw new NotFoundException(`Payment method with ID ${paymentMethodId} not found for restaurant ${restaurantId}`);
+ }
+
+ return paymentMethod;
+ }
+
+ private assertPaymentMethodEnabled(paymentMethod: PaymentMethod) {
+ if (!paymentMethod.enabled) {
+ throw new BadRequestException(OrderMessage.PAYMENT_METHOD_NOT_ENABLED);
+ }
+ }
+
+ private async buildOrderItemsData(cart: Cart, restaurantId: string): Promise {
+ const orderItemsData: OrderItemData[] = [];
+
+ for (const cartItem of cart.items) {
+ const food = await this.em.findOne(Food, { id: cartItem.foodId }, { populate: ['restaurant', 'inventory'] });
+ if (!food) throw new NotFoundException(OrderMessage.FOOD_NOT_FOUND);
+
+ if (food.restaurant.id !== restaurantId) {
+ throw new BadRequestException(OrderMessage.FOOD_NOT_BELONGS_TO_RESTAURANT);
+ }
+
+ this.assertFoodHasSufficientStock(food, cartItem.quantity);
+
+ orderItemsData.push({
+ food,
+ quantity: cartItem.quantity,
+ unitPrice: food.price || 0,
+ discount: food.discount || 0,
+ });
+ }
+
+ return orderItemsData;
+ }
+
+ private assertFoodHasSufficientStock(food: Food, quantity: number) {
+ const availableStock = food.inventory?.availableStock ?? 0;
+ if (availableStock < quantity) {
+ throw new BadRequestException(OrderMessage.FOOD_NOT_FOUND);
+ }
+ }
+
+
+ async getStats(restId: string) {
+ return this.em.transactional(async em => {
+ // 1. Total orders count (excluding pending and canceled)
+ const totalOrders = await em.count(Order, {
+ restaurant: { id: restId },
+ status: {
+ $in: [
+ OrderStatus.PAID,
+ OrderStatus.PREPARING,
+ OrderStatus.DELIVERED_TO_WAITER,
+ OrderStatus.DELIVERED_TO_RECEPTIONIST,
+ OrderStatus.SHIPPED,
+ OrderStatus.COMPLETED,
+ ],
+ },
+ });
+
+ // 2. Active foods count
+ const activeFoods = await em.count(Food, {
+ restaurant: { id: restId },
+ isActive: true,
+ });
+
+ // 3. Total clients count (distinct users with orders for this restaurant)
+ const clientsResult = await em.execute(
+ `
+ SELECT COUNT(DISTINCT o.user_id) as count
+ FROM orders o
+ WHERE o.restaurant_id = ?
+ `,
+ [restId],
+ );
+ const totalClients = Number(clientsResult[0]?.count || 0);
+
+ // 4. Total revenue (sum of paid payments for orders of this restaurant)
+ const revenueResult = await em.execute(
+ `
+ SELECT COALESCE(SUM(p.amount), 0)::numeric as total
+ FROM payments p
+ INNER JOIN orders o ON p.order_id = o.id
+ WHERE o.restaurant_id = ? AND p.status = 'paid'
+ `,
+ [restId],
+ );
+ const totalRevenue = Number(revenueResult[0]?.total || 0);
+
+ return {
+ totalOrders,
+ activeFoods,
+ totalClients,
+ totalRevenue,
+ };
+ });
+ }
+
+ async getFoodSalesPieChart(restId: string) {
+ return this.em.transactional(async em => {
+ // Use last 30 days instead of just last month to be more inclusive
+ const now = new Date();
+ const endDate = new Date(now);
+ endDate.setHours(23, 59, 59, 999);
+ const startDate = new Date(now);
+ startDate.setDate(startDate.getDate() - 30);
+ startDate.setHours(0, 0, 0, 0);
+
+ // Calculate actual last month for the period display
+ const firstDayOfLastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
+ firstDayOfLastMonth.setHours(0, 0, 0, 0);
+ const lastDayOfLastMonth = new Date(now.getFullYear(), now.getMonth(), 0, 23, 59, 59, 999);
+
+ this.logger.debug(
+ `Food sales pie chart query params: restId=${restId}, startDate=${startDate.toISOString()}, endDate=${endDate.toISOString()}`,
+ );
+
+ // Diagnostic query to check what orders exist
+ const diagnosticResult = await em.execute(
+ `
+ SELECT
+ o.id,
+ o.status,
+ o.created_at,
+ COUNT(oi.id) as item_count
+ FROM orders o
+ LEFT JOIN order_items oi ON oi.order_id = o.id
+ WHERE o.restaurant_id = ?
+ GROUP BY o.id, o.status, o.created_at
+ ORDER BY o.created_at DESC
+ LIMIT 10
+ `,
+ [restId],
+ );
+ this.logger.debug(`Diagnostic: Found ${diagnosticResult.length} recent orders for restaurant ${restId}`);
+ if (diagnosticResult.length > 0) {
+ this.logger.debug(`Sample order: status=${diagnosticResult[0].status}, created_at=${diagnosticResult[0].created_at}`);
+ }
+
+ // Query order items from orders in the date range
+ // Only include completed orders (excluding canceled and pending)
+ const result = await em.execute(
+ `
+ SELECT
+ f.id as food_id,
+ f.title as food_title,
+ COALESCE(SUM(oi.quantity), 0)::int as total_quantity,
+ COALESCE(SUM(oi.total_price), 0)::numeric as total_revenue
+ FROM order_items oi
+ INNER JOIN orders o ON oi.order_id = o.id
+ INNER JOIN foods f ON oi.food_id = f.id
+ WHERE o.restaurant_id = ?
+ AND o.created_at >= ?
+ AND o.created_at <= ?
+ AND o.status NOT IN ('pendingPayment', 'canceled')
+ GROUP BY f.id, f.title
+ ORDER BY total_revenue DESC
+ `,
+ [restId, startDate, endDate],
+ );
+
+ this.logger.debug(`Food sales pie chart query returned ${result.length} rows`);
+
+ // Calculate total revenue for percentage calculation
+ const totalRevenue = result.reduce((sum: number, item: any) => {
+ return sum + Number(item.total_revenue || 0);
+ }, 0);
+
+ // Format data for pie chart and calculate percentages
+ const chartData = result.map((item: any) => ({
+ foodId: item.food_id,
+ foodTitle: item.food_title || 'Unknown',
+ quantity: Number(item.total_quantity || 0),
+ revenue: Number(item.total_revenue || 0),
+ percentage: totalRevenue > 0 ? Number(((Number(item.total_revenue || 0) / totalRevenue) * 100).toFixed(2)) : 0,
+ }));
+
+ return {
+ period: {
+ startDate: firstDayOfLastMonth.toISOString(),
+ endDate: lastDayOfLastMonth.toISOString(),
+ },
+ totalRevenue,
+ data: chartData,
+ };
+ });
+ }
+}
diff --git a/src/modules/orders/repositories/order.repository.ts b/src/modules/orders/repositories/order.repository.ts
new file mode 100644
index 0000000..130d931
--- /dev/null
+++ b/src/modules/orders/repositories/order.repository.ts
@@ -0,0 +1,184 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { FilterQuery } from '@mikro-orm/core';
+import { Order } from '../entities/order.entity';
+import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
+import { OrderStatus } from '../interface/order.interface';
+import { PaymentMethodEnum, PaymentStatusEnum } from '../../payments/interface/payment';
+import { Review } from '../../review/entities/review.entity';
+
+type FindOrdersOpts = {
+ page?: number;
+ limit?: number;
+ statuses?: OrderStatus[];
+ paymentStatus?: PaymentStatusEnum;
+ search?: string;
+ startDate?: string;
+ endDate?: string;
+ orderBy?: string;
+ order?: 'asc' | 'desc';
+ userId?: string;
+ excludeOnlinePendingPayment?: boolean;
+};
+
+@Injectable()
+export class OrderRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, Order);
+ }
+
+ /**
+ * Find orders with pagination and optional filters.
+ * Supports: statuses, paymentStatus, search (orderNumber), date range, ordering.
+ */
+ async findAllPaginated(restId: string, opts: FindOrdersOpts = {}): Promise> {
+ const {
+ page = 1,
+ limit = 10,
+ statuses,
+ search,
+ startDate,
+ endDate,
+ orderBy = 'createdAt',
+ order = 'desc',
+ userId,
+ excludeOnlinePendingPayment = false,
+ } = opts;
+
+ const offset = (page - 1) * limit;
+
+ const where: FilterQuery = { restaurant: { id: restId } };
+
+ // Filter by statuses
+ if (statuses) {
+ // Ensure statuses is always an array and normalize it
+ const normalizedStatuses = Array.isArray(statuses) ? statuses : [statuses];
+ // Filter out any empty values
+ const validStatuses = normalizedStatuses.filter((s): s is OrderStatus => !!s);
+
+ if (validStatuses.length > 0) {
+ // Use direct equality for single value, $in for multiple values to avoid SQL generation issues
+ if (validStatuses.length === 1) {
+ where.status = validStatuses[0];
+ } else {
+ where.status = { $in: validStatuses };
+ }
+ }
+ }
+
+ if (userId) {
+ where.user = { id: userId };
+ }
+
+ // Filter by date range
+ if (startDate || endDate) {
+ where.createdAt = {};
+ if (startDate) {
+ where.createdAt.$gte = new Date(startDate);
+ }
+ if (endDate) {
+ where.createdAt.$lte = new Date(endDate);
+ }
+ }
+
+ // Search by order number or user information
+ if (search) {
+ const searchPattern = `%${search}%`;
+ const searchConditions: any[] = [
+ { user: { firstName: { $ilike: searchPattern } } },
+ { user: { lastName: { $ilike: searchPattern } } },
+ { user: { phone: { $ilike: searchPattern } } },
+ ];
+
+ // If search is numeric, also search by orderNumber
+ const numericSearch = Number(search);
+ if (!isNaN(numericSearch) && isFinite(numericSearch)) {
+ searchConditions.push({ orderNumber: numericSearch });
+ }
+
+ where.$or = searchConditions;
+ }
+
+ // Filter: Exclude orders with payment method Online and status pending_payment
+ if (excludeOnlinePendingPayment) {
+ const existingConditions = where.$and || [];
+ where.$and = [
+ ...existingConditions,
+ {
+ $or: [
+ { paymentMethod: { method: { $ne: PaymentMethodEnum.Online } } },
+ { status: { $ne: OrderStatus.PENDING_PAYMENT } },
+ ],
+ },
+ ];
+ }
+
+ // First, fetch orders without reviews
+ const [data, total] = await this.findAndCount(where, {
+ limit,
+ offset,
+ orderBy: { [orderBy]: order.toLowerCase() as 'asc' | 'desc' },
+ populate: ['user', 'restaurant', 'deliveryMethod', 'paymentMethod', 'items', 'items.food'] as never,
+ });
+
+ // Collect all (orderId, foodId) pairs for efficient review lookup
+ const orderFoodPairs: Array<{ orderId: string; foodId: string }> = [];
+ for (const order of data) {
+ for (const item of order.items.getItems()) {
+ if (item.food?.id) {
+ orderFoodPairs.push({ orderId: order.id, foodId: item.food.id });
+ }
+ }
+ }
+
+ // Fetch all relevant reviews in a single query
+ const reviewsMap: Map = new Map();
+ if (orderFoodPairs.length > 0) {
+ const orderIds = [...new Set(orderFoodPairs.map(p => p.orderId))];
+ const foodIds = [...new Set(orderFoodPairs.map(p => p.foodId))];
+
+ const reviews = await this.em.find(
+ Review,
+ {
+ order: { id: { $in: orderIds } },
+ food: { id: { $in: foodIds } },
+ },
+ {
+ fields: ['id', 'order', 'food'],
+ populate: ['order', 'food'],
+ },
+ );
+
+ // Create a map: key = `${orderId}-${foodId}`, value = reviewId
+ for (const review of reviews) {
+ const key = `${review.order.id}-${review.food.id}`;
+ reviewsMap.set(key, review.id);
+ }
+ }
+
+ // Map reviewIds to foods
+ for (const order of data) {
+ for (const item of order.items.getItems()) {
+ if (item.food) {
+ const key = `${order.id}-${item.food.id}`;
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ const food = item.food as any;
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
+ food.reviewId = reviewsMap.get(key) || null;
+ }
+ }
+ }
+
+ const totalPages = Math.ceil(total / limit);
+
+ return {
+ data,
+ meta: {
+ total,
+ page,
+ limit,
+ totalPages,
+ },
+ };
+ }
+}
diff --git a/src/modules/payments/controllers/payments.controller.ts b/src/modules/payments/controllers/payments.controller.ts
new file mode 100644
index 0000000..a9d208e
--- /dev/null
+++ b/src/modules/payments/controllers/payments.controller.ts
@@ -0,0 +1,143 @@
+import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards, Query } from '@nestjs/common';
+import { PaymentsService } from '../services/payments.service';
+import {
+ ApiTags,
+ ApiOperation,
+ ApiNotFoundResponse,
+ ApiBody,
+ ApiParam,
+ ApiBearerAuth,
+ ApiHeader,
+} from '@nestjs/swagger';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { PaymentMethodService } from '../services/payment-method.service';
+import { CreatePaymentMethodDto } from '../dto/create-payment-method.dto';
+import { UpdatePaymentMethodDto } from '../dto/update-payment-method.dto';
+import { VerifyPaymentDto } from '../dto/verify-payment.dto';
+import { PaymentChartDto } from '../dto/payment-chart.dto';
+import { RestId, UserId } from 'src/common/decorators';
+import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
+import { API_HEADER_SLUG } from 'src/common/constants';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { Permission } from 'src/common/enums/permission.enum';
+
+@ApiTags('payments')
+@Controller()
+export class PaymentsController {
+ constructor(
+ private readonly paymentsService: PaymentsService,
+ private readonly paymentMethodService: PaymentMethodService,
+ ) { }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/payments/methods/restaurant')
+ @ApiOperation({ summary: 'Get the restaurant payment methods' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiNotFoundResponse({ description: 'Restaurant payment methods not found' })
+ getTheRestaurantPaymentMethods(@RestId() restId: string) {
+ return this.paymentMethodService.findByRestaurant(restId);
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/payments')
+ @ApiOperation({ summary: 'Get all the restaurant payments for user' })
+ @ApiHeader(API_HEADER_SLUG)
+ findAllByRestaurant(@UserId() userId: string, @RestId() restId: string) {
+ return this.paymentsService.findAllPaymentsByRestaurantId(restId, userId);
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @Get('public/payments/pay-order/:orderId')
+ @ApiOperation({ summary: 'Pay for an order' })
+ @ApiParam({ name: 'orderId', type: 'string', description: 'Order ID' })
+ @ApiHeader(API_HEADER_SLUG)
+ payAnOrder(@Param('orderId') orderId: string) {
+ return this.paymentsService.payOrder(orderId);
+ }
+
+ @Post('public/payments/verify')
+ @ApiOperation({ summary: 'Verify a payment' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBody({ type: VerifyPaymentDto })
+ @ApiNotFoundResponse({ description: 'Payment not found' })
+ verifyPayment(@Body() verifyPaymentDto: VerifyPaymentDto) {
+ return this.paymentsService.verifyOnlinePayment(verifyPaymentDto.authority, verifyPaymentDto.orderId);
+ }
+
+ /** admin routes */
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Get('admin/payments/methods')
+ @ApiOperation({ summary: 'Get restaurant all payment methods' })
+ findByRestaurant(@RestId() restId: string) {
+ return this.paymentMethodService.findByRestaurant(restId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Post('admin/payments/methods')
+ @ApiOperation({ summary: 'Create a new restaurant payment method' })
+ @ApiBody({ type: CreatePaymentMethodDto })
+ createRestaurantPaymentMethod(@RestId() restId: string, @Body() createPaymentMethodDto: CreatePaymentMethodDto) {
+ return this.paymentMethodService.create(restId, createPaymentMethodDto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Get('admin/payments/methods/:paymentMethodId')
+ @ApiOperation({ summary: 'Get restaurant payment method by ID' })
+ @ApiParam({ name: 'paymentMethodId', type: 'string', description: 'Payment method ID' })
+ findOneRestaurantPaymentMethod(@Param('paymentMethodId') paymentMethodId: string) {
+ return this.paymentMethodService.findOne(paymentMethodId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Patch('admin/payments/methods/:paymentMethodId')
+ @ApiOperation({ summary: 'Update a restaurant payment method' })
+ @ApiParam({ name: 'paymentMethodId', type: 'string', description: 'Payment method ID' })
+ @ApiBody({ type: UpdatePaymentMethodDto })
+ updateRestaurantPaymentMethod(
+ @Param('paymentMethodId') paymentMethodId: string,
+ @Body() updatePaymentMethodDto: UpdatePaymentMethodDto,
+ ) {
+ return this.paymentMethodService.update(paymentMethodId, updatePaymentMethodDto);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Delete('admin/payments/methods/:paymentMethodId')
+ @ApiOperation({ summary: 'Delete a restaurant payment method' })
+ @ApiParam({ name: 'paymentMethodId', type: 'string', description: 'Payment method ID' })
+ removeRestaurantPaymentMethod(@Param('paymentMethodId') paymentMethodId: string) {
+ return this.paymentMethodService.remove(paymentMethodId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_PAYMENTS)
+ @ApiBearerAuth()
+ @Post('admin/payments/verify-cash-method/:paymentId')
+ @ApiOperation({ summary: 'Verify cash payment ' })
+ @ApiParam({ name: 'paymentId', type: 'string', description: 'Payment ID' })
+ verifyCashPayment(@Param('paymentId') paymentId: string) {
+ return this.paymentsService.verifyCashPayment(paymentId);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.VIEW_REPORTS)
+ @ApiBearerAuth()
+ @Get('admin/payments/chart')
+ @ApiOperation({ summary: 'Get payment chart data with date and period filters' })
+ @ApiHeader(API_HEADER_SLUG)
+ getPaymentChart(@Query() query: PaymentChartDto, @RestId() restId: string) {
+ return this.paymentsService.getChartData(query, restId);
+ }
+}
diff --git a/src/modules/payments/dto/create-payment-method.dto.ts b/src/modules/payments/dto/create-payment-method.dto.ts
new file mode 100644
index 0000000..24acc82
--- /dev/null
+++ b/src/modules/payments/dto/create-payment-method.dto.ts
@@ -0,0 +1,35 @@
+import { IsString, IsOptional, IsBoolean, IsNumber, IsEnum } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+import { PaymentMethodEnum, PaymentGatewayEnum } from '../interface/payment';
+
+export class CreatePaymentMethodDto {
+
+ @ApiProperty({ description: 'Payment method', enum: PaymentMethodEnum })
+ @IsEnum(PaymentMethodEnum)
+ method!: PaymentMethodEnum;
+
+ @ApiProperty({ description: 'Payment gateway', enum: PaymentGatewayEnum, required: false })
+ @IsOptional()
+ @IsEnum(PaymentGatewayEnum)
+ gateway?: PaymentGatewayEnum | null;
+
+ @ApiProperty({ description: 'Payment method description', required: false })
+ @IsOptional()
+ @IsString()
+ description?: string;
+
+ @ApiProperty({ description: 'Is payment method enabled', required: false, default: true })
+ @IsOptional()
+ @IsBoolean()
+ enabled?: boolean;
+
+ @ApiProperty({ description: 'Display order', required: false, default: 0 })
+ @IsOptional()
+ @IsNumber()
+ order?: number;
+
+ @ApiProperty({ description: 'Merchant ID', required: false })
+ @IsOptional()
+ @IsString()
+ merchantId?: string;
+}
diff --git a/src/modules/payments/dto/payment-chart.dto.ts b/src/modules/payments/dto/payment-chart.dto.ts
new file mode 100644
index 0000000..ae1f87b
--- /dev/null
+++ b/src/modules/payments/dto/payment-chart.dto.ts
@@ -0,0 +1,41 @@
+import { IsOptional, IsString, IsEnum, IsDateString } from 'class-validator';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+
+export enum ChartPeriodEnum {
+ Daily = 'daily',
+ Weekly = 'weekly',
+ Monthly = 'monthly',
+}
+
+export class PaymentChartDto {
+ @ApiPropertyOptional({
+ description: 'Start date for filtering (ISO date string)',
+ type: String,
+ format: 'date-time',
+ example: '2024-01-01T00:00:00Z',
+ })
+ @IsOptional()
+ @IsDateString()
+ startDate?: string;
+
+ @ApiPropertyOptional({
+ description: 'End date for filtering (ISO date string)',
+ type: String,
+ format: 'date-time',
+ example: '2024-12-31T23:59:59Z',
+ })
+ @IsOptional()
+ @IsDateString()
+ endDate?: string;
+
+ @ApiPropertyOptional({
+ description: 'Period type for grouping data',
+ enum: ChartPeriodEnum,
+ default: ChartPeriodEnum.Daily,
+ example: ChartPeriodEnum.Daily,
+ })
+ @IsOptional()
+ @IsEnum(ChartPeriodEnum)
+ type?: ChartPeriodEnum = ChartPeriodEnum.Daily;
+}
+
diff --git a/src/modules/payments/dto/update-payment-method.dto.ts b/src/modules/payments/dto/update-payment-method.dto.ts
new file mode 100644
index 0000000..7151364
--- /dev/null
+++ b/src/modules/payments/dto/update-payment-method.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/mapped-types';
+import { CreatePaymentMethodDto } from './create-payment-method.dto';
+
+export class UpdatePaymentMethodDto extends PartialType(CreatePaymentMethodDto) {}
diff --git a/src/modules/payments/dto/update-payment.dto.ts b/src/modules/payments/dto/update-payment.dto.ts
new file mode 100644
index 0000000..a3d0fd2
--- /dev/null
+++ b/src/modules/payments/dto/update-payment.dto.ts
@@ -0,0 +1,8 @@
+import { IsNumber } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class UpdatePaymentDto {
+ @ApiProperty({ description: 'Payment ID' })
+ @IsNumber()
+ id: number;
+}
diff --git a/src/modules/payments/dto/verify-payment.dto.ts b/src/modules/payments/dto/verify-payment.dto.ts
new file mode 100644
index 0000000..06d5ecb
--- /dev/null
+++ b/src/modules/payments/dto/verify-payment.dto.ts
@@ -0,0 +1,12 @@
+import { IsString } from 'class-validator';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class VerifyPaymentDto {
+ @ApiProperty({ description: 'Payment authority token' })
+ @IsString()
+ authority: string;
+
+ @ApiProperty({ description: 'Payment order id' })
+ @IsString()
+ orderId: string;
+}
diff --git a/src/modules/payments/entities/payment-method.entity.ts b/src/modules/payments/entities/payment-method.entity.ts
new file mode 100644
index 0000000..63f5ad9
--- /dev/null
+++ b/src/modules/payments/entities/payment-method.entity.ts
@@ -0,0 +1,30 @@
+import { Entity, Enum, Index, ManyToOne, Property, Unique } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+import { PaymentGatewayEnum, PaymentMethodEnum } from '../interface/payment';
+
+@Entity({ tableName: 'payment_methods' })
+@Unique({ properties: ['restaurant', 'method'] })
+@Index({ properties: ['restaurant', 'enabled'] })
+export class PaymentMethod extends BaseEntity {
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Enum(() => PaymentMethodEnum)
+ method!: PaymentMethodEnum;
+
+ @Enum(() => PaymentGatewayEnum)
+ gateway: PaymentGatewayEnum | null = null;
+
+ @Property({ nullable: true })
+ description?: string;
+
+ @Property({ default: true })
+ enabled: boolean = true;
+
+ @Property({ type: 'integer', default: 0 })
+ order: number = 0;
+
+ @Property({ nullable: true })
+ merchantId?: string;
+}
diff --git a/src/modules/payments/entities/payment.entity.ts b/src/modules/payments/entities/payment.entity.ts
new file mode 100644
index 0000000..5f2827e
--- /dev/null
+++ b/src/modules/payments/entities/payment.entity.ts
@@ -0,0 +1,44 @@
+import { Entity, ManyToOne, Property, Enum, Index } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Order } from '../../orders/entities/order.entity';
+import { PaymentGatewayEnum, PaymentMethodEnum, PaymentStatusEnum } from '../interface/payment';
+
+@Entity({ tableName: 'payments' })
+export class Payment extends BaseEntity {
+ @ManyToOne(() => Order)
+ @Index()
+ order!: Order;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ amount!: number;
+
+ @Property({ unique: true, nullable: true })
+ referenceId?: string | null;
+
+ @Enum(() => PaymentMethodEnum)
+ method!: PaymentMethodEnum;
+
+ @Enum(() => PaymentGatewayEnum)
+ gateway?: PaymentGatewayEnum | null = null;
+
+ @Property({ nullable: true })
+ transactionId?: string | null = null;
+
+ @Enum(() => PaymentStatusEnum)
+ status!: PaymentStatusEnum;
+
+ @Property({ nullable: true })
+ cardPan?: string | null = null;
+
+ @Property({ type: 'json', nullable: true })
+ verifyResponse?: Record | null = null;
+
+ @Property({ nullable: true })
+ paidAt?: Date | null = null;
+
+ @Property({ nullable: true })
+ failedAt?: Date | null = null;
+
+ @Property({ nullable: true })
+ description?: string | null = null;
+}
diff --git a/src/modules/payments/events/payment.events.ts b/src/modules/payments/events/payment.events.ts
new file mode 100644
index 0000000..3fbc443
--- /dev/null
+++ b/src/modules/payments/events/payment.events.ts
@@ -0,0 +1,23 @@
+import { PaymentMethodEnum } from "../interface/payment";
+
+export class paymentSucceedEvent {
+ constructor(
+ public readonly orderId: string,
+ public readonly restaurantId: string,
+ public readonly orderNumber: string,
+ public readonly paymentMethod: PaymentMethodEnum,
+ public readonly total: number
+ ) { }
+}
+
+
+
+export class onlinePaymentSucceedEvent {
+ constructor(
+ public readonly paymentId: string,
+ public readonly orderId: string,
+ public readonly restaurantId: string,
+ public readonly orderNumber: string,
+ public readonly total: number,
+ ) { }
+}
\ No newline at end of file
diff --git a/src/modules/payments/gateways/gateway.manager.ts b/src/modules/payments/gateways/gateway.manager.ts
new file mode 100644
index 0000000..b441fe8
--- /dev/null
+++ b/src/modules/payments/gateways/gateway.manager.ts
@@ -0,0 +1,20 @@
+import { BadRequestException, Injectable } from '@nestjs/common';
+import { PaymentGatewayEnum } from '../interface/payment';
+import { ZarinpalGateway } from './zarinpal.gateway';
+import { IPaymentGateway } from '../interface/gateway';
+
+@Injectable()
+export class GatewayManager {
+ constructor(
+ private readonly zarinpal: ZarinpalGateway,
+ ) { }
+
+ get(gateway: PaymentGatewayEnum): IPaymentGateway {
+ switch (gateway) {
+ case PaymentGatewayEnum.ZarinPal:
+ return this.zarinpal;
+ default:
+ throw new BadRequestException(`Unsupported gateway: ${gateway}`);
+ }
+ }
+}
diff --git a/src/modules/payments/gateways/zarinpal.gateway.ts b/src/modules/payments/gateways/zarinpal.gateway.ts
new file mode 100755
index 0000000..5b26c6e
--- /dev/null
+++ b/src/modules/payments/gateways/zarinpal.gateway.ts
@@ -0,0 +1,158 @@
+import { Injectable, Logger, BadRequestException } from '@nestjs/common';
+import axios from 'axios';
+import {
+ IPaymentGateway,
+ IPaymentVerifyParams,
+ IRequestPaymentData,
+ IRequestPaymentParams,
+ IPaymentVerifyData,
+ IZarinpalPaymentResponse,
+ IZarinpalRequestPayment,
+ IZarinpalVerifyRequest,
+ IZarinpalVerifyResponse,
+} from '../interface/gateway';
+import { ConfigService } from '@nestjs/config';
+import { PaymentMessage } from 'src/common/enums/message.enum';
+
+@Injectable()
+export class ZarinpalGateway implements IPaymentGateway {
+ private readonly logger = new Logger(ZarinpalGateway.name);
+ private readonly zarinpalRequestUrl: string;
+ private readonly zarinpalVerifyUrl: string;
+ private readonly zarinpalPaymentBaseUrl: string;
+ private readonly axiosConfig = {
+ timeout: 10_000,
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ };
+
+ constructor(private readonly configService: ConfigService) {
+ const zarinpalBaseUrl = this.configService.get('ZARINPAL_BASE_URL') || 'https://sandbox.zarinpal.com';
+ this.zarinpalPaymentBaseUrl = zarinpalBaseUrl;
+ this.zarinpalRequestUrl = `${zarinpalBaseUrl}/pg/v4/payment/request.json`;
+ this.zarinpalVerifyUrl = `${zarinpalBaseUrl}/pg/v4/payment/verify.json`;
+ }
+
+ private getAxiosErrorData(error: unknown): { status?: number; data?: unknown } | null {
+ if (!axios.isAxiosError(error) || !error.response) return null;
+ return { status: error.response.status, data: error.response.data };
+ }
+
+ async requestPayment({ amount, merchantId, orderId, domain }: IRequestPaymentParams): Promise {
+ // Transform camelCase to snake_case for Zarinpal API v4
+ const callbackUrl = `${domain}/verify/${orderId}`;
+ const zarinpalRequest: IZarinpalRequestPayment = {
+ amount,
+ merchant_id: merchantId,
+ description: `Payment for order #${orderId}`,
+ callback_url: callbackUrl,
+ currency: 'IRT',
+ metadata: {
+ order_id: orderId,
+ },
+ };
+
+ try {
+ const res = await axios.post(
+ this.zarinpalRequestUrl,
+ zarinpalRequest,
+ this.axiosConfig,
+ );
+ const { data, errors } = res.data ?? {};
+ const code = data?.code;
+ const message = data?.message;
+ const authority = data?.authority;
+
+ if (!data) {
+ this.logger.error('Invalid response from Zarinpal API (missing data)', JSON.stringify(res.data));
+ throw new BadRequestException(PaymentMessage.ZARINPAL_INVALID_RESPONSE);
+ }
+
+ if ((Array.isArray(errors) && errors.length > 0) || code !== 100 || !authority) {
+ this.logger.error(
+ 'Zarinpal payment request failed',
+ JSON.stringify({
+ code,
+ message,
+ errors,
+ callbackUrl,
+ amount,
+ orderId,
+ }),
+ );
+ throw new BadRequestException(message ?? PaymentMessage.ZARINPAL_PAYMENT_REQUEST_ERROR);
+ }
+
+ return { transactionId: authority };
+ } catch (error) {
+ if (error instanceof BadRequestException) throw error;
+
+ const axiosErr = this.getAxiosErrorData(error);
+ if (axiosErr) {
+ this.logger.error(
+ 'Zarinpal payment request axios error',
+ JSON.stringify({
+ status: axiosErr.status,
+ data: axiosErr.data,
+ callbackUrl,
+ amount,
+ orderId,
+ }),
+ );
+ throw new BadRequestException(PaymentMessage.ZARINPAL_PAYMENT_REQUEST_ERROR);
+ }
+
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ this.logger.error('Zarinpal payment request error', errorMessage);
+ throw new BadRequestException(PaymentMessage.GATEWAY_ERROR);
+ }
+ }
+
+ async verifyPayment({ merchantId, amount, transactionId }: IPaymentVerifyParams): Promise {
+ try {
+ // Transform camelCase to snake_case for Zarinpal API v4
+ const zarinpalVerifyRequest: IZarinpalVerifyRequest = {
+ merchant_id: merchantId,
+ amount,
+ authority: transactionId,
+ };
+
+ const res = await axios.post(
+ this.zarinpalVerifyUrl,
+ zarinpalVerifyRequest,
+ this.axiosConfig,
+ );
+
+ // Check if response data exists
+ if (!res.data || !res.data.data) {
+ throw new BadRequestException(PaymentMessage.ZARINPAL_INVALID_RESPONSE);
+ }
+
+ const { code, message, ref_id, card_pan } = res.data.data;
+
+ // Check if there are errors in the response
+ if (code !== 100 && code !== 0) {
+ throw new BadRequestException(message ?? PaymentMessage.ZARINPAL_VERIFY_ERROR);
+ }
+
+ return {
+ success: code === 100,
+ referenceId: ref_id ? ref_id.toString() : '',
+ cardPan: card_pan,
+ raw: res.data,
+ };
+ } catch (error) {
+ if (axios.isAxiosError(error) && error.response) {
+ this.logger.error('Zarinpal verify failed', error.response.data);
+ throw new BadRequestException(error.response.data);
+ }
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ throw new BadRequestException(PaymentMessage.GATEWAY_ERROR);
+ }
+ }
+
+ getPaymentUrl(authority: string): string {
+ return `${this.zarinpalPaymentBaseUrl}/pg/StartPay/${authority}`;
+ }
+}
diff --git a/src/modules/payments/interface/gateway.ts b/src/modules/payments/interface/gateway.ts
new file mode 100644
index 0000000..f336f2c
--- /dev/null
+++ b/src/modules/payments/interface/gateway.ts
@@ -0,0 +1,70 @@
+export interface IPaymentGateway {
+ requestPayment(requestPaymentParams: IRequestPaymentParams): Promise;
+ verifyPayment(verifyPaymentParam: IPaymentVerifyParams): Promise;
+ getPaymentUrl(authority: string): string;
+}
+
+export interface IRequestPaymentParams {
+ amount: number;
+ merchantId: string;
+ domain: string;
+ orderId: string;
+}
+
+export interface IRequestPaymentData {
+ transactionId: string;
+}
+
+export interface IPaymentVerifyParams {
+ amount: number;
+ merchantId: string;
+ transactionId: string;
+}
+
+export interface IPaymentVerifyData {
+ success: boolean;
+ referenceId: string;
+ cardPan?: string;
+ raw: Record;
+}
+////////////////////////// Zarinpal API v4 //////////////////////////
+export interface IZarinpalRequestPayment {
+ amount: number;
+ merchant_id: string;
+ description: string;
+ callback_url: string;
+ metadata?: {
+ order_id?: string;
+ mobile?: string;
+ email?: string;
+ };
+ referrer_id?: string;
+ currency: 'IRT';
+}
+export interface IZarinpalPaymentResponse {
+ data: {
+ code: number;
+ message: string;
+ authority: string;
+ fee_type: string;
+ fee: number;
+ };
+ errors: unknown[];
+}
+export interface IZarinpalVerifyRequest {
+ merchant_id: string;
+ amount: number;
+ authority: string;
+}
+export interface IZarinpalVerifyResponse {
+ data: {
+ code: number;
+ message: string;
+ card_hash: string;
+ card_pan: string;
+ ref_id: number;
+ fee_type: string;
+ fee: number;
+ };
+ errors: unknown[];
+}
diff --git a/src/modules/payments/interface/payment.ts b/src/modules/payments/interface/payment.ts
new file mode 100644
index 0000000..6fd70c2
--- /dev/null
+++ b/src/modules/payments/interface/payment.ts
@@ -0,0 +1,33 @@
+import type { Order } from 'src/modules/orders/entities/order.entity';
+
+export enum PaymentMethodEnum {
+ Online = 'Online',
+ Cash = 'Cash',
+ Wallet = 'Wallet',
+}
+export enum PaymentStatusEnum {
+ Pending = 'pending',
+ Paid = 'paid',
+ Failed = 'failed',
+ Refunded = 'refunded',
+}
+export enum PaymentGatewayEnum {
+ ZarinPal = 'zarinpal',
+}
+
+export interface ICreatePayment {
+ orderId: string;
+ amount: number;
+ method: PaymentMethodEnum;
+ transactionId: string;
+ gateway?: PaymentGatewayEnum | null;
+}
+
+export interface OrderPaymentContext {
+ order: Order;
+ amount: number;
+ method: PaymentMethodEnum;
+ gateway: PaymentGatewayEnum | null;
+ merchantId: string | null;
+ restaurantDomain: string | null;
+}
diff --git a/src/modules/payments/listeners/payment.listeners.ts b/src/modules/payments/listeners/payment.listeners.ts
new file mode 100644
index 0000000..ed60ca7
--- /dev/null
+++ b/src/modules/payments/listeners/payment.listeners.ts
@@ -0,0 +1,170 @@
+import { Injectable, Logger } from '@nestjs/common';
+import { OnEvent } from '@nestjs/event-emitter';
+import { AdminRepository } from 'src/modules/admin/repositories/admin.repository';
+import { onlinePaymentSucceedEvent, paymentSucceedEvent } from '../events/payment.events';
+import { Permission } from 'src/common/enums/permission.enum';
+import { NotifTitleEnum } from 'src/modules/notifications/interfaces/notification.interface';
+import { NotificationService } from 'src/modules/notifications/services/notification.service';
+import { ConfigService } from '@nestjs/config';
+import { OrdersService } from 'src/modules/orders/providers/orders.service';
+
+@Injectable()
+export class PaymentListeners {
+ private readonly logger = new Logger(PaymentListeners.name);
+ private orderCreatedSmsTemplateId: string;
+ private paymentSucceedSmsTemplateId: string;
+ constructor(
+ private readonly adminService: AdminRepository,
+ private readonly notificationService: NotificationService,
+ private readonly configService: ConfigService,
+ private readonly orderService: OrdersService,
+ ) {
+ this.orderCreatedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_CREATED') ?? '123';
+ this.paymentSucceedSmsTemplateId = this.configService.get('SMS_PATTERN_ONLINE_PAYMENT_SUCCEED') ?? '123';
+ }
+
+ private getPaymentMethodFarsi(method: string): string {
+ const methodMap: Record = {
+ Cash: 'نقدی',
+ Wallet: 'کیف پول',
+ Online: 'آنلاین',
+ };
+ return methodMap[method] || method;
+ }
+
+ @OnEvent(paymentSucceedEvent.name)
+ async handlePaymentSucceed(event: paymentSucceedEvent) {
+ try {
+ this.logger.log(
+ `Payment paid event received: ${event.orderId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ );
+ // get admnin os restuaraant that have order permissuins
+ const admins = await this.adminService.findAdminsWithPermission(event.restaurantId, Permission.MANAGE_ORDERS);
+ // const order=await
+ const recipients = admins.map(admin => ({
+ adminId: admin.id,
+ }));
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.PAYMENT_SUCCESS,
+ content: `پرداخت سفارش شماره ${event.orderNumber} با روش ${this.getPaymentMethodFarsi(event.paymentMethod)} و مبلغ ${event.total} تومان با موفقیت انجام شد`,
+ sms: {
+ templateId: this.orderCreatedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+
+ },
+ },
+ pushNotif: {
+ title: `پرداخت موفق`,
+ content: `پرداخت سفارش شماره ${event.orderNumber} با روش ${this.getPaymentMethodFarsi(event.paymentMethod)} و مبلغ ${event.total} تومان با موفقیت انجام شد`,
+ icon: ``,
+ action: {
+ type: NotifTitleEnum.PAYMENT_SUCCESS,
+ url: `/`,
+ },
+ },
+ },
+ recipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+ } catch (error) {
+ this.logger.error(
+ `Failed to send notification for order created event: ${event.restaurantId}`,
+ error instanceof Error ? error.stack : String(error),
+ );
+ }
+ }
+
+ @OnEvent(onlinePaymentSucceedEvent.name)
+ async handleOnlinePaymentSucceed(event: onlinePaymentSucceedEvent) {
+ try {
+
+ this.logger.log(
+ `Online payment succeed event received: ${event.paymentId} for restaurant: ${event.restaurantId} and order number: ${event.orderNumber}`,
+ );
+ const admins = await this.adminService.findAdminsWithPermission(event.restaurantId, Permission.MANAGE_ORDERS);
+ const recipients = admins.map(admin => ({
+ adminId: admin.id,
+ }));
+
+ // admin notifs
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.ORDER_CREATED,
+ content: `سفارش شماره ${event.orderNumber} با مبلغ ${event.total} تومان با موفقیت ایجاد شد`,
+ sms: {
+ templateId: this.orderCreatedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+ total: event.total.toString(),
+ },
+ },
+ pushNotif: {
+ title: `سفارش جدید`,
+ content: `سفارش شماره ${event.orderNumber} با مبلغ ${event.total} تومان با موفقیت ایجاد شد`,
+ icon: `/`,
+ action: {
+ type: NotifTitleEnum.ORDER_CREATED,
+ url: `/`,
+ },
+ },
+ },
+ recipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+
+ const order = await this.orderService.findOne(event.orderId, event.restaurantId);
+ if (!order) {
+ this.logger.error(
+ `Order not found: ${event.orderId} for restaurant: ${event.restaurantId}`,
+ );
+ return;
+ }
+ const userRecipients = [
+ {
+ userId: order.user.id,
+ },
+ ];
+ // user notif
+ await this.notificationService.sendNotification({
+ restaurantId: event.restaurantId,
+ message: {
+ title: NotifTitleEnum.PAYMENT_SUCCESS,
+ content: `پرداخت سفارش شماره ${order.orderNumber} با روش ${this.getPaymentMethodFarsi(order.paymentMethod.method)} و مبلغ ${order.total} تومان با موفقیت انجام شد`,
+ sms: {
+ templateId: this.paymentSucceedSmsTemplateId,
+ parameters: {
+ orderNumber: event.orderNumber,
+ total: event.total.toString(),
+ },
+ },
+ pushNotif: {
+ title: `پرداخت موفق`,
+ content: `پرداخت سفارش شماره ${order.orderNumber} با روش ${this.getPaymentMethodFarsi(order.paymentMethod.method)} و مبلغ ${order.total} تومان با موفقیت انجام شد`,
+ icon: `/`,
+ action: {
+ type: NotifTitleEnum.PAYMENT_SUCCESS,
+ url: `/`,
+ },
+ },
+ },
+ recipients: userRecipients,
+ metadata: {
+ priority: 1,
+ },
+ });
+ } catch (error) {
+ this.logger.error(
+ `Failed to send notification for online payment succeed event: ${event.restaurantId}`,
+ error instanceof Error ? error.stack : String(error),
+ );
+ }
+ }
+}
diff --git a/src/modules/payments/payments.module.ts b/src/modules/payments/payments.module.ts
new file mode 100644
index 0000000..a429d7a
--- /dev/null
+++ b/src/modules/payments/payments.module.ts
@@ -0,0 +1,36 @@
+import { Module, forwardRef } from '@nestjs/common';
+import { PaymentsService } from './services/payments.service';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { PaymentMethod } from './entities/payment-method.entity';
+import { PaymentMethodRepository } from './repositories/payment-method.repository';
+import { PaymentMethodService } from './services/payment-method.service';
+import { Restaurant } from '../restaurants/entities/restaurant.entity';
+import { PaymentsController } from './controllers/payments.controller';
+import { AuthModule } from '../auth/auth.module';
+import { JwtModule } from '@nestjs/jwt';
+import { Payment } from './entities/payment.entity';
+import { ZarinpalGateway } from './gateways/zarinpal.gateway';
+import { GatewayManager } from './gateways/gateway.manager';
+import { PaymentRepository } from './repositories/payment.repository';
+import { InventoryModule } from '../inventory/inventory.module';
+import { PaymentListeners } from './listeners/payment.listeners';
+import { AdminModule } from '../admin/admin.module';
+import { NotificationsModule } from '../notifications/notifications.module';
+import { OrdersModule } from '../orders/orders.module';
+
+@Module({
+ imports: [MikroOrmModule.forFeature([PaymentMethod, Payment, Restaurant]),
+ AuthModule, JwtModule, InventoryModule, AdminModule, NotificationsModule,
+ forwardRef(() => OrdersModule)],
+ controllers: [PaymentsController],
+ providers: [PaymentsService, PaymentMethodService, PaymentMethodRepository,
+ PaymentRepository, ZarinpalGateway, GatewayManager, PaymentListeners],
+ exports: [
+ PaymentMethodRepository,
+ PaymentRepository,
+ PaymentMethodService,
+ PaymentsService,
+ // PaymentGatewayService,
+ ],
+})
+export class PaymentsModule { }
diff --git a/src/modules/payments/repositories/payment-method.repository.ts b/src/modules/payments/repositories/payment-method.repository.ts
new file mode 100644
index 0000000..22bf7fa
--- /dev/null
+++ b/src/modules/payments/repositories/payment-method.repository.ts
@@ -0,0 +1,10 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { PaymentMethod } from '../entities/payment-method.entity';
+
+@Injectable()
+export class PaymentMethodRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, PaymentMethod);
+ }
+}
diff --git a/src/modules/payments/repositories/payment.repository.ts b/src/modules/payments/repositories/payment.repository.ts
new file mode 100644
index 0000000..f157dd3
--- /dev/null
+++ b/src/modules/payments/repositories/payment.repository.ts
@@ -0,0 +1,10 @@
+import { Injectable } from '@nestjs/common';
+import { EntityManager, EntityRepository } from '@mikro-orm/postgresql';
+import { Payment } from '../entities/payment.entity';
+
+@Injectable()
+export class PaymentRepository extends EntityRepository {
+ constructor(readonly em: EntityManager) {
+ super(em, Payment);
+ }
+}
diff --git a/src/modules/payments/services/payment-method.service.ts b/src/modules/payments/services/payment-method.service.ts
new file mode 100644
index 0000000..cb40dcf
--- /dev/null
+++ b/src/modules/payments/services/payment-method.service.ts
@@ -0,0 +1,63 @@
+import { Injectable, NotFoundException, ConflictException } from '@nestjs/common';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { PaymentMethod } from '../entities/payment-method.entity';
+import { PaymentMethodRepository } from '../repositories/payment-method.repository';
+import { CreatePaymentMethodDto } from '../dto/create-payment-method.dto';
+import { UpdatePaymentMethodDto } from '../dto/update-payment-method.dto';
+import { RequiredEntityData } from '@mikro-orm/core';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { RestMessage, PaymentMessage } from 'src/common/enums/message.enum';
+
+@Injectable()
+export class PaymentMethodService {
+ constructor(
+ private readonly paymentMethodRepository: PaymentMethodRepository,
+ private readonly em: EntityManager,
+ ) {}
+
+ async create(restId: string, createPaymentMethodDto: CreatePaymentMethodDto): Promise {
+ // Check if restaurant exists
+ const restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) {
+ throw new NotFoundException(RestMessage.NOT_FOUND);
+ }
+
+ const paymentMethod = this.paymentMethodRepository.create({
+ restaurant,
+ ...createPaymentMethodDto,
+ } as unknown as RequiredEntityData);
+ await this.em.persistAndFlush(paymentMethod);
+ return paymentMethod;
+ }
+
+ async findAll(): Promise {
+ return this.paymentMethodRepository.findAll({ populate: ['restaurant'] });
+ }
+
+ async findOne(id: string): Promise {
+ const paymentMethod = await this.paymentMethodRepository.findOne({ id }, { populate: ['restaurant'] });
+ if (!paymentMethod) {
+ throw new NotFoundException(PaymentMessage.PAYMENT_METHOD_NOT_FOUND);
+ }
+ return paymentMethod;
+ }
+
+ async findByRestaurant(restaurantId: string): Promise {
+ return this.paymentMethodRepository.find({ restaurant: { id: restaurantId } }, { populate: ['restaurant'] });
+ }
+
+ async update(id: string, updatePaymentMethodDto: UpdatePaymentMethodDto): Promise {
+ const paymentMethod = await this.findOne(id);
+ this.em.assign(paymentMethod, updatePaymentMethodDto);
+ await this.em.flush();
+ return paymentMethod;
+ }
+
+ async remove(id: string): Promise {
+ const paymentMethod = await this.findOne(id);
+ await this.em.removeAndFlush(paymentMethod);
+ return paymentMethod;
+ }
+
+
+}
diff --git a/src/modules/payments/services/payments.service.ts b/src/modules/payments/services/payments.service.ts
new file mode 100644
index 0000000..1733710
--- /dev/null
+++ b/src/modules/payments/services/payments.service.ts
@@ -0,0 +1,442 @@
+import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
+import { PaymentGatewayEnum, PaymentMethodEnum, PaymentStatusEnum } from '../interface/payment';
+import { Payment } from '../entities/payment.entity';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { Order } from '../../orders/entities/order.entity';
+import { Logger } from '@nestjs/common';
+import { GatewayManager } from '../gateways/gateway.manager';
+import { WalletTransaction } from 'src/modules/users/entities/wallet-transaction.entity';
+import { OrderPaymentContext } from '../interface/payment';
+import { OrderStatus } from 'src/modules/orders/interface/order.interface';
+import { ChartPeriodEnum, PaymentChartDto } from '../dto/payment-chart.dto';
+import { PaymentMessage, OrderMessage } from 'src/common/enums/message.enum';
+import { EventEmitter2 } from '@nestjs/event-emitter';
+import { onlinePaymentSucceedEvent, paymentSucceedEvent } from '../events/payment.events';
+import { WalletTransactionReason, WalletTransactionType } from 'src/modules/users/interface/wallet';
+
+@Injectable()
+export class PaymentsService {
+ private readonly logger = new Logger(PaymentsService.name);
+
+ constructor(
+ private readonly em: EntityManager,
+ private readonly gatewayManager: GatewayManager,
+ private readonly eventEmitter: EventEmitter2,
+ ) { }
+
+ async payOrder(orderId: string): Promise<{ paymentUrl: string | null }> {
+ const ctx = await this.loadAndValidateOrder(orderId);
+
+ // Idempotency: avoid creating/charging again for already-paid orders
+ if (ctx.order.status === OrderStatus.PAID) {
+ return { paymentUrl: null };
+ }
+
+ switch (ctx.method) {
+ case PaymentMethodEnum.Cash:
+ await this.handleCashPayment(ctx);
+ return { paymentUrl: null };
+
+ case PaymentMethodEnum.Wallet:
+ await this.handleWalletPayment(ctx);
+ return { paymentUrl: null };
+
+ case PaymentMethodEnum.Online:
+ return this.handleOnlinePayment(ctx);
+
+ default:
+ throw new BadRequestException(PaymentMessage.UNSUPPORTED_PAYMENT_METHOD);
+ }
+ }
+
+ private async loadAndValidateOrder(orderId: string): Promise {
+ const order = await this.em.findOne(
+ Order,
+ { id: orderId },
+ { populate: ['user', 'restaurant', 'paymentMethod', 'paymentMethod.restaurant'] },
+ );
+
+ if (!order) {
+ throw new NotFoundException(OrderMessage.NOT_FOUND);
+ }
+
+ if (order.total <= 0) {
+ throw new BadRequestException(PaymentMessage.AMOUNT_MUST_BE_GREATER_THAN_ZERO);
+ }
+
+ const pm = order.paymentMethod;
+ if (!pm) {
+ throw new NotFoundException(PaymentMessage.PAYMENT_METHOD_NOT_FOUND);
+ }
+
+ if (pm.method === PaymentMethodEnum.Online) {
+ if (!pm.gateway) throw new BadRequestException(PaymentMessage.GATEWAY_REQUIRED);
+ if (!pm.merchantId) throw new BadRequestException(PaymentMessage.MERCHANT_ID_REQUIRED);
+ if (!pm.restaurant?.domain) throw new BadRequestException(PaymentMessage.RESTAURANT_DOMAIN_REQUIRED);
+ }
+
+ return {
+ order,
+ amount: order.total,
+ method: pm.method,
+ gateway: pm.gateway ?? null,
+ merchantId: pm.merchantId ?? null,
+ restaurantDomain: pm.restaurant.domain ?? null,
+ };
+ }
+
+ private async handleCashPayment(ctx: OrderPaymentContext): Promise {
+ await this.getOrCreateLatestPendingPayment(ctx.order.id, {
+ amount: ctx.amount,
+ method: PaymentMethodEnum.Cash,
+ gateway: null,
+ });
+ }
+
+ // TODO clean this code and refactor it
+ private async handleWalletPayment(ctx: OrderPaymentContext): Promise {
+ await this.em.transactional(async em => {
+ const order = await em.findOne(Order, { id: ctx.order.id }, { populate: ['user', 'restaurant'] });
+ if (!order) throw new NotFoundException(OrderMessage.NOT_FOUND);
+
+ if (order.status === OrderStatus.PAID) {
+ return;
+ }
+
+ const walletTransaction = await em.findOne(WalletTransaction, {
+ user: { id: order.user.id },
+ restaurant: { id: order.restaurant.id },
+ }, {
+ orderBy: { createdAt: 'DESC' }
+ });
+
+ if (!walletTransaction) {
+ throw new NotFoundException('User wallet not found');
+ }
+
+ if (walletTransaction.balance < ctx.amount) {
+ throw new BadRequestException('Insufficient wallet balance');
+ }
+
+ const newBalance = walletTransaction.balance - ctx.amount;
+
+
+ const payment = await this.getOrCreateLatestPendingPayment(order.id, {
+ em,
+ amount: ctx.amount,
+ method: PaymentMethodEnum.Wallet,
+ gateway: null,
+ });
+
+ const newWalletTransaction = em.create(WalletTransaction, {
+ user: order.user,
+ restaurant: order.restaurant,
+ amount: ctx.amount,
+ type: WalletTransactionType.DEBIT,
+ reason: WalletTransactionReason.ORDER_PAYMENT,
+ balance: newBalance,
+ });
+
+ payment.status = PaymentStatusEnum.Paid;
+ payment.paidAt = new Date();
+ order.status = OrderStatus.PAID;
+
+ em.persist([ payment, order, newWalletTransaction]);
+ await em.flush();
+ });
+ this.eventEmitter.emit(
+ paymentSucceedEvent.name,
+ new paymentSucceedEvent(ctx.order.id, ctx.order.restaurant.id, String(ctx.order?.orderNumber) || '', ctx.method, ctx.amount),
+ );
+ }
+
+ private async handleOnlinePayment(ctx: OrderPaymentContext): Promise<{ paymentUrl: string }> {
+ const gateway = this.gatewayManager.get(ctx.gateway!);
+
+ const payment = await this.getOrCreateLatestPendingPayment(ctx.order.id, {
+ amount: ctx.amount,
+ method: PaymentMethodEnum.Online,
+ gateway: ctx.gateway!,
+ });
+
+ // If we already requested a gateway transaction, just return the same URL (idempotent)
+ if (payment.transactionId) {
+ return { paymentUrl: gateway.getPaymentUrl(payment.transactionId) };
+ }
+
+ const { transactionId } = await gateway.requestPayment({
+ amount: ctx.amount,
+ orderId: ctx.order.id,
+ merchantId: ctx.merchantId!,
+ domain: ctx.restaurantDomain!,
+ });
+
+ payment.gateway = ctx.gateway;
+ payment.transactionId = transactionId;
+ payment.status = PaymentStatusEnum.Pending;
+
+ await this.em.persistAndFlush(payment);
+
+ return {
+ paymentUrl: gateway.getPaymentUrl(transactionId),
+ };
+ }
+
+ async verifyOnlinePayment(transactionId: string, orderId: string): Promise {
+ const payment = await this.em.transactional(async em => {
+ const payment = await em.findOne(
+ Payment,
+ { transactionId, order: { id: orderId } },
+ { populate: ['order', 'order.paymentMethod'] },
+ );
+
+ if (!payment) {
+ throw new NotFoundException(PaymentMessage.PAYMENT_NOT_FOUND);
+ }
+
+ if (payment.status === PaymentStatusEnum.Paid) {
+ return payment;
+ }
+
+ const pm = payment.order.paymentMethod;
+ if (!pm?.merchantId || !payment.gateway) {
+ throw new BadRequestException(PaymentMessage.INVALID_PAYMENT_CONFIGURATION);
+ }
+
+ const gateway = this.gatewayManager.get(payment.gateway);
+
+ const result = await gateway.verifyPayment({
+ merchantId: pm.merchantId,
+ amount: payment.amount,
+ transactionId: payment.transactionId!,
+ });
+
+ payment.verifyResponse = result.raw;
+
+ if (!result.success) {
+ this.failPayment(payment);
+ return payment;
+ }
+
+ this.markPaid(payment, result.referenceId);
+ if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
+ payment.order.status = OrderStatus.PAID;
+ }
+
+ await em.flush();
+ return payment;
+ });
+ this.eventEmitter.emit(
+ onlinePaymentSucceedEvent.name,
+ new onlinePaymentSucceedEvent(payment.id, payment.order.id, payment.order.restaurant.id, String(payment.order?.orderNumber) || '', payment.amount),
+ );
+ return payment;
+ }
+
+ findAllPaymentsByRestaurantId(restId: string, userId: string) {
+ return this.em.find(
+ Payment,
+ { order: { restaurant: { id: restId }, user: { id: userId } } },
+ { populate: ['order', 'order.paymentMethod'] },
+ );
+ }
+
+ async verifyCashPayment(id: string): Promise {
+ const payment = await this.em.transactional(async em => {
+ const payment = await em.findOne(Payment, id, { populate: ['order'] });
+ if (!payment) {
+ throw new NotFoundException(PaymentMessage.PAYMENT_NOT_FOUND);
+ }
+ if (payment.method !== PaymentMethodEnum.Cash) {
+ throw new BadRequestException(PaymentMessage.PAYMENT_METHOD_NOT_CASH);
+ }
+ if (payment.status === PaymentStatusEnum.Paid) {
+ throw new BadRequestException(PaymentMessage.PAYMENT_ALREADY_PAID);
+ }
+ if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
+ payment.order.status = OrderStatus.PAID;
+ }
+ payment.status = PaymentStatusEnum.Paid;
+ payment.paidAt = new Date();
+ em.persist(payment);
+ em.persist(payment.order);
+ await em.flush();
+ return payment;
+ });
+ return payment;
+ }
+
+ private markPaid(payment: Payment, referenceId: string) {
+ payment.status = PaymentStatusEnum.Paid;
+ payment.paidAt = new Date();
+ payment.referenceId = referenceId;
+ }
+
+ private failPayment(payment: Payment) {
+ payment.status = PaymentStatusEnum.Failed;
+ payment.failedAt = new Date();
+ payment.order.status = OrderStatus.CANCELED;
+ }
+
+
+ private async getOrCreateLatestPendingPayment(
+ orderId: string,
+ params: {
+ amount: number;
+ method: PaymentMethodEnum;
+ gateway: PaymentGatewayEnum | null;
+ em?: EntityManager;
+ },
+ ): Promise {
+ const em = params.em ?? this.em;
+
+ const existing = await em.findOne(
+ Payment,
+ { order: { id: orderId }, status: PaymentStatusEnum.Pending },
+ { orderBy: { createdAt: 'DESC' } },
+ );
+
+ if (existing) {
+ if (existing.method !== params.method) {
+ throw new BadRequestException(PaymentMessage.EXISTING_PENDING_PAYMENT_MISMATCH);
+ }
+
+ return existing;
+ }
+
+ const orderRef = em.getReference(Order, orderId);
+ const payment = em.create(Payment, {
+ amount: params.amount,
+ order: orderRef,
+ method: params.method,
+ gateway: params.gateway,
+ transactionId: null,
+ status: PaymentStatusEnum.Pending,
+ });
+
+ em.persist(payment);
+ await em.flush();
+ return payment;
+ }
+
+ async getChartData(dto: PaymentChartDto, restaurantId: string): Promise> {
+ const { startDate, endDate, type = ChartPeriodEnum.Daily } = dto;
+
+ const start = startDate ? new Date(startDate) : new Date(Date.now() - 30 * 24 * 60 * 60 * 1000);
+ const end = endDate ? new Date(endDate) : new Date();
+
+ const startOfDay = new Date(start);
+ startOfDay.setHours(0, 0, 0, 0);
+
+ const endOfDay = new Date(end);
+ endOfDay.setHours(23, 59, 59, 999);
+
+ // 1. Map your Enum to valid Postgres date_trunc units
+ // 'Daily' is not valid in PG, it must be 'day'
+ const pgPeriod = {
+ [ChartPeriodEnum.Daily]: 'day',
+ [ChartPeriodEnum.Weekly]: 'week',
+ [ChartPeriodEnum.Monthly]: 'month',
+ }[type] || 'day';
+
+ const params: any[] = [startOfDay, endOfDay];
+ let restaurantFilter = '';
+
+ if (restaurantId) {
+ params.push(restaurantId);
+ restaurantFilter = `AND o.restaurant_id = ?`;
+ }
+
+ // MikroORM uses ? placeholders for parameter binding
+ // Ensure paid_at is not NULL and handle timestamp casting properly
+ const query = `
+ SELECT
+ TO_CHAR(DATE_TRUNC('${pgPeriod}', CAST(p.paid_at AS timestamp)), 'YYYY-MM-DD') as "date",
+ COALESCE(SUM(CASE WHEN p.method = '${PaymentMethodEnum.Cash}' THEN p.amount ELSE 0 END), 0)::numeric as cash,
+ COALESCE(SUM(CASE WHEN p.method = '${PaymentMethodEnum.Online}' THEN p.amount ELSE 0 END), 0)::numeric as online
+ FROM payments p
+ INNER JOIN orders o ON p.order_id = o.id
+ WHERE p.status = '${PaymentStatusEnum.Paid}'
+ AND p.paid_at IS NOT NULL
+ AND p.paid_at >= ?
+ AND p.paid_at <= ?
+ ${restaurantFilter}
+ GROUP BY DATE_TRUNC('${pgPeriod}', CAST(p.paid_at AS timestamp))
+ ORDER BY DATE_TRUNC('${pgPeriod}', CAST(p.paid_at AS timestamp)) ASC
+ `;
+
+ this.logger.debug(`Chart query params: startOfDay=${startOfDay.toISOString()}, endOfDay=${endOfDay.toISOString()}, restaurantId=${restaurantId}`);
+ const result = await this.em.execute(query, params);
+ this.logger.debug(`Chart query returned ${result.length} rows`);
+
+ const dataMap = new Map();
+ result.forEach((row: any) => {
+ dataMap.set(row.date, {
+ cash: Number(row.cash),
+ online: Number(row.online),
+ });
+ });
+
+ const allDates = this.generateDateRange(startOfDay, endOfDay, type);
+
+ return allDates.map(date => ({
+ date,
+ cash: dataMap.get(date)?.cash ?? 0,
+ online: dataMap.get(date)?.online ?? 0,
+ }));
+ }
+
+ private generateDateRange(start: Date, end: Date, type: ChartPeriodEnum): string[] {
+ const dates: string[] = [];
+ const current = new Date(start);
+ const endDate = new Date(end);
+
+ // Normalize start date based on period type
+ switch (type) {
+ case ChartPeriodEnum.Weekly:
+ // Start of week (Monday) - PostgreSQL DATE_TRUNC('week') uses ISO week (Monday as first day)
+ const dayOfWeek = current.getDay();
+ const diff = current.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1);
+ current.setDate(diff);
+ current.setHours(0, 0, 0, 0);
+ // Also normalize end date to include the week containing it
+ const endDayOfWeek = endDate.getDay();
+ const endDiff = endDate.getDate() - endDayOfWeek + (endDayOfWeek === 0 ? -6 : 1);
+ endDate.setDate(endDiff);
+ endDate.setHours(23, 59, 59, 999);
+ break;
+ case ChartPeriodEnum.Monthly:
+ // Start of month
+ current.setDate(1);
+ current.setHours(0, 0, 0, 0);
+ // Also normalize end date to include the month containing it
+ endDate.setDate(1);
+ endDate.setHours(23, 59, 59, 999);
+ break;
+ case ChartPeriodEnum.Daily:
+ default:
+ current.setHours(0, 0, 0, 0);
+ endDate.setHours(23, 59, 59, 999);
+ }
+
+ while (current <= endDate) {
+ const dateStr = current.toISOString().split('T')[0];
+ dates.push(dateStr);
+
+ // Increment based on period type
+ switch (type) {
+ case ChartPeriodEnum.Weekly:
+ current.setDate(current.getDate() + 7);
+ break;
+ case ChartPeriodEnum.Monthly:
+ current.setMonth(current.getMonth() + 1);
+ break;
+ case ChartPeriodEnum.Daily:
+ default:
+ current.setDate(current.getDate() + 1);
+ }
+ }
+
+ return dates;
+ }
+}
diff --git a/src/modules/roles/controllers/roles.controller.ts b/src/modules/roles/controllers/roles.controller.ts
new file mode 100644
index 0000000..f727fc0
--- /dev/null
+++ b/src/modules/roles/controllers/roles.controller.ts
@@ -0,0 +1,93 @@
+import { Controller, Get, Post, Body, Param, Patch, Delete, UseGuards } from '@nestjs/common';
+import { ApiTags, ApiOperation, ApiBody, ApiBearerAuth, ApiHeader } from '@nestjs/swagger';
+import { RolesService } from '../providers/roles.service';
+import { PermissionsService } from '../providers/permissions.service';
+import { CreateRoleDto } from '../dto/create-role.dto';
+import { UpdateRoleDto } from '../dto/update-role.dto';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { SuperAdminAuthGuard } from 'src/modules/auth/guards/superAdminAuth.guard';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { RestId } from 'src/common/decorators';
+import { AdminId } from 'src/common/decorators/admin-id.decorator';
+import { Permission } from 'src/common/enums/permission.enum';
+
+
+
+@ApiTags('roles')
+@Controller()
+export class RolesController {
+ constructor(
+ private readonly roleService: RolesService,
+ private readonly permissionService: PermissionsService,
+ ) { }
+
+ @Get('admin/roles')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get all through restaurant roles with pagination and filters' })
+ findAll(@RestId() restId: string) {
+ return this.roleService.findAllGeneralAndRestaurantRoles(restId);
+ }
+
+ @Get('admin/roles/permissions')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get all permissions that the admin has' })
+ async findAllPermissions(@AdminId() adminId: string, @RestId() restId: string) {
+ const adminPermissionNames = await this.permissionService.getAdminFullPermissions(adminId, restId);
+
+ return adminPermissionNames;
+ }
+
+
+
+ @Post('admin/roles')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Create a new role' })
+ @ApiBody({ type: CreateRoleDto })
+ create(@Body() dto: CreateRoleDto, @RestId() restId: string) {
+ return this.roleService.createRestaurantRole(dto, restId);
+ }
+
+ @Get('admin/roles/:id')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get a specific role by ID' })
+ findOne(@Param('id') id: string, @RestId() restId: string) {
+ return this.roleService.findOne(restId, id);
+ }
+
+ @Patch('admin/roles/:id')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Update a role' })
+ @ApiBody({ type: UpdateRoleDto })
+ update(@Param('id') id: string, @Body() dto: UpdateRoleDto, @RestId() restId: string) {
+ return this.roleService.update(restId, id, dto);
+ }
+
+ @Delete('admin/roles/:id')
+ @UseGuards(AdminAuthGuard)
+ @Permissions(Permission.MANAGE_ROLES)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Delete a role' })
+ remove(@Param('id') id: string, @RestId() restId: string) {
+ return this.roleService.remove(restId, id);
+ }
+
+ /** Super Admin Endpoints */
+ @UseGuards(SuperAdminAuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get all system roles for super-admin' })
+ @Get('super-admin/system-roles')
+ @ApiOperation({ summary: 'Get all system roles for super-admin' })
+ findAllSystemRoles() {
+ return this.roleService.findAllSystemRoles();
+ }
+}
diff --git a/src/modules/roles/dto/create-role.dto.ts b/src/modules/roles/dto/create-role.dto.ts
new file mode 100644
index 0000000..8048ef3
--- /dev/null
+++ b/src/modules/roles/dto/create-role.dto.ts
@@ -0,0 +1,14 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsNotEmpty, IsString, IsArray, IsOptional } from 'class-validator';
+
+export class CreateRoleDto {
+ @ApiProperty({ description: 'Role name' })
+ @IsNotEmpty()
+ @IsString()
+ name!: string;
+
+ @ApiProperty({ description: 'List of permission IDs', isArray: true, required: false })
+ @IsOptional()
+ @IsArray()
+ permissionIds?: string[];
+}
diff --git a/src/modules/roles/dto/update-role.dto.ts b/src/modules/roles/dto/update-role.dto.ts
new file mode 100644
index 0000000..ccf9939
--- /dev/null
+++ b/src/modules/roles/dto/update-role.dto.ts
@@ -0,0 +1,14 @@
+import { ApiProperty } from '@nestjs/swagger';
+import { IsOptional, IsString, IsArray } from 'class-validator';
+
+export class UpdateRoleDto {
+ @ApiProperty({ description: 'Role name', required: false })
+ @IsOptional()
+ @IsString()
+ name?: string;
+
+ @ApiProperty({ description: 'List of permission IDs', isArray: true, required: false })
+ @IsOptional()
+ @IsArray()
+ permissionIds?: string[];
+}
diff --git a/src/modules/roles/entities/permission.entity.ts b/src/modules/roles/entities/permission.entity.ts
new file mode 100755
index 0000000..2dab209
--- /dev/null
+++ b/src/modules/roles/entities/permission.entity.ts
@@ -0,0 +1,17 @@
+import { Entity, Property, Unique, ManyToMany, Collection } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Role } from './role.entity';
+
+@Entity({ tableName: 'permissions' })
+export class Permission extends BaseEntity {
+ @Property()
+ @Unique()
+ name!: string;
+
+ @Property()
+ title!: string;
+
+
+ @ManyToMany({ entity: () => Role, mappedBy: 'permissions' })
+ roles = new Collection(this);
+}
diff --git a/src/modules/roles/entities/role.entity.ts b/src/modules/roles/entities/role.entity.ts
new file mode 100755
index 0000000..620d681
--- /dev/null
+++ b/src/modules/roles/entities/role.entity.ts
@@ -0,0 +1,25 @@
+import { Collection, Entity, Index, ManyToMany, OneToMany, ManyToOne, Property } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Permission } from './permission.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { RolePermission } from './rolePermission.entity';
+import { AdminRole } from 'src/modules/admin/entities/adminRole.entity';
+
+@Entity({ tableName: 'roles' })
+@Index({ properties: ['restaurant'] })
+export class Role extends BaseEntity {
+ @Property()
+ name!: string;
+
+ @Property({ default: false })
+ isSystem: boolean = false;
+
+ @ManyToMany({ entity: () => Permission, pivotEntity: () => RolePermission, inversedBy: p => p.roles })
+ permissions = new Collection(this);
+
+ @ManyToOne(() => Restaurant, { nullable: true })
+ restaurant?: Restaurant;
+
+ @OneToMany(() => AdminRole, adminRole => adminRole.role)
+ admins = new Collection(this);
+}
diff --git a/src/modules/roles/entities/rolePermission.entity.ts b/src/modules/roles/entities/rolePermission.entity.ts
new file mode 100644
index 0000000..a99538a
--- /dev/null
+++ b/src/modules/roles/entities/rolePermission.entity.ts
@@ -0,0 +1,16 @@
+import { Entity, ManyToOne } from '@mikro-orm/core';
+import { Role } from './role.entity';
+import { Permission } from './permission.entity';
+
+@Entity({ tableName: 'role_permissions' })
+export class RolePermission {
+ // دو ManyToOne دقیقاً؛ هر کدام میتونن primary: true باشند برای composite PK
+ @ManyToOne(() => Role, { primary: true })
+ role!: Role;
+
+ @ManyToOne(() => Permission, { primary: true })
+ permission!: Permission;
+
+ // **نکته:** اینجا *فقط* همین دو خصوصیت کافی است —
+ // از تعریف جداگانهی roleId / permissionId با @PrimaryKey خودداری کن مگر بخوای نام/نوع ستون را سفارشی کنی.
+}
diff --git a/src/modules/roles/providers/permissions.service.ts b/src/modules/roles/providers/permissions.service.ts
new file mode 100644
index 0000000..8e96fa4
--- /dev/null
+++ b/src/modules/roles/providers/permissions.service.ts
@@ -0,0 +1,105 @@
+import { Injectable } from '@nestjs/common';
+import { InjectRepository } from '@mikro-orm/nestjs';
+import { EntityManager, EntityRepository } from '@mikro-orm/core';
+import { Permission } from '../entities/permission.entity';
+import { CacheService } from 'src/modules/utils/cache.service';
+import { AdminRepository } from 'src/modules/admin/repositories/admin.repository';
+import { AdminRole } from 'src/modules/admin/entities/adminRole.entity';
+
+@Injectable()
+export class PermissionsService {
+ private readonly ADMIN_PERMISSIONS_KEY = 'admin-perms';
+
+ constructor(
+ @InjectRepository(Permission)
+ private readonly permissionRepository: EntityRepository,
+ private readonly cacheService: CacheService,
+ private readonly adminRepository: AdminRepository,
+ private readonly em: EntityManager,
+ ) { }
+
+ async findAll() {
+ const permissions = await this.permissionRepository.findAll();
+ return permissions;
+ }
+
+ /**
+ * Get admin permissions from cache or database
+ * @param adminId - The admin ID
+ * @param restId - The restaurant ID
+ * @returns Array of permission names (string[])
+ */
+ async getAdminPermissions(adminId: string, restId: string): Promise {
+ const cacheKey = `${this.ADMIN_PERMISSIONS_KEY}:${adminId}:${restId}`;
+
+ // Try to get from cache first
+ const cachedPermissions = await this.cacheService.get(cacheKey);
+ if (cachedPermissions) {
+ try {
+ const parsed: unknown = JSON.parse(cachedPermissions);
+ // Ensure it's an array of strings
+ if (Array.isArray(parsed) && parsed.every((p): p is string => typeof p === 'string')) {
+ return parsed;
+ }
+ // If invalid format, continue to fetch from DB
+ } catch {
+ // If parsing fails, continue to fetch from DB
+ }
+ }
+
+ // If not in cache, fetch from database
+ const admin = await this.adminRepository.findOne(
+ { id: adminId, roles: { restaurant: { id: restId } } },
+ { populate: ['roles', 'roles.role', 'roles.role.permissions'] },
+ );
+
+ if (!admin || !admin.roles) {
+ return [];
+ }
+
+ // Ensure roles collection is loaded
+ await admin.roles.loadItems();
+
+ // Extract permission names as array of strings
+ const permissions = await Promise.all(
+ admin.roles
+ .getItems()
+ .filter(r => r.role) // Filter out any null/undefined roles
+ .map(async r => {
+ // Ensure permissions collection is initialized
+ if (!r.role.permissions.isInitialized()) {
+ await r.role.permissions.loadItems();
+ }
+ return r.role.permissions.getItems();
+ }),
+ );
+
+ return permissions.flat().map(p => p.name);
+ }
+
+ async getAdminFullPermissions(adminId: string, restId: string): Promise {
+ const listOfPermissions = []
+ const adminRoles = await this.em.findOne(AdminRole, {
+ admin: {
+ id: adminId,
+ },
+ restaurant: {
+ id: restId,
+ },
+ }, { populate: ['role', 'role.permissions'] });
+ if (adminRoles) {
+ listOfPermissions.push(...adminRoles.role.permissions.getItems());
+ }
+ return listOfPermissions.map(permission => permission);
+ }
+
+ /**
+ * Invalidate admin permissions cache
+ * @param adminId - The admin ID
+ * @param restId - The restaurant ID
+ */
+ async invalidateAdminPermissionsCache(adminId: string, restId: string): Promise {
+ const cacheKey = `${this.ADMIN_PERMISSIONS_KEY}:${adminId}:${restId}`;
+ await this.cacheService.del(cacheKey);
+ }
+}
diff --git a/src/modules/roles/providers/roles.service.ts b/src/modules/roles/providers/roles.service.ts
new file mode 100644
index 0000000..3182035
--- /dev/null
+++ b/src/modules/roles/providers/roles.service.ts
@@ -0,0 +1,138 @@
+import { Injectable, NotFoundException, BadRequestException } from '@nestjs/common';
+import { InjectRepository } from '@mikro-orm/nestjs';
+import { EntityRepository, FilterQuery } from '@mikro-orm/core';
+import { Role } from '../entities/role.entity';
+import { Permission } from '../entities/permission.entity';
+import { Restaurant } from '../../restaurants/entities/restaurant.entity';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { CreateRoleDto } from '../dto/create-role.dto';
+import { UpdateRoleDto } from '../dto/update-role.dto';
+import { RolePermission } from '../entities/rolePermission.entity';
+
+@Injectable()
+export class RolesService {
+ constructor(
+ @InjectRepository(Role)
+ private readonly roleRepository: EntityRepository,
+ @InjectRepository(Permission)
+ private readonly permissionRepository: EntityRepository,
+ private readonly em: EntityManager,
+ ) { }
+
+ async createRestaurantRole(dto: CreateRoleDto, restId: string) {
+ const { name, permissionIds } = dto;
+
+ // Check if role already exists
+ const existing = await this.roleRepository.findOne({ name, restaurant: restId ? { id: restId } : null });
+ if (existing) {
+ throw new BadRequestException('Role with this name already exists for the restaurant');
+ }
+
+ let restaurant: Restaurant | null = null;
+ if (restId) {
+ restaurant = await this.em.findOne(Restaurant, { id: restId });
+ if (!restaurant) {
+ throw new NotFoundException('Restaurant not found');
+ }
+ }
+
+ const role = this.roleRepository.create({
+ name,
+ restaurant,
+ isSystem: false,
+ });
+
+ // Add permissions if provided
+ if (permissionIds && permissionIds.length > 0) {
+ const permissions = await this.permissionRepository.find({ id: { $in: permissionIds } });
+ if (permissions.length !== permissionIds.length) {
+ throw new BadRequestException('One or more permissions not found');
+ }
+ permissions.forEach(p => role.permissions.add(p));
+ }
+
+ await this.em.persistAndFlush(role);
+ return role;
+ }
+
+ async findAllGeneralAndRestaurantRoles(restId: string) {
+ const where: FilterQuery = { $or: [{ restaurant: restId }, { restaurant: null }], isSystem: false };
+
+ const roles = await this.roleRepository.find(where, {
+ orderBy: { createdAt: 'desc' },
+ populate: ['permissions', 'restaurant'],
+ });
+
+ return roles;
+ }
+
+ async findOne(restId: string, id: string) {
+ const role = await this.roleRepository.findOne(
+ { id, restaurant: { id: restId } },
+ { populate: ['permissions', 'restaurant'] },
+ );
+ if (!role) {
+ throw new NotFoundException('Role not found');
+ }
+ return role;
+ }
+
+ async update(restId: string, id: string, dto: UpdateRoleDto) {
+ const role = await this.roleRepository.findOne(
+ { id, restaurant: { id: restId } },
+ { populate: ['permissions', 'restaurant'] },
+ );
+ if (!role) {
+ throw new NotFoundException('Role not found');
+ }
+
+ if (dto.name) {
+ role.name = dto.name;
+ }
+
+ if (dto.permissionIds && dto.permissionIds.length >= 0) {
+ // Clear existing permissions and add new ones
+ role.permissions.removeAll();
+ const permissions = await this.permissionRepository.find({ id: { $in: dto.permissionIds } });
+ if (permissions.length !== dto.permissionIds.length) {
+ throw new BadRequestException('One or more permissions not found');
+ }
+ permissions.forEach(p => role.permissions.add(p));
+ }
+
+ await this.em.persistAndFlush(role);
+ return role;
+ }
+
+ async findAllSystemRoles() {
+ const roles = await this.roleRepository.find(
+ { isSystem: true },
+ {
+ orderBy: { createdAt: 'desc' },
+ populate: ['permissions', 'restaurant'],
+ },
+ );
+
+ return roles;
+ }
+
+ async remove(restId: string, id: string) {
+ const role = await this.roleRepository.findOne(
+ { id, restaurant: { id: restId } },
+ { populate: ['permissions', 'restaurant'] },
+ );
+ if (!role) {
+ throw new NotFoundException('Role not found');
+ }
+ if (!role.admins.isEmpty()) {
+ throw new BadRequestException('Role has admins');
+ }
+
+ // Hard delete pivot table entries (role_permissions) before soft deleting the role
+ await this.em.nativeDelete(RolePermission, { role: { id: role.id } });
+
+ // Soft delete the role
+ role.deletedAt = new Date();
+ return this.em.persistAndFlush(role);
+ }
+}
diff --git a/src/modules/roles/roles.module.ts b/src/modules/roles/roles.module.ts
new file mode 100644
index 0000000..3367e3c
--- /dev/null
+++ b/src/modules/roles/roles.module.ts
@@ -0,0 +1,20 @@
+import { Global, Module } from '@nestjs/common';
+import { MikroOrmModule } from '@mikro-orm/nestjs';
+import { RolesService } from './providers/roles.service';
+import { RolesController } from './controllers/roles.controller';
+import { PermissionsService } from './providers/permissions.service';
+import { Role } from './entities/role.entity';
+import { Permission } from './entities/permission.entity';
+import { RolePermission } from './entities/rolePermission.entity';
+import { JwtModule } from '@nestjs/jwt';
+import { UtilsModule } from '../utils/utils.module';
+import { AdminModule } from '../admin/admin.module';
+
+@Global()
+@Module({
+ imports: [MikroOrmModule.forFeature([Role, Permission, RolePermission]), JwtModule, UtilsModule, AdminModule],
+ controllers: [RolesController],
+ providers: [RolesService, PermissionsService],
+ exports: [RolesService, PermissionsService],
+})
+export class RolesModule {}
diff --git a/src/modules/uploader/DTO/upload-file.dto.ts b/src/modules/uploader/DTO/upload-file.dto.ts
new file mode 100755
index 0000000..75312db
--- /dev/null
+++ b/src/modules/uploader/DTO/upload-file.dto.ts
@@ -0,0 +1,19 @@
+import type { File } from '@nest-lab/fastify-multer';
+import { ApiProperty } from '@nestjs/swagger';
+
+export class UploadSingleFileDto {
+ @ApiProperty({ type: 'string', format: 'binary', nullable: false })
+ file: File;
+}
+
+export class UploadMultipleFileDto {
+ @ApiProperty({
+ required: true,
+ type: 'array',
+ items: {
+ type: 'string',
+ format: 'binary',
+ },
+ })
+ files: File[];
+}
diff --git a/src/modules/uploader/controllers/uploader.controller.ts b/src/modules/uploader/controllers/uploader.controller.ts
new file mode 100644
index 0000000..60d924f
--- /dev/null
+++ b/src/modules/uploader/controllers/uploader.controller.ts
@@ -0,0 +1,57 @@
+import { type File, FileInterceptor, FilesInterceptor } from '@nest-lab/fastify-multer';
+import { Controller, Post, UploadedFile, UploadedFiles, UseGuards, UseInterceptors } from '@nestjs/common';
+import { ApiBody, ApiConsumes, ApiOperation, ApiBearerAuth, ApiTags } from '@nestjs/swagger';
+import { UploadMultipleFileDto, UploadSingleFileDto } from '../DTO/upload-file.dto';
+import { UploaderService } from '../providers/uploader.service';
+import { AdminAuthGuard } from '../../auth/guards/adminAuth.guard';
+import { AuthGuard } from '../../auth/guards/auth.guard';
+
+@ApiTags('uploader')
+@Controller()
+export class UploaderController {
+ constructor(private readonly uploaderService: UploaderService) {}
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Upload a file (admin)' })
+ @ApiConsumes('multipart/form-data')
+ @UseInterceptors(FileInterceptor('file'))
+ @ApiBody({ type: UploadSingleFileDto })
+ @Post('public/single-file')
+ uploadFile(@UploadedFile() file: File) {
+ return this.uploaderService.uploadFile(file);
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Uploads multiple files' })
+ @ApiConsumes('multipart/form-data')
+ @UseInterceptors(FilesInterceptor('files'))
+ @ApiBody({ type: UploadMultipleFileDto })
+ @Post('public/multi-file')
+ uploadFiles(@UploadedFiles() files: File[]) {
+ return this.uploaderService.uploadMultiple(files);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Upload a file (admin)' })
+ @ApiConsumes('multipart/form-data')
+ @UseInterceptors(FileInterceptor('file'))
+ @ApiBody({ type: UploadSingleFileDto })
+ @Post('admin/single-file')
+ uploadFileAdmin(@UploadedFile() file: File) {
+ return this.uploaderService.uploadFile(file);
+ }
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Uploads multiple files' })
+ @ApiConsumes('multipart/form-data')
+ @UseInterceptors(FilesInterceptor('files'))
+ @ApiBody({ type: UploadMultipleFileDto })
+ @Post('admin/multi-file')
+ uploadFilesAdmin(@UploadedFiles() files: File[]) {
+ return this.uploaderService.uploadMultiple(files);
+ }
+}
diff --git a/src/modules/uploader/interfaces/file.interface.ts b/src/modules/uploader/interfaces/file.interface.ts
new file mode 100644
index 0000000..b4825b9
--- /dev/null
+++ b/src/modules/uploader/interfaces/file.interface.ts
@@ -0,0 +1,41 @@
+import type { File } from '@nest-lab/fastify-multer';
+
+export interface FileUploadResult {
+ file: File;
+ url: string;
+}
+
+export interface FileStreamResult {
+ stream: NodeJS.ReadableStream;
+ file: File;
+}
+
+export interface FileMetadata {
+ width?: number;
+ height?: number;
+ duration?: number;
+ bitrate?: number;
+ codec?: string;
+ language?: string;
+}
+
+export type FileType = 'video' | 'audio' | 'image' | 'document' | 'text' | 'unknown';
+
+export interface FileValidationOptions {
+ maxFileSize: number;
+ allowedMimeTypes: string[];
+}
+
+export interface FileUploadOptions {
+ roomId?: string;
+ metadata?: Record;
+}
+
+// File processing status
+export type FileProcessingStatus = 'pending' | 'processing' | 'completed' | 'failed';
+
+export interface FileProcessingResult {
+ status: FileProcessingStatus;
+ metadata?: FileMetadata;
+ error?: string;
+}
diff --git a/src/modules/uploader/interfaces/s3.interface.ts b/src/modules/uploader/interfaces/s3.interface.ts
new file mode 100644
index 0000000..2791d05
--- /dev/null
+++ b/src/modules/uploader/interfaces/s3.interface.ts
@@ -0,0 +1,37 @@
+export interface S3UploadResult {
+ key: string;
+ url: string;
+ bucket: string;
+}
+
+export interface S3UploadOptions {
+ contentType: string;
+ metadata?: Record;
+ acl?: 'private' | 'public-read' | 'public-read-write';
+}
+
+export interface S3DownloadOptions {
+ expiresIn?: number;
+ responseContentType?: string;
+ responseContentDisposition?: string;
+}
+
+export interface S3FileInfo {
+ key: string;
+ bucket: string;
+ size: number;
+ lastModified: Date;
+ contentType: string;
+ etag: string;
+}
+
+export interface S3DeleteResult {
+ deleted: boolean;
+ key: string;
+}
+
+export interface S3ListResult {
+ files: S3FileInfo[];
+ continuationToken?: string;
+ isTruncated: boolean;
+}
diff --git a/src/modules/uploader/providers/s3.service.ts b/src/modules/uploader/providers/s3.service.ts
new file mode 100644
index 0000000..f7c204d
--- /dev/null
+++ b/src/modules/uploader/providers/s3.service.ts
@@ -0,0 +1,173 @@
+import { randomInt } from 'node:crypto';
+import { Readable } from 'node:stream';
+
+import { DeleteObjectCommand, GetObjectCommand, PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
+import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
+import { Injectable, Logger } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import { FileType } from '../interfaces/file.interface';
+import { S3UploadResult } from '../interfaces/s3.interface';
+
+@Injectable()
+export class S3Service {
+ private readonly logger = new Logger(S3Service.name);
+ private readonly s3Client: S3Client;
+ private readonly bucketName: string;
+ private readonly region: string; // Region is often 'us-east-1' or similar for Liara, but depends on your config
+ private readonly endpointUrl: string; // Renamed 'url' to 'endpointUrl' for clarity
+
+ constructor(private readonly configService: ConfigService) {
+ // --- Configuration for Liara S3 ---
+ this.bucketName = this.configService.getOrThrow('BUCKET_NAME');
+ // Liara S3 usually requires a specific endpoint URL
+ this.endpointUrl = this.configService.getOrThrow('LIARA_S3_ENDPOINT');
+ // The region for Liara S3 is often 'us-east-1' or just a placeholder,
+ // but we'll keep it configurable for consistency.
+ this.region = this.configService.getOrThrow('BUCKET_REGION');
+
+ this.s3Client = new S3Client({
+ region: this.region, // Use the configured region
+ endpoint: this.endpointUrl, // This is the crucial change for Liara S3
+ forcePathStyle: true, // Often required when using custom S3 endpoints like Liara
+ credentials: {
+ accessKeyId: this.configService.getOrThrow('BUCKET_ACCESS_KEY'),
+ secretAccessKey: this.configService.getOrThrow('BUCKET_SECRET_KEY'),
+ },
+ });
+ // ------------------------------------
+ }
+
+ /**
+ * Upload file to S3
+ */
+ async uploadFile(
+ buffer: Buffer,
+ key: string,
+ contentType: string,
+ metadata?: Record,
+ ): Promise {
+ try {
+ const sanitizedMetadata = metadata
+ ? Object.entries(metadata).reduce(
+ (acc, [key, value]) => {
+ // Encode all values to be ASCII-safe
+ acc[key] = encodeURIComponent(value);
+ return acc;
+ },
+ {} as Record,
+ )
+ : undefined;
+ // NOTE: 'ACL: public-read' might not be supported or necessary for Liara S3,
+ // depending on your bucket configuration on Liara.
+ // If uploads fail, try removing this line.
+ const command = new PutObjectCommand({
+ Bucket: this.bucketName,
+ Key: key,
+ Body: buffer,
+ // ACL: 'public-read',
+ ContentType: contentType,
+ Metadata: sanitizedMetadata,
+ });
+
+ await this.s3Client.send(command);
+
+ // --- URL for Liara S3 ---
+ // The public URL for Liara S3 files is typically: ${endpoint}/${bucketName}/${key}
+ const url = `${this.endpointUrl}/${this.bucketName}/${key}`;
+
+ this.logger.log(`File uploaded to S3: ${key}`);
+
+ return {
+ key,
+ url,
+ bucket: this.bucketName,
+ };
+ } catch (error: unknown) {
+ this.logger.error(`Failed to upload file to S3: ${(error as Error).message}`, (error as Error).stack);
+ throw error;
+ }
+ }
+
+ // --- Other methods remain the same as they use the S3Client which is now configured for Liara ---
+
+ /**
+ * Get file stream from S3
+ */
+
+ async getFileStream(key: string): Promise {
+ try {
+ const command = new GetObjectCommand({
+ Bucket: this.bucketName,
+ Key: key,
+ });
+
+ const response = await this.s3Client.send(command);
+
+ // ✅ VALIDATION
+ if (response.Body instanceof Readable) {
+ return response.Body;
+ }
+
+ // If it's not a Readable stream, throw a specific error
+ throw new Error(`File body is not a readable stream for key: ${key}`);
+ } catch (error: unknown) {
+ this.logger.error(`Failed to get file from S3: ${(error as Error).message}`, (error as Error).stack);
+ throw error;
+ }
+ }
+ /**
+ * Generate presigned URL for file download
+ */
+ async getPresignedUrl(key: string, expiresIn: number = 3600): Promise {
+ try {
+ const command = new GetObjectCommand({
+ Bucket: this.bucketName,
+ Key: key,
+ });
+
+ return await getSignedUrl(this.s3Client, command, { expiresIn });
+ } catch (error: unknown) {
+ this.logger.error(`Failed to generate presigned URL: ${(error as Error).message}`, (error as Error).stack);
+ throw error;
+ }
+ }
+
+ /**
+ * Delete file from S3
+ */
+ async deleteFile(key: string): Promise {
+ try {
+ const command = new DeleteObjectCommand({
+ Bucket: this.bucketName,
+ Key: key,
+ });
+
+ await this.s3Client.send(command);
+ this.logger.log(`File deleted from S3: ${key}`);
+ } catch (error: unknown) {
+ this.logger.error(`Failed to delete file from S3: ${(error as Error).message}`, (error as Error).stack);
+ throw error;
+ }
+ }
+
+ /**
+ * Generate S3 key for file
+ */
+ generateFileKey(originalName: string, fileType: FileType): string {
+ const timestamp = Date.now();
+ const randomSuffix = randomInt(1000000, 9999999);
+ const extension = originalName.split('.').pop();
+
+ const basePathMap: Record = {
+ image: 'images',
+ video: 'videos',
+ audio: 'audio',
+ document: 'documents',
+ text: 'texts',
+ unknown: 'unknowns',
+ };
+
+ const basePath = basePathMap[fileType];
+ return `${basePath}/${timestamp}-${randomSuffix}.${extension}`;
+ }
+}
diff --git a/src/modules/uploader/providers/uploader.service.ts b/src/modules/uploader/providers/uploader.service.ts
new file mode 100644
index 0000000..9bda649
--- /dev/null
+++ b/src/modules/uploader/providers/uploader.service.ts
@@ -0,0 +1,133 @@
+import { File } from '@nest-lab/fastify-multer';
+import { BadRequestException, Injectable, Logger } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+
+import { S3Service } from './s3.service';
+import { UploaderMessage } from '../../../common/enums/message.enum';
+import { FileType } from '../interfaces/file.interface';
+
+@Injectable()
+export class UploaderService {
+ private readonly logger = new Logger(UploaderService.name);
+ private readonly maxFileSize: number;
+ private readonly allowedMimeTypes: string[];
+
+ constructor(
+ private readonly configService: ConfigService,
+ private readonly s3Service: S3Service,
+ ) {
+ this.maxFileSize = this.configService.get('MAX_FILE_SIZE', 1024 * 1024 * 100); // 100MB
+ this.allowedMimeTypes = [
+ 'video/mp4',
+ 'video/webm',
+ 'video/ogg',
+ 'video/avi',
+ 'video/mov',
+ 'video/mkv',
+ 'audio/mp3',
+ 'audio/wav',
+ 'audio/ogg',
+ 'audio/webm',
+ 'audio/m4a',
+ 'audio/aac',
+ 'audio/flac',
+ 'audio/m4a',
+ 'image/jpeg',
+ 'image/png',
+ 'image/gif',
+ 'image/webp',
+ 'image/svg+xml',
+ 'image/tiff',
+ 'image/bmp',
+ 'application/pdf',
+ 'text/plain',
+ 'text/csv',
+ 'application/msword',
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
+ 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
+ 'application/vnd.ms-excel',
+ 'application/vnd.ms-powerpoint',
+ 'application/vnd.ms-excel.sheet.macroEnabled.12',
+ 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
+ 'application/vnd.ms-excel.template.macroEnabled.12',
+ 'application/vnd.ms-powerpoint.template.macroEnabled.12',
+ 'application/vnd.ms-excel.addin.macroEnabled.12',
+ 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
+ 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
+ 'application/vnd.ms-powerpoint.presentation.binary.macroEnabled.12',
+ 'application/vnd.ms-excel.template.binary.macroEnabled.12',
+ 'application/vnd.ms-powerpoint.template.binary.macroEnabled.12',
+ 'application/vnd.ms-excel.addin.binary.macroEnabled.12',
+ ];
+ }
+
+ async uploadMultiple(files: File[]) {
+ return await Promise.all(files.map(file => this.uploadFile(file)));
+ }
+
+ /**
+ * Handle file upload
+ */
+ async uploadFile(file: File) {
+ if (!file || !file.buffer || !file.size) {
+ throw new BadRequestException(UploaderMessage.UPLOAD_FILE_INVALID);
+ }
+ this.logger.log(`Uploading file: ${file.originalname}`);
+
+ this.validateFile(file);
+
+ const fileType = await this.determineFileType(file.mimetype);
+
+ const s3Key = this.s3Service.generateFileKey(file.originalname, fileType);
+
+ // Upload to S3
+ const s3Result = await this.s3Service.uploadFile(file.buffer, s3Key, file.mimetype, {
+ originalName: file.originalname,
+ uploadedBy: 'admin',
+ });
+
+ this.logger.log(`File uploaded successfully: `);
+
+ return {
+ file: s3Result,
+ url: s3Result.url,
+ };
+ }
+
+ /**
+ * Validate uploaded file
+ */
+ private validateFile(file: File): void {
+ if (!file) throw new BadRequestException(UploaderMessage.UPLOAD_FILE_INVALID);
+
+ if (file.size && file.size > this.maxFileSize)
+ throw new BadRequestException(
+ UploaderMessage.UPLOAD_FILE_TOO_LARGE.replace('[MAX_FILE_SIZE]', this.maxFileSize.toString()),
+ );
+
+ if (!this.allowedMimeTypes.includes(file.mimetype))
+ throw new BadRequestException(
+ UploaderMessage.UPLOAD_FILE_TYPE_NOT_SUPPORTED.replace('[MIME_TYPES]', file.mimetype),
+ );
+ }
+
+ /**
+ * Determine file type based on mimetype
+ */
+ private async determineFileType(mimetype: string): Promise {
+ if (mimetype.startsWith('video/')) {
+ return 'video';
+ } else if (mimetype.startsWith('audio/')) {
+ return 'audio';
+ } else if (mimetype.startsWith('image/')) {
+ return 'image';
+ } else if (mimetype.startsWith('text/')) {
+ return 'text';
+ } else if (mimetype.startsWith('application/')) {
+ return 'document';
+ }
+ return 'unknown';
+ }
+}
diff --git a/src/modules/uploader/uploader.module.ts b/src/modules/uploader/uploader.module.ts
new file mode 100644
index 0000000..960cc78
--- /dev/null
+++ b/src/modules/uploader/uploader.module.ts
@@ -0,0 +1,14 @@
+import { Module } from '@nestjs/common';
+
+import { S3Service } from './providers/s3.service';
+import { UploaderService } from './providers/uploader.service';
+import { UploaderController } from './controllers/uploader.controller';
+import { JwtModule } from '@nestjs/jwt';
+
+@Module({
+ controllers: [UploaderController],
+ providers: [UploaderService, S3Service],
+ exports: [UploaderService, S3Service],
+ imports: [JwtModule],
+})
+export class UploaderModule {}
diff --git a/src/modules/users/controllers/users.controller.ts b/src/modules/users/controllers/users.controller.ts
new file mode 100644
index 0000000..a32a6de
--- /dev/null
+++ b/src/modules/users/controllers/users.controller.ts
@@ -0,0 +1,183 @@
+import { Controller, Get, UseGuards, Patch, Body, ValidationPipe, Post, Query, Delete, Param } from '@nestjs/common';
+import { ApiTags, ApiBearerAuth, ApiOperation, ApiBody, ApiOkResponse, ApiHeader } from '@nestjs/swagger';
+import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
+import { UserService } from '../providers/user.service';
+import { UpdateUserDto } from '../dto/update-user.dto';
+import { CreateUserAddressDto } from '../dto/create-user-address.dto';
+import { UpdateUserAddressDto } from '../dto/update-user-address.dto';
+import { UserId } from 'src/common/decorators/user-id.decorator';
+import { RestId } from 'src/common/decorators';
+import { FindUsersDto } from '../dto/find-user.dto';
+import { FindWalletTransactionsDto } from '../dto/find-wallet-transactions.dto';
+import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
+import { API_HEADER_SLUG } from 'src/common/constants/index';
+import { UserSuccessMessage } from 'src/common/enums/message.enum';
+import { Permissions } from 'src/common/decorators/permissions.decorator';
+import { Permission } from 'src/common/enums/permission.enum';
+import { WalletService } from '../providers/wallet.service';
+
+@ApiTags('User')
+@Controller()
+export class UsersController {
+ constructor(
+ private readonly userService: UserService,
+ private readonly walletService: WalletService,
+ ) {}
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get the current authenticated user profile' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('public/user/me')
+ async getUser(@UserId() userId: string) {
+ const user = await this.userService.findById(userId);
+ return user;
+ }
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Update the authenticated user profile' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBody({ type: UpdateUserDto })
+ @Patch('public/user/update')
+ async updateUser(@UserId() userId: string, @RestId() restId: string, @Body() dto: UpdateUserDto) {
+ const user = await this.userService.updateUser(userId, restId, dto);
+ return user;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get all addresses for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOkResponse({ description: 'List of user addresses' })
+ @Get('public/user/addresses')
+ async getUserAddresses(@UserId() userId: string) {
+ const addresses = await this.userService.getUserAddresses(userId);
+ return addresses;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get User Wallet' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('public/user/wallet/balance')
+ async getUserWalletBalance(@UserId() userId: string, @RestId() restId: string) {
+ const wallet = await this.walletService.getUserCurrentWalletBalance(userId, restId);
+ return wallet;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get User Wallet' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('public/user/points/balance')
+ async getUserWallet(@UserId() userId: string, @RestId() restId: string) {
+ const wallet = await this.walletService.getUserCurrentPoinrBalance(userId, restId);
+ return wallet;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get User Wallet Transactions' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Get('public/user/wallet/transactions')
+ async getUserWalletTransactions(
+ @UserId() userId: string,
+ @RestId() restId: string,
+ @Query(new ValidationPipe({ transform: true, whitelist: true }))
+ query: FindWalletTransactionsDto,
+ ) {
+ const transactions = await this.userService.getUserWalletTransactions(userId, restId, query);
+ return transactions;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Create a new address for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBody({ type: CreateUserAddressDto })
+ @ApiOkResponse({ description: 'Created user address' })
+ @Post('public/user/addresses')
+ async createUserAddress(
+ @UserId() userId: string,
+ @Body(new ValidationPipe({ transform: true, whitelist: true })) dto: CreateUserAddressDto,
+ ) {
+ const address = await this.userService.createUserAddress(userId, dto);
+ return address;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Get a single address by ID for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOkResponse({ description: 'User address details' })
+ @Get('public/user/addresses/:addressId')
+ async getUserAddress(@UserId() userId: string, @Param('addressId') addressId: string) {
+ const address = await this.userService.getUserAddress(userId, addressId);
+ return address;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Update an address for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiBody({ type: UpdateUserAddressDto })
+ @ApiOkResponse({ description: 'Updated user address' })
+ @Patch('public/user/addresses/:addressId')
+ async updateUserAddress(
+ @UserId() userId: string,
+ @Param('addressId') addressId: string,
+ @Body(new ValidationPipe({ transform: true, whitelist: true })) dto: UpdateUserAddressDto,
+ ) {
+ const address = await this.userService.updateUserAddress(userId, addressId, dto);
+ return address;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Delete an address for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOkResponse({ description: 'Address deleted successfully' })
+ @Delete('public/user/addresses/:addressId')
+ async deleteUserAddress(@UserId() userId: string, @Param('addressId') addressId: string) {
+ await this.userService.deleteUserAddress(userId, addressId);
+ return { message: UserSuccessMessage.ADDRESS_DELETED_SUCCESS };
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Set an address as default for the authenticated user' })
+ @ApiHeader(API_HEADER_SLUG)
+ @ApiOkResponse({ description: 'Address set as default' })
+ @Patch('public/user/addresses/:addressId/default')
+ async setDefaultAddress(@UserId() userId: string, @Param('addressId') addressId: string) {
+ const address = await this.userService.setDefaultAddress(userId, addressId);
+ return address;
+ }
+
+ @UseGuards(AuthGuard)
+ @ApiBearerAuth()
+ @ApiOperation({ summary: 'Convert user score (points) to wallet balance' })
+ @ApiHeader(API_HEADER_SLUG)
+ @Post('public/user/convert-score-to-wallet')
+ async convertScoreToWallet(@UserId() userId: string, @RestId() restId: string) {
+ await this.userService.convertScoreToWallet(userId, restId);
+ return {
+ message: UserSuccessMessage.SCORE_CONVERTED_SUCCESS,
+ };
+ }
+
+ /******************** Admin Routes **********************/
+
+ @UseGuards(AdminAuthGuard)
+ @ApiBearerAuth()
+ @Permissions(Permission.MANAGE_USERS)
+ @ApiOperation({ summary: 'Get paginated list of restuarant users with filters' })
+ @Get('admin/users')
+ async findAllRestaurantUsers(
+ @Query(new ValidationPipe({ transform: true, whitelist: true }))
+ query: FindUsersDto,
+ @RestId() restId: string,
+ ) {
+ return this.userService.findAll(restId, query);
+ }
+}
diff --git a/src/modules/users/dto/create-user-address.dto.ts b/src/modules/users/dto/create-user-address.dto.ts
new file mode 100644
index 0000000..0e6a454
--- /dev/null
+++ b/src/modules/users/dto/create-user-address.dto.ts
@@ -0,0 +1,51 @@
+import { IsString, IsOptional, IsNumber, IsBoolean, Min, Max } from 'class-validator';
+import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
+
+/**
+ * DTO for creating a new user address.
+ */
+export class CreateUserAddressDto {
+ @ApiProperty({ description: 'Address title/label (e.g., "Home", "Work")', example: 'Home' })
+ @IsString()
+ title!: string;
+
+ @ApiProperty({ description: 'Street address', example: '123 Main Street' })
+ @IsString()
+ address!: string;
+
+ @ApiProperty({ description: 'City name', example: 'Tehran' })
+ @IsString()
+ city!: string;
+
+ @ApiPropertyOptional({ description: 'Province', example: 'Tehran Province' })
+ @IsOptional()
+ @IsString()
+ province?: string;
+
+ @ApiPropertyOptional({ description: 'Postal/ZIP code', example: '12345-6789' })
+ @IsOptional()
+ @IsString()
+ postalCode?: string;
+
+ @ApiProperty({ description: 'Latitude coordinate', example: 35.6892, minimum: -90, maximum: 90 })
+ @IsNumber()
+ @Min(-90)
+ @Max(90)
+ latitude!: number;
+
+ @ApiProperty({ description: 'Longitude coordinate', example: 51.389, minimum: -180, maximum: 180 })
+ @IsNumber()
+ @Min(-180)
+ @Max(180)
+ longitude!: number;
+
+ @ApiPropertyOptional({ description: 'Contact phone for this address', example: '+989123456789' })
+ @IsOptional()
+ @IsString()
+ phone?: string;
+
+ @ApiPropertyOptional({ description: 'Set as default address', example: false, default: false })
+ @IsOptional()
+ @IsBoolean()
+ isDefault?: boolean;
+}
diff --git a/src/modules/users/dto/create-wallet-transaction.dto.ts b/src/modules/users/dto/create-wallet-transaction.dto.ts
new file mode 100644
index 0000000..7f52fc3
--- /dev/null
+++ b/src/modules/users/dto/create-wallet-transaction.dto.ts
@@ -0,0 +1,34 @@
+import { IsNotEmpty, IsNumber, IsIn } from 'class-validator';
+import { Type } from 'class-transformer';
+import { ApiProperty } from '@nestjs/swagger';
+import { WalletTransactionType, WalletTransactionReason } from '../interface/wallet';
+
+export class CreateWalletTransactionDto {
+ @ApiProperty({
+ description: 'Transaction amount',
+ type: Number,
+ example: 1000,
+ })
+ @IsNotEmpty()
+ @IsNumber()
+ @Type(() => Number)
+ amount!: number;
+
+ @ApiProperty({
+ description: 'Transaction type',
+ enum: WalletTransactionType,
+ example: WalletTransactionType.CREDIT,
+ })
+ @IsNotEmpty()
+ @IsIn(Object.values(WalletTransactionType))
+ type!: WalletTransactionType;
+
+ @ApiProperty({
+ description: 'Transaction reason',
+ enum: WalletTransactionReason,
+ example: WalletTransactionReason.ORDER_PAYMENT,
+ })
+ @IsNotEmpty()
+ @IsIn(Object.values(WalletTransactionReason))
+ reason!: WalletTransactionReason;
+}
diff --git a/src/modules/users/dto/find-user.dto.ts b/src/modules/users/dto/find-user.dto.ts
new file mode 100644
index 0000000..ba3852b
--- /dev/null
+++ b/src/modules/users/dto/find-user.dto.ts
@@ -0,0 +1,80 @@
+import { IsOptional, IsString, IsNumber, Min, IsIn } from 'class-validator';
+import { Type } from 'class-transformer';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { User } from '../entities/user.entity';
+
+// Define the valid sort directions
+const sortOrderOptions = ['asc', 'desc'] as const;
+type SortOrder = (typeof sortOrderOptions)[number];
+
+export class FindUsersDto {
+ /**
+ * The page number to retrieve.
+ * @default 1
+ */
+ @ApiPropertyOptional({
+ description: 'شماره صفحه',
+ type: Number,
+ default: 1,
+ minimum: 1,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Min(1)
+ @Type(() => Number)
+ page?: number = 1;
+
+ /**
+ * The number of items per page.
+ * @default 10
+ */
+ @ApiPropertyOptional({
+ description: 'تعداد مورد در هر صفحه',
+ type: Number,
+ default: 10,
+ minimum: 1,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Min(1)
+ @Type(() => Number)
+ limit?: number = 10;
+
+ /**
+ * A general search term to filter by.
+ * Searches firstName, lastName, phone, and nationalCode.
+ */
+ @ApiPropertyOptional({
+ description: 'جستجو بر اساس نام، نامخانوادگی یا شماره تماس',
+ type: String,
+ })
+ @IsOptional()
+ @IsString()
+ search?: string;
+
+ /**
+ * The field to sort the results by.
+ * @default "createdAt"
+ */
+ @ApiPropertyOptional({
+ description: 'فیلد مرتبسازی',
+ type: String,
+ default: 'createdAt',
+ })
+ @IsOptional()
+ @IsString()
+ orderBy?: keyof User = 'createdAt';
+
+ /**
+ * The direction to sort the results.
+ * @default "desc"
+ */
+ @ApiPropertyOptional({
+ description: 'جهت مرتبسازی (asc یا desc)',
+ enum: sortOrderOptions,
+ default: 'desc',
+ })
+ @IsOptional()
+ @IsIn(sortOrderOptions)
+ order?: SortOrder = 'desc';
+}
diff --git a/src/modules/users/dto/find-wallet-transactions.dto.ts b/src/modules/users/dto/find-wallet-transactions.dto.ts
new file mode 100644
index 0000000..2aa5d4b
--- /dev/null
+++ b/src/modules/users/dto/find-wallet-transactions.dto.ts
@@ -0,0 +1,136 @@
+import { IsOptional, IsString, IsNumber, Min, IsIn, IsDateString } from 'class-validator';
+import { Type } from 'class-transformer';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+import { WalletTransactionType, WalletTransactionReason } from '../interface/wallet';
+
+// Define the valid sort directions
+const sortOrderOptions = ['asc', 'desc'] as const;
+type SortOrder = (typeof sortOrderOptions)[number];
+
+export class FindWalletTransactionsDto {
+ /**
+ * The page number to retrieve.
+ * @default 1
+ */
+ @ApiPropertyOptional({
+ description: 'Page number',
+ type: Number,
+ default: 1,
+ minimum: 1,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Min(1)
+ @Type(() => Number)
+ page?: number = 1;
+
+ /**
+ * The number of items per page.
+ * @default 10
+ */
+ @ApiPropertyOptional({
+ description: 'Items per page',
+ type: Number,
+ default: 10,
+ minimum: 1,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Min(1)
+ @Type(() => Number)
+ limit?: number = 10;
+
+ /**
+ * Filter by transaction type
+ */
+ @ApiPropertyOptional({
+ description: 'Transaction type filter',
+ enum: WalletTransactionType,
+ })
+ @IsOptional()
+ @IsIn(Object.values(WalletTransactionType))
+ type?: WalletTransactionType;
+
+ /**
+ * Filter by transaction reason
+ */
+ @ApiPropertyOptional({
+ description: 'Transaction reason filter',
+ enum: WalletTransactionReason,
+ })
+ @IsOptional()
+ @IsIn(Object.values(WalletTransactionReason))
+ reason?: WalletTransactionReason;
+
+ /**
+ * Filter transactions from this date onwards
+ */
+ @ApiPropertyOptional({
+ description: 'Start date filter (ISO 8601 format)',
+ type: String,
+ })
+ @IsOptional()
+ @IsDateString()
+ startDate?: string;
+
+ /**
+ * Filter transactions up to this date
+ */
+ @ApiPropertyOptional({
+ description: 'End date filter (ISO 8601 format)',
+ type: String,
+ })
+ @IsOptional()
+ @IsDateString()
+ endDate?: string;
+
+ /**
+ * Minimum amount filter
+ */
+ @ApiPropertyOptional({
+ description: 'Minimum amount filter',
+ type: Number,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ minAmount?: number;
+
+ /**
+ * Maximum amount filter
+ */
+ @ApiPropertyOptional({
+ description: 'Maximum amount filter',
+ type: Number,
+ })
+ @IsOptional()
+ @IsNumber()
+ @Type(() => Number)
+ maxAmount?: number;
+
+ /**
+ * The field to sort the results by.
+ * @default "createdAt"
+ */
+ @ApiPropertyOptional({
+ description: 'Sort field',
+ type: String,
+ default: 'createdAt',
+ })
+ @IsOptional()
+ @IsString()
+ orderBy?: string = 'createdAt';
+
+ /**
+ * The direction to sort the results.
+ * @default "desc"
+ */
+ @ApiPropertyOptional({
+ description: 'Sort direction',
+ enum: sortOrderOptions,
+ default: 'desc',
+ })
+ @IsOptional()
+ @IsIn(sortOrderOptions)
+ order?: SortOrder = 'desc';
+}
diff --git a/src/modules/users/dto/update-user-address.dto.ts b/src/modules/users/dto/update-user-address.dto.ts
new file mode 100644
index 0000000..e82330c
--- /dev/null
+++ b/src/modules/users/dto/update-user-address.dto.ts
@@ -0,0 +1,56 @@
+import { IsString, IsOptional, IsNumber, IsBoolean, Min, Max } from 'class-validator';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+
+/**
+ * DTO for updating a user address.
+ */
+export class UpdateUserAddressDto {
+ @ApiPropertyOptional({ description: 'Address title/label (e.g., "Home", "Work")', example: 'Home' })
+ @IsOptional()
+ @IsString()
+ title?: string;
+
+ @ApiPropertyOptional({ description: 'Street address', example: '123 Main Street' })
+ @IsOptional()
+ @IsString()
+ address?: string;
+
+ @ApiPropertyOptional({ description: 'City name', example: 'Tehran' })
+ @IsOptional()
+ @IsString()
+ city?: string;
+
+ @ApiPropertyOptional({ description: 'Province', example: 'Tehran Province' })
+ @IsOptional()
+ @IsString()
+ province?: string;
+
+ @ApiPropertyOptional({ description: 'Postal/ZIP code', example: '12345-6789' })
+ @IsOptional()
+ @IsString()
+ postalCode?: string;
+
+ @ApiPropertyOptional({ description: 'Latitude coordinate', example: 35.6892, minimum: -90, maximum: 90 })
+ @IsOptional()
+ @IsNumber()
+ @Min(-90)
+ @Max(90)
+ latitude?: number;
+
+ @ApiPropertyOptional({ description: 'Longitude coordinate', example: 51.389, minimum: -180, maximum: 180 })
+ @IsOptional()
+ @IsNumber()
+ @Min(-180)
+ @Max(180)
+ longitude?: number;
+
+ @ApiPropertyOptional({ description: 'Contact phone for this address', example: '+989123456789' })
+ @IsOptional()
+ @IsString()
+ phone?: string;
+
+ @ApiPropertyOptional({ description: 'Set as default address', example: false })
+ @IsOptional()
+ @IsBoolean()
+ isDefault?: boolean;
+}
diff --git a/src/modules/users/dto/update-user.dto.ts b/src/modules/users/dto/update-user.dto.ts
new file mode 100644
index 0000000..533545c
--- /dev/null
+++ b/src/modules/users/dto/update-user.dto.ts
@@ -0,0 +1,35 @@
+import { IsString, IsOptional, IsBoolean } from 'class-validator';
+import { ApiPropertyOptional } from '@nestjs/swagger';
+
+export class UpdateUserDto {
+ @ApiPropertyOptional({ description: "User's first name", example: 'John' })
+ @IsOptional()
+ @IsString()
+ firstName?: string;
+
+ @ApiPropertyOptional({ description: "User's last name", example: 'Doe' })
+ @IsOptional()
+ @IsString()
+ lastName?: string;
+
+ @ApiPropertyOptional({ description: "User's birth date (ISO)", example: '1990-01-01' })
+ @IsOptional()
+ // keep as string here, caller should send ISO date; service will assign to Date
+ @IsString()
+ birthDate?: string;
+
+ @ApiPropertyOptional({ description: "User's marriage date (ISO)", example: '2015-06-01' })
+ @IsOptional()
+ @IsString()
+ marriageDate?: string;
+
+ @ApiPropertyOptional({ description: 'Gender flag (boolean)', example: true })
+ @IsOptional()
+ @IsBoolean()
+ gender?: boolean;
+
+ @ApiPropertyOptional({ description: 'Avatar URL' })
+ @IsOptional()
+ @IsString()
+ avatarUrl?: string;
+}
diff --git a/src/modules/users/entities/point-transaction.entity.ts b/src/modules/users/entities/point-transaction.entity.ts
new file mode 100644
index 0000000..91e97a2
--- /dev/null
+++ b/src/modules/users/entities/point-transaction.entity.ts
@@ -0,0 +1,30 @@
+import { Entity, Property, ManyToOne, Index, Enum } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+import { User } from './user.entity';
+import { PointTransactionReason } from '../interface/point';
+import { PointTransactionType } from '../interface/point';
+
+@Entity({ tableName: 'point_transactions' })
+@Index({ properties: ['user', 'restaurant'] }) // Composite index for most common query: find wallet by user and restaurant
+@Index({ properties: ['user'] }) // Index for queries finding all wallets for a user
+@Index({ properties: ['restaurant'] }) // Index for queries finding all wallets for a restaurant
+export class PointTransaction extends BaseEntity {
+ @ManyToOne(() => User)
+ user!: User;
+
+ @ManyToOne(() => User)
+ restaurant!: Restaurant;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ amount!: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ balance!: number;
+
+ @Enum(() => PointTransaction)
+ type!: PointTransactionType;
+
+ @Enum(() => PointTransactionReason)
+ reason!: PointTransactionReason;
+}
diff --git a/src/modules/users/entities/user-address.entity.ts b/src/modules/users/entities/user-address.entity.ts
new file mode 100644
index 0000000..d2ae78c
--- /dev/null
+++ b/src/modules/users/entities/user-address.entity.ts
@@ -0,0 +1,36 @@
+import { Entity, Property, ManyToOne } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { User } from './user.entity';
+
+@Entity({ tableName: 'user_addresses' })
+export class UserAddress extends BaseEntity {
+ @ManyToOne(() => User)
+ user!: User;
+
+ @Property()
+ title!: string; // e.g., "Home", "Work", "Office"
+
+ @Property()
+ address!: string;
+
+ @Property()
+ city!: string;
+
+ @Property({ nullable: true })
+ province?: string;
+
+ @Property({ nullable: true })
+ postalCode?: string | null = null;
+
+ @Property({ type: 'float' })
+ latitude!: number;
+
+ @Property({ type: 'float' })
+ longitude!: number;
+
+ @Property({ nullable: true })
+ phone?: string; // Contact phone for this address
+
+ @Property({ default: false })
+ isDefault: boolean = false; // Whether this is the default address
+}
diff --git a/src/modules/users/entities/user.entity.ts b/src/modules/users/entities/user.entity.ts
new file mode 100644
index 0000000..794b103
--- /dev/null
+++ b/src/modules/users/entities/user.entity.ts
@@ -0,0 +1,53 @@
+import { Entity, Index, Property, OneToMany, Collection, Cascade } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { UserAddress } from './user-address.entity';
+import { Order } from 'src/modules/orders/entities/order.entity';
+import { normalizePhone } from '../../utils/phone.util';
+
+@Entity({ tableName: 'users' })
+@Index({ properties: ['isActive'] })
+export class User extends BaseEntity {
+ @OneToMany(() => Order, order => order.user)
+ orders = new Collection(this);
+
+ @Property()
+ firstName!: string;
+
+ @Property({ nullable: true })
+ lastName?: string;
+
+ private _phone!: string;
+
+ @Property({ unique: true })
+ get phone(): string {
+ return this._phone;
+ }
+
+ set phone(value: string) {
+ this._phone = normalizePhone(value);
+ }
+
+ @Property({ default: null, type: 'date', nullable: true })
+ birthDate?: Date;
+
+ @Property({ default: null, type: 'date', nullable: true })
+ marriageDate?: Date;
+
+ @Property({ nullable: true })
+ referrer?: string;
+
+ @Property({ default: true })
+ isActive?: boolean = true;
+
+ @Property({ default: true, nullable: true })
+ gender?: boolean;
+
+ @Property({ nullable: true })
+ avatarUrl?: string;
+
+ @OneToMany(() => UserAddress, address => address.user, {
+ cascade: [Cascade.ALL],
+ orphanRemoval: true,
+ })
+ addresses = new Collection(this);
+}
diff --git a/src/modules/users/entities/wallet-transaction.entity.ts b/src/modules/users/entities/wallet-transaction.entity.ts
new file mode 100644
index 0000000..087f9a2
--- /dev/null
+++ b/src/modules/users/entities/wallet-transaction.entity.ts
@@ -0,0 +1,29 @@
+import { Entity, Index, Property, ManyToOne, Enum } from '@mikro-orm/core';
+import { BaseEntity } from '../../../common/entities/base.entity';
+import { User } from './user.entity';
+import { WalletTransactionReason, WalletTransactionType } from '../interface/wallet';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+
+@Entity({ tableName: 'wallet_transactions' })
+@Index({ properties: ['user', 'restaurant'] })
+@Index({ properties: ['user'] })
+@Index({ properties: ['restaurant'] })
+export class WalletTransaction extends BaseEntity {
+ @ManyToOne(() => User)
+ user!: User;
+
+ @ManyToOne(() => Restaurant)
+ restaurant!: Restaurant;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ amount!: number;
+
+ @Property({ type: 'decimal', precision: 10, scale: 0 })
+ balance!: number;
+
+ @Enum(() => WalletTransactionType)
+ type!: WalletTransactionType;
+
+ @Enum(() => WalletTransactionReason)
+ reason!: WalletTransactionReason;
+}
diff --git a/src/modules/users/interface/point.ts b/src/modules/users/interface/point.ts
new file mode 100644
index 0000000..fa8a1c5
--- /dev/null
+++ b/src/modules/users/interface/point.ts
@@ -0,0 +1,10 @@
+export enum PointTransactionType {
+ CREDIT = 'credit',
+ DEBIT = 'debit',
+}
+
+
+export enum PointTransactionReason {
+ ORDER_COMPLETED_DEPOSIT = 'order_completed_deposit',
+ CONVERT_SCORE_TO_POINT = 'convert_score_to_point',
+}
\ No newline at end of file
diff --git a/src/modules/users/interface/wallet.ts b/src/modules/users/interface/wallet.ts
new file mode 100644
index 0000000..ad91490
--- /dev/null
+++ b/src/modules/users/interface/wallet.ts
@@ -0,0 +1,13 @@
+export enum WalletTransactionType {
+ CREDIT = 'credit',
+ DEBIT = 'debit',
+}
+
+
+export enum WalletTransactionReason {
+ ORDER_PAYMENT = 'order_payment',
+ ORDER_REFUND = 'order_refund',
+ CONVERT_SCORE_TO_WALLET = 'convert_score_to_wallet',
+ WITHDRAW = 'withdraw',
+ DEPOSIT = 'deposit',
+}
\ No newline at end of file
diff --git a/src/modules/users/providers/user.service.ts b/src/modules/users/providers/user.service.ts
new file mode 100644
index 0000000..bbc2972
--- /dev/null
+++ b/src/modules/users/providers/user.service.ts
@@ -0,0 +1,388 @@
+import { Injectable, NotFoundException, BadRequestException } from '@nestjs/common';
+import { FilterQuery, RequiredEntityData } from '@mikro-orm/core';
+import { User } from '../entities/user.entity';
+import { UserAddress } from '../entities/user-address.entity';
+import { Restaurant } from 'src/modules/restaurants/entities/restaurant.entity';
+import { EntityManager } from '@mikro-orm/postgresql';
+import { UpdateUserDto } from '../dto/update-user.dto';
+import { FindUsersDto } from '../dto/find-user.dto';
+import { FindWalletTransactionsDto } from '../dto/find-wallet-transactions.dto';
+import { CreateWalletTransactionDto } from '../dto/create-wallet-transaction.dto';
+import { CreateUserAddressDto } from '../dto/create-user-address.dto';
+import { UpdateUserAddressDto } from '../dto/update-user-address.dto';
+import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
+import { UserRepository } from '../repositories/user.repository';
+import { normalizePhone } from '../../utils/phone.util';
+import { RestRepository } from 'src/modules/restaurants/repositories/rest.repository';
+import { WalletTransactionRepository } from '../repositories/wallet-transaction.repository';
+import { WalletService } from './wallet.service';
+import { WalletTransactionReason, WalletTransactionType } from '../interface/wallet';
+import { WalletTransaction } from '../entities/wallet-transaction.entity';
+
+@Injectable()
+export class UserService {
+ constructor(
+ private readonly userRepository: UserRepository,
+ private readonly restaurantRepository: RestRepository,
+ private readonly walletTransactionRepository: WalletTransactionRepository,
+ private readonly walletService: WalletService,
+ private readonly em: EntityManager,
+ ) { }
+
+ async findOrCreateByPhone(phone: string): Promise {
+ const normalizedPhone = normalizePhone(phone);
+ let user = await this.userRepository.findOne({ phone: normalizedPhone });
+
+ if (!user) {
+ // firstName is required on the entity; use phone as a sensible default
+ const _raw = {
+ phone: normalizedPhone,
+ firstName: '[نام]',
+ // keep dates undefined (no value) — cast through unknown to satisfy TS typing
+ birthDate: undefined,
+ marriageDate: undefined,
+ wallet: 0,
+ points: 0,
+ };
+
+ const createData = _raw as unknown as RequiredEntityData;
+
+ user = this.userRepository.create(createData);
+ await this.em.persistAndFlush(user);
+ }
+
+ return user;
+ }
+
+ // async updateUser(userId: string, dto: UpdateUserDto): Promise