Files
eve-pi/src/types.ts
2025-04-22 17:53:51 +03:00

126 lines
2.3 KiB
TypeScript

export interface AccessToken {
access_token: string;
expires_at: number;
token_type: "Bearer";
refresh_token: string;
character: Character;
account: string;
needsLogin: boolean;
comment: string;
system: string;
planets: PlanetWithInfo[];
planetConfig: PlanetConfig[];
}
export interface Character {
name: string;
characterId: number;
}
export interface Planet {
planet_id: number;
solar_system_id: number;
planet_type: "temperate" | "barren" | "oceanic" | "ice" | "gas" | "lava" | "storm" | "plasma";
last_update: string;
num_pins: number;
owner_id: number;
upgrade_level: number;
}
export interface PlanetInfo {
links: Array<{
destination_pin_id: number;
link_level: number;
source_pin_id: number;
}>;
pins: Pin[];
routes: Array<{
content_type_id: number;
destination_pin_id: number;
quantity: number;
route_id: number;
source_pin_id: number;
waypoints?: number[];
}>;
}
export interface PlanetInfoUniverse {
name: string;
planet_id: number;
system_id: number;
type_id: number;
position: {
x: number;
y: number;
z: number;
};
}
export interface PlanetWithInfo extends Planet {
info: PlanetInfo;
infoUniverse: PlanetInfoUniverse;
}
export interface CharacterPlanets {
name: string;
characterId: number;
account?: string;
system?: string;
planets: PlanetWithInfo[];
}
export interface CharacterUpdate {
account?: string;
comment?: string;
system?: string;
}
export interface Env {
EVE_SSO_CALLBACK_URL: string;
EVE_SSO_CLIENT_ID: string;
}
export interface EvePraisalResult {
appraisal: {
items: Array<{
typeID: number;
prices: {
sell: {
min: number;
};
};
}>;
};
}
export interface Pin {
pin_id: number;
type_id: number;
schematic_id?: number;
expiry_time?: string;
install_time?: string;
latitude: number;
longitude: number;
extractor_details?: {
cycle_time?: number;
head_radius?: number;
heads: Array<{
head_id: number;
latitude: number;
longitude: number;
}>;
product_type_id?: number;
qty_per_cycle?: number;
};
contents?: Array<{
type_id: number;
amount: number;
}>;
}
export interface PlanetConfig {
characterId: number;
planetId: number;
excludeFromTotals: boolean;
}