obsidian-visualiser/app/types/campaign.d.ts

25 lines
770 B
TypeScript

import type { User } from "./auth";
import type { Character, ItemState } from "./character";
import type { Serialize } from 'nitropack';
export type CampaignVariables = {
money: number;
inventory: ItemState[];
};
export type Campaign = {
id: number;
name: string;
link: string;
owner: { id: number, username: string };
members: Array<{ member: { id: number, username: string } }>;
characters: Array<Partial<{ character: { id: number, name: string, owner: number } }>>;
public_notes: string;
dm_notes: string;
logs: CampaignLog[];
} & CampaignVariables;
export type CampaignLog = {
from: number;
timestamp: Serialize<Date>;
type: 'ITEM' | 'CHARACTER' | 'PLACE' | 'EVENT' | 'FIGHT' | 'TEXT';
details: string;
};