#pragma once

#include "CoreMinimal.h"
#include "Engine/DataTable.h"
#include "ItemDataStruct.h"
#include "BookDataStruct.generated.h"

UENUM(BlueprintType)
enum class EBookCategory : uint8
{
	None,
	NonFiction,
	SpeculativeFiction,
	MysteryAndCrime,
	Fiction,
	ClassicsAndArt,
	VisualNovel,
	ChildrenAndYoungAdult
};

UENUM(BlueprintType)
enum class EBookSubCategory : uint8
{
	None,
	Biography,
	ArtAndPhilosophy,
	SelfHelp,
	ScienceAndBusiness,
	Fantasy,
	SciFi,
	Horror,
	Crime,
	Thriller,
	TrueCrime,
	Experimental,
	HistoricalFiction,
	Romance,
	Contemporary,
	Classic,
	Poetry,
	Drama,
	GraphicNovels,
	Manga,
	Comic,
	PictureBook,
	YoungAdult
};

USTRUCT(BlueprintType)
struct FBookDataStructRow : public FTableRowBase
{
	GENERATED_BODY()
	
public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FText ItemName = FText::GetEmpty();
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FText ItemDescription= FText::GetEmpty();
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EBookCategory BookCategory = EBookCategory::None;
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EBookSubCategory BookSubCategory = EBookSubCategory::None;
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 Price = 0;
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 PublicationDate = 0;
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FText Author= FText::GetEmpty();
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 PageNumber = 0;
};
