26 lines
812 B
TypeScript
26 lines
812 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;
|
|
status: "PREPARING" | "PLAYING" | "ARCHIVED";
|
|
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 = {
|
|
target: number;
|
|
timestamp: Serialize<Date>;
|
|
type: 'ITEM' | 'CHARACTER' | 'PLACE' | 'FIGHT' | 'TEXT';
|
|
details: string;
|
|
}; |