fish_lib/game/
interface.rsuse crate::data::location_data::LocationData;
use crate::data::species_data::SpeciesData;
use crate::game::errors::GameResult;
use crate::models::fishing_history_entry::FishingHistoryEntry;
use crate::models::specimen::Specimen;
use crate::models::user::User;
use std::sync::Arc;
pub trait GameInterface {
fn get_user(external_id: i64) -> GameResult<User>;
fn register_user(external_id: i64) -> GameResult<User>;
fn user_catch_specific_specimen(
user: &User,
species_id: i32,
) -> GameResult<(Specimen, FishingHistoryEntry)>;
fn user_get_fishing_history(user: &User, species_id: i32) -> GameResult<FishingHistoryEntry>;
fn get_location_data(location_id: i32) -> GameResult<Arc<LocationData>>;
fn get_species_data(species_id: i32) -> GameResult<Arc<SpeciesData>>;
}