import { ColumnDecimalTransformer, JSONArrayTransformer } from '@core/utils'
import { Column, Entity } from 'typeorm'
import { UserModifiableEntity } from '../entity'

export interface IReview {
	authorName: string
	authorProfileImageUrl: string
	rating: number
	text: string
	timestamp: Date
}

@Entity()
export class Reviews extends UserModifiableEntity<Reviews> {
	@Column({
		type: 'json',
		nullable: false,
		transformer: new JSONArrayTransformer<IReview>(),
	})
	reviews: Array<IReview>

	@Column({
		type: 'decimal',
		nullable: false,
		transformer: new ColumnDecimalTransformer(),
	})
	rating: number

	@Column({
		type: 'integer',
		nullable: false,
	})
	totalRatings: number
}
