import { Pipe, PipeTransform } from '@angular/core'
import { ReservationResponse } from '@api-client/angular'
import { differenceInMinutes } from 'date-fns'

@Pipe({ name: 'calendarColumnLeftPosition' })
export class CalendarColumnLeftPositionPipe implements PipeTransform {
	transform(date: Date, rowWidth: number, headerRowWidth: number, hours: number[] = []): number {
		let columnNumber = date.getHours()
		if (hours.length > 0) columnNumber = hours.indexOf(date.getHours())
		return columnNumber * rowWidth + headerRowWidth + date.getMinutes() * (rowWidth / 60)
	}
}

@Pipe({ name: 'calendarReservationWidth' })
export class CalendarReservationWidthPipe implements PipeTransform {
	transform(reservation: ReservationResponse, rowWidth: number): number {
		return differenceInMinutes(reservation.endDate, reservation.startDate) * (rowWidth / 60)
	}
}
