import { Controller } from '@nestjs/common';
import { AppService } from './app.service';
import { EventPattern } from '@nestjs/microservices';
import * as dayjs from 'dayjs';
import { SymmetricCrypto } from '@tavi/util';

interface UserSignLoggerDto {
  platform: string;
  username: string;
  finger: string;
  finger2: string;
  isLegal: boolean;
}

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @EventPattern({ cmd: 'logger.user.signIn' })
  async userSignIn(payload: UserSignLoggerDto) {
    const dateTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
    const { finger2, ...rest } = payload;
    const browserInfo = new SymmetricCrypto().decrypt(finger2);
    console.log({ ...rest, dateTime, browserInfo });
    return 1;
  }
}