diff --git a/src/modules/orders/entities/order-item.entity.ts b/src/modules/orders/entities/order-item.entity.ts index 8c996ab..a3dace0 100644 --- a/src/modules/orders/entities/order-item.entity.ts +++ b/src/modules/orders/entities/order-item.entity.ts @@ -5,7 +5,6 @@ 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; diff --git a/src/modules/orders/entities/order.entity.ts b/src/modules/orders/entities/order.entity.ts index 592627b..48c2a6d 100644 --- a/src/modules/orders/entities/order.entity.ts +++ b/src/modules/orders/entities/order.entity.ts @@ -22,11 +22,9 @@ 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'] }) @Index({ properties: ['restaurant', 'status'] }) -@Index({ properties: ['user', 'status'] }) @Index({ properties: ['restaurant', 'orderNumber'] }) -@Index({ properties: ['status'] }) export class Order extends BaseEntity { @ManyToOne(() => User) user!: User; diff --git a/src/modules/restaurants/entities/restaurant.entity.ts b/src/modules/restaurants/entities/restaurant.entity.ts index fa472be..c0f7c62 100644 --- a/src/modules/restaurants/entities/restaurant.entity.ts +++ b/src/modules/restaurants/entities/restaurant.entity.ts @@ -4,8 +4,8 @@ import { Delivery } from '../../delivery/entities/delivery.entity'; import { PlanEnum } from '../interface/plan.interface'; @Entity({ tableName: 'restaurants' }) -@Index({ properties: ['isActive'] }) @Index({ properties: ['slug', 'isActive'] }) +@Index({ properties: ['slug'] }) export class Restaurant extends BaseEntity { // --- اطلاعات پایه --- @Property() diff --git a/src/modules/restaurants/entities/schedule.entity.ts b/src/modules/restaurants/entities/schedule.entity.ts index e78fedf..4354c07 100644 --- a/src/modules/restaurants/entities/schedule.entity.ts +++ b/src/modules/restaurants/entities/schedule.entity.ts @@ -1,7 +1,8 @@ -import { Entity, Property } from '@mikro-orm/core'; +import { Entity, Index, Property } from '@mikro-orm/core'; import { BaseEntity } from '../../../common/entities/base.entity'; @Entity({ tableName: 'schedules' }) +@Index({ properties: ['restId'] }) export class Schedule extends BaseEntity { @Property({ type: 'int' }) weekDay!: number; diff --git a/src/modules/users/entities/point-transaction.entity.ts b/src/modules/users/entities/point-transaction.entity.ts index 91e97a2..077e5a7 100644 --- a/src/modules/users/entities/point-transaction.entity.ts +++ b/src/modules/users/entities/point-transaction.entity.ts @@ -7,8 +7,6 @@ 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; diff --git a/src/modules/users/entities/user-address.entity.ts b/src/modules/users/entities/user-address.entity.ts index d2ae78c..3600cc2 100644 --- a/src/modules/users/entities/user-address.entity.ts +++ b/src/modules/users/entities/user-address.entity.ts @@ -1,8 +1,9 @@ -import { Entity, Property, ManyToOne } from '@mikro-orm/core'; +import { Entity, Property, ManyToOne, Index } from '@mikro-orm/core'; import { BaseEntity } from '../../../common/entities/base.entity'; import { User } from './user.entity'; @Entity({ tableName: 'user_addresses' }) +@Index({ properties: ['user'] }) export class UserAddress extends BaseEntity { @ManyToOne(() => User) user!: User; diff --git a/src/modules/users/entities/user.entity.ts b/src/modules/users/entities/user.entity.ts index 794b103..2ae5bc2 100644 --- a/src/modules/users/entities/user.entity.ts +++ b/src/modules/users/entities/user.entity.ts @@ -5,7 +5,7 @@ import { Order } from 'src/modules/orders/entities/order.entity'; import { normalizePhone } from '../../utils/phone.util'; @Entity({ tableName: 'users' }) -@Index({ properties: ['isActive'] }) +@Index({ properties: ['phone'] }) export class User extends BaseEntity { @OneToMany(() => Order, order => order.user) orders = new Collection(this); diff --git a/src/modules/users/entities/wallet-transaction.entity.ts b/src/modules/users/entities/wallet-transaction.entity.ts index 087f9a2..6436e9e 100644 --- a/src/modules/users/entities/wallet-transaction.entity.ts +++ b/src/modules/users/entities/wallet-transaction.entity.ts @@ -6,8 +6,6 @@ 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;