import { Controller, Get, Post, Body, UnauthorizedException } from '@nestjs/common';
import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
import { UsersService } from '../services/users.service';
import { User } from '../entities/user.entity';

@ApiTags('users')
@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  @ApiOperation({ summary: 'Get all users | جلب جميع المستخدمين' })
  @ApiResponse({ status: 200, type: [User] })
  async findAll(): Promise<User[]> {
    return this.usersService.findAll();
  }

  @Post('login')
  @ApiOperation({ summary: 'Simple email login | دخول بسيط بالبريد' })
  async login(@Body('email') email: string): Promise<User> {
    const user = await this.usersService.findByEmail(email);
    if (!user) {
      throw new UnauthorizedException('المستخدم غير موجود. يرجى مراجعة البريد الإلكتروني.');
    }
    return user;
  }
}
