import { Body, Controller, HttpCode, Post, UseInterceptors } from '@nestjs/common'
import { ApiBadRequestResponse, ApiInternalServerErrorResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger'
import { TenantHeaderInterceptor } from '@backend/auth'
import { MessageService } from '../services'
import { MessageResponse, SendMessageRequest } from '../types'

@UseInterceptors(TenantHeaderInterceptor)
@Controller('customer/message')
@ApiTags('customer')
export class CustomerMessageController {
	constructor(private readonly _messageService: MessageService) {}

	@Post()
	@HttpCode(200)
	@ApiOkResponse({ type: MessageResponse })
	@ApiBadRequestResponse()
	@ApiInternalServerErrorResponse()
	async send(@Body() request: SendMessageRequest): Promise<MessageResponse> {
		return this._messageService.send(request)
	}
}
