import { DataSource } from 'typeorm';
import { AttachmentEntity } from '../../../entities';
import { SaveAttachmentCommand } from '../../types';

export async function handleSaveAttachment(command: SaveAttachmentCommand, dataSource: DataSource): Promise<void> {
  const repo = dataSource.getRepository(AttachmentEntity);
  const { attachment } = command.payload;
  const entity = repo.create({
    id: attachment.id,
    messageId: attachment.messageId,
    filename: attachment.filename,
    size: attachment.size,
    mime: attachment.mime,
    isImage: attachment.isImage ? 1 : 0,
    uploaderPeerId: attachment.uploaderPeerId ?? null,
    filePath: attachment.filePath ?? null,
    savedPath: attachment.savedPath ?? null
  });

  await repo.save(entity);
}
