import { Body, Controller, Get, Post } from '@nestjs/common';
import { SocialMediaService } from './social-media.service';
import { ApiBody, ApiProperty } from '@nestjs/swagger';
import { CreateScheduledPostDto } from './dto/scheduled-post.dto';

@Controller({ path: 'social-media', version: '1' })
export class SocialMediaController {
  constructor(private readonly socialMediaService: SocialMediaService) {}

  @Post('publish-post')
  @ApiProperty({
    description: 'Publish a post to social media platforms',
  })
  @ApiBody({
    type: CreateScheduledPostDto,
  })
  async publishPost(@Body() createScheduledPostDto: CreateScheduledPostDto) {
    return this.socialMediaService.publishPost({
      alertId: createScheduledPostDto.alertId,
      platform: createScheduledPostDto.platform,
      content: createScheduledPostDto.content,
      imageUrl: createScheduledPostDto.imageUrl,
      scheduledTime: createScheduledPostDto.scheduledTime,
      status: 'pending',
      createdAt: new Date(),
    });
  }

  @Get('verify-linkedin-token')
  async verifyLinkedinToken() {
    return this.socialMediaService.verifyLinkedin();
  }
}
