import { IsString } from 'class-validator';
import { NotAcceptableError, NotFoundError } from 'routing-controllers';

/**
 * Error to throw, when a non-existent scan station get's loaded.
 */
export class ScanStationNotFoundError extends NotFoundError {
	@IsString()
	name = "ScanStationNotFoundError"

	@IsString()
	message = "The scan station you provided couldn't be located in the system. \n Please check your request."
}

/**
 * Error to throw when two scan stations' ids don't match.
 * Usually occurs when a user tries to change a scan station's id.
 */
export class ScanStationIdsNotMatchingError extends NotAcceptableError {
	@IsString()
	name = "ScanStationIdsNotMatchingError"

	@IsString()
	message = "The ids don't match! \n And if you wanted to change a scan station's id: This isn't allowed!"
}

/**
 * Error to throw when a station still has scans associated.
 */
export class ScanStationHasScansError extends NotAcceptableError {
	@IsString()
	name = "ScanStationHasScansError"

	@IsString()
	message = "This station still has scans associated with it. \n If you want to delete this station with all it's scans add `?force` to your query."
}
