import { IsNotEmpty, ValidateIf, IsIn } from 'class-validator';
import { validationMessages } from '../../../messages/validation-messages';
import { ApiProperty } from '@nestjs/swagger';

export class UserSocialLoginDto {

    @ApiProperty({ example: 'test@yopmail.com', required : false })
    email: string;

    @ApiProperty({ example: '123456789', required : true })
    @IsNotEmpty({ message: validationMessages.user.social_id_required })
    social_id : string;

    @ApiProperty({ example: 'gmail', enum: ['gmail','fb','apple'], required : true })
    @IsIn(['gmail','fb','apple'], { message: validationMessages.user.type_invalid })
    @IsNotEmpty({ message: validationMessages.user.type_required })
    social_type : string;

    @ApiProperty({ example: 'student', enum: ['student','teacher'], required : true })
    @IsIn(['student','teacher'], { message: validationMessages.user.role_invalid })
    @IsNotEmpty({ message: validationMessages.user.role_required })
    role : string;

    // @ValidateIf(o => o.device_type == DeviceType.ANDROID || o.device_type == DeviceType.IOS)
    // @IsNotEmpty({ message: validationMessages.user.device_id_required })
    // device_id: string;

    @ApiProperty({ example: 'SMC-55_TF', required : false })
    device_name:string;

    @ApiProperty({ example: '18.0.0', required : false })
    device_version:string;

    // @ApiProperty({ example: 'ANDROID', enum: DeviceType, required : false })
    // device_type: string;

    @ApiProperty({ example: 'adsadhsdjds545das5d4', required : false })
    fcm_token: string;

    @ApiProperty({ example: 'test', required : false })
    first_name: string;

    @ApiProperty({ example: 'user', required : false })
    last_name: string;

    @ApiProperty({ example: 'xxxxxx', required : false })
    referral_code: string;

    @ApiProperty({ example: 'en', required: false, type: 'string' })
    language: string;
}
