package main

import (
	"github.com/pocketbase/pocketbase/tools/types"
)

type MtgSet struct {
	ID     				string    `db:"id" json:"id"`
	Code     			string    `db:"code" json:"code"`
	Name 					string 		`db:"name" json:"name"`
	SanitizedName string		`db:"sanitized_name" json:"sanitized_name"`
	ReleasedAt 		string 		`db:"release_at" json:"released_at"`
	IconUri 			string 		`db:"icon_uri" json:"icon_uri"`
	SetType 			string 		`db:"type" json:"type"`
}

type Brawlset struct {
	ID 							string 									`db:"id" json:"id"`
	Name 						string 									`db:"name" json:"name"`
	SanitizedName 	string 									`db:"sanitized_name" json:"sanitized_name"`
	Sets     				types.JSONArray[string] `db:"sets" json:"sets"`
}

type Carte struct {
	ID 							string 		`db:"id" json:"id"`
	Name 						string 		`db:"name" json:"name"`
	SanitizedName 	string 		`db:"sanitized_name" json:"sanitized_name"`
	Layout 					string 		`db:"layout" json:"layout"`
	SmallImage 			string 		`db:"small_image" json:"small_image"`
	SmallImageBack 	string 		`db:"small_image_back" json:"small_image_back"`
	NormalImage 		string 		`db:"normal_image" json:"normal_image"`
	NormalImageBack string 		`db:"normal_image_back" json:"normal_image_back"`
	CardType 				string 		`db:"type" json:"type"`
	ColorIdentity   types.JSONArray[string] `db:"color_identity" json:"color_identity"`
	ReleasedAt 			string 		`db:"released_at" json:"released_at"`
	MtgSet 					string 		`db:"mtg_set" json:"mtg_set"`
	SetCode 				string 		`db:"set_code" json:"set_code"`
	Price 					string  	`db:"price" json:"price"`
	CardmarketUri 	string 		`db:"cardmarket_url" json:"cardmarket_url"`
	CanBeCommander 	bool 			`db:"can_be_commander" json:"can_be_commander"`
}

type DeckCard struct {
		ID 				string 	`json:"id"`
		Amount 		int 		`json:"amount"`
}

type Deck struct {
	ID 							string 											`db:"id"`
	Name 						string 											`db:"name"`
	ColorIdentity   types.JSONArray[string] 		`db:"color_identity"`
	Owner 					string 											`db:"owner"`
	Commander 			string 											`db:"commander"`
	Brawlset 				string 											`db:"brawlset"`
	Cards   				types.JSONArray[DeckCard] 	`db:"cartes"`
}
