import { IsString, MinLength, MaxLength, IsOptional, IsArray, IsBoolean } from 'class-validator';

export class SendMessageDto {
  @IsString()
  @MaxLength(40000)
  text!: string;

  @IsOptional()
  @IsArray()
  blocks?: any[];

  @IsOptional()
  @IsString()
  thread_root_id?: string;

  @IsOptional()
  @IsArray()
  @IsString({ each: true })
  mentioned_users?: string[];

  @IsOptional()
  @IsArray()
  @IsString({ each: true })
  mentioned_channels?: string[];

  @IsOptional()
  @IsString()
  scheduled_for?: string;
}

export class EditMessageDto {
  @IsString()
  @MaxLength(40000)
  text!: string;

  @IsOptional()
  @IsArray()
  blocks?: any[];
}

export class CreateReactionDto {
  @IsString()
  @MaxLength(50)
  emoji!: string;
}

export class CreateScheduledMessageDto {
  @IsString()
  @MaxLength(40000)
  text!: string;

  @IsString()
  channel_id!: string;

  @IsString()
  scheduled_at!: string;
}