export interface SpellTagProps {
    id: string;
    name: string;
    color: string | null;
}

export interface SpellProps {
    id: string;
    name: string;
    description: string;
    appearance: string;
    tags: string[];
    powerLevel: string | null;
    components: string | null;
    limitations: string | null;
    notes: string | null;
    seriesSpellId?: string | null;
}

export interface SpellPropsPost {
    id?: string;
    name: string;
    description: string;
    appearance: string;
    tags: string[];
    powerLevel?: string | null;
    components?: string | null;
    limitations?: string | null;
    notes?: string | null;
    seriesSpellId?: string | null;
}

export interface SpellListItem {
    id: string;
    name: string;
    description: string;
    tags: SpellTagProps[];
    seriesSpellId?: string | null;
}

export interface SpellListResponse {
    enabled: boolean;
    spells: SpellListItem[];
    tags: SpellTagProps[];
}

export interface SpellEditState {
    id: string | null;
    name: string;
    description: string;
    appearance: string;
    tags: string[];
    powerLevel: string | null;
    components: string | null;
    limitations: string | null;
    notes: string | null;
    seriesSpellId?: string | null;
}
