import { ApiPropertyOptional, PartialType } from '@nestjs/swagger';
import { IsEnum, IsOptional } from 'class-validator';
import { ZoomWebinarStatus } from 'src/common/enum/zoom-webinar-status.enum';
import { CreateOnlineSessionDto } from './create-online-session.dto';

/**
 * All fields optional; only provided fields are pushed to the provider and persisted.
 */
export class UpdateOnlineSessionDto extends PartialType(CreateOnlineSessionDto) {
  @ApiPropertyOptional({
    description:
      'Lifecycle status. Normally driven automatically by Zoom webhooks (draft on create → published on start → completed on end); set here only to override manually.',
    enum: ZoomWebinarStatus,
  })
  @IsOptional()
  @IsEnum(ZoomWebinarStatus)
  status?: ZoomWebinarStatus;
}
