import { ITradeIdeaAccess } from './trade-idea-access.i'
import { ITradeIdeaContent } from './trade-idea-content.i'
import { ITradeIdeaCreator } from './trade-idea-creator.i'
import { ITradeIdeaIdea } from './trade-idea-idea.i'
import { ITradeIdeaPricing } from './trade-idea-pricing.i'
import { ITradeIdeaStrategy } from './trade-idea-strategy.i'

// THIS IS THE NFT IDEA INTERFACE
export interface ITradeIdea {
	nftId?: number
	content: ITradeIdeaContent
	strategy: ITradeIdeaStrategy
	creator: ITradeIdeaCreator
	access?: ITradeIdeaAccess
	idea: ITradeIdeaIdea | string // string when encrypted
	ideaSha512Hash?: string
	pricing: ITradeIdeaPricing
	isPublic?: boolean
	nullified?: string // If idea is an error (not due to fraud, but natural failure). The string is the error message.
	// used from tests (optional)
	tracker?: string
	url?: string
	// in a future will disable this
	devSettings?: {
		croupierUrl?: string
		environment?: 'dev' | 'prod' // we need this minor field (easy and will not affect anything)
	}
	// TODO: Add:
	// block?: string
	// blockTimestamp?: number
}
