diff --git a/backend/prisma/migrations/0005_add_slot_duration_minutes/migration.sql b/backend/prisma/migrations/0005_add_slot_duration_minutes/migration.sql new file mode 100644 index 0000000..4f3bfc5 --- /dev/null +++ b/backend/prisma/migrations/0005_add_slot_duration_minutes/migration.sql @@ -0,0 +1 @@ +ALTER TABLE "professionals" ADD COLUMN IF NOT EXISTS "slot_duration_minutes" INTEGER NOT NULL DEFAULT 30; diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index d1020d4..b17d336 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -96,6 +96,7 @@ model professionals { latitude Decimal? @db.Decimal(10, 7) longitude Decimal? @db.Decimal(10, 7) average_score Decimal? @default(0) @db.Decimal(3, 2) + slot_duration_minutes Int @default(30) is_active Boolean? @default(true) created_at DateTime @default(now()) @db.Timestamptz(6) updated_at DateTime @default(now()) @db.Timestamptz(6) diff --git a/backend/src/professionals/dto/professional.dto.ts b/backend/src/professionals/dto/professional.dto.ts index ef20a31..7433e1a 100644 --- a/backend/src/professionals/dto/professional.dto.ts +++ b/backend/src/professionals/dto/professional.dto.ts @@ -1,4 +1,4 @@ -import { IsString, IsOptional, IsArray, IsNumber, IsBoolean, MinLength, Matches, IsObject } from 'class-validator'; +import { IsString, IsOptional, IsArray, IsNumber, IsBoolean, IsInt, Min, Max, MinLength, Matches, IsObject } from 'class-validator'; export class CreateProfessionalDto { @IsString() @@ -81,6 +81,12 @@ export class UpdateProfessionalDto { @IsString() location_preferences?: string; + @IsOptional() + @IsInt() + @Min(5) + @Max(480) + slot_duration_minutes?: number; + @IsOptional() @IsObject() payment_methods?: {