fix schedule
This commit is contained in:
@@ -1,11 +1,14 @@
|
|||||||
import { IsString, IsNumber, IsBoolean, IsOptional, Min, Max } from 'class-validator';
|
import { IsNumber, IsBoolean, IsOptional, IsString, Min, Max } from 'class-validator';
|
||||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||||
import { Type } from 'class-transformer';
|
import { Type } from 'class-transformer';
|
||||||
|
|
||||||
export class CreateScheduleDto {
|
export class CreateScheduleDto {
|
||||||
@ApiProperty({ example: '2024-01-15', description: 'تاریخ برای برنامه' })
|
@ApiProperty({ example: 1, description: 'روز هفته (۰=یکشنبه، ۶=شنبه)' })
|
||||||
@IsString()
|
@IsNumber()
|
||||||
date!: string;
|
@Min(0)
|
||||||
|
@Max(6)
|
||||||
|
@Type(() => Number)
|
||||||
|
weekDay!: number;
|
||||||
|
|
||||||
@ApiProperty({ example: 900, description: 'زمان باز شدن (دقیقه از نیمه شب)' })
|
@ApiProperty({ example: 900, description: 'زمان باز شدن (دقیقه از نیمه شب)' })
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
@@ -26,5 +29,8 @@ export class CreateScheduleDto {
|
|||||||
@IsBoolean()
|
@IsBoolean()
|
||||||
@Type(() => Boolean)
|
@Type(() => Boolean)
|
||||||
isActive?: boolean;
|
isActive?: boolean;
|
||||||
|
|
||||||
|
@ApiProperty({ example: 'rest-ulid-123', description: 'شناسه رستوران' })
|
||||||
|
@IsString()
|
||||||
|
restId!: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import { Entity, Property } from '@mikro-orm/core';
|
import { Entity, Property, Unique } from '@mikro-orm/core';
|
||||||
import { BaseEntity } from '../../../common/entities/base.entity';
|
import { BaseEntity } from '../../../common/entities/base.entity';
|
||||||
|
|
||||||
@Entity({ tableName: 'schedules' })
|
@Entity({ tableName: 'schedules' })
|
||||||
|
@Unique({ properties: ['restId', 'weekDay'] })
|
||||||
export class Schedule extends BaseEntity {
|
export class Schedule extends BaseEntity {
|
||||||
@Property({ type: 'date' })
|
@Property({ type: 'int' })
|
||||||
date!: Date;
|
weekDay!: number;
|
||||||
|
|
||||||
@Property({ type: 'int' })
|
@Property({ type: 'int' })
|
||||||
openTime!: number;
|
openTime!: number;
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ export class ScheduleService {
|
|||||||
|
|
||||||
async create(createScheduleDto: CreateScheduleDto): Promise<Schedule> {
|
async create(createScheduleDto: CreateScheduleDto): Promise<Schedule> {
|
||||||
const data: RequiredEntityData<Schedule> = {
|
const data: RequiredEntityData<Schedule> = {
|
||||||
date: new Date(createScheduleDto.date),
|
weekDay: createScheduleDto.weekDay,
|
||||||
openTime: createScheduleDto.openTime,
|
openTime: createScheduleDto.openTime,
|
||||||
closeTime: createScheduleDto.closeTime,
|
closeTime: createScheduleDto.closeTime,
|
||||||
isActive: createScheduleDto.isActive ?? true,
|
isActive: createScheduleDto.isActive ?? true,
|
||||||
restId: '01KA35CFFN0F6VA04DF0W6KCE3',
|
restId: createScheduleDto.restId,
|
||||||
};
|
};
|
||||||
|
|
||||||
const schedule = this.scheduleRepository.create(data);
|
const schedule = this.scheduleRepository.create(data);
|
||||||
@@ -49,8 +49,8 @@ export class ScheduleService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const updateData: Partial<Schedule> = {};
|
const updateData: Partial<Schedule> = {};
|
||||||
if (updateScheduleDto.date) {
|
if (updateScheduleDto.weekDay !== undefined) {
|
||||||
updateData.date = new Date(updateScheduleDto.date);
|
updateData.weekDay = updateScheduleDto.weekDay;
|
||||||
}
|
}
|
||||||
if (updateScheduleDto.openTime !== undefined) {
|
if (updateScheduleDto.openTime !== undefined) {
|
||||||
updateData.openTime = updateScheduleDto.openTime;
|
updateData.openTime = updateScheduleDto.openTime;
|
||||||
@@ -61,6 +61,9 @@ export class ScheduleService {
|
|||||||
if (updateScheduleDto.isActive !== undefined) {
|
if (updateScheduleDto.isActive !== undefined) {
|
||||||
updateData.isActive = updateScheduleDto.isActive;
|
updateData.isActive = updateScheduleDto.isActive;
|
||||||
}
|
}
|
||||||
|
if (updateScheduleDto.restId) {
|
||||||
|
updateData.restId = updateScheduleDto.restId;
|
||||||
|
}
|
||||||
|
|
||||||
this.em.assign(schedule, updateData);
|
this.em.assign(schedule, updateData);
|
||||||
await this.em.persistAndFlush(schedule);
|
await this.em.persistAndFlush(schedule);
|
||||||
|
|||||||
Reference in New Issue
Block a user