use crate::entity::account::*;
use crate::entity::character::*;

pub trait EntityGateway {
    fn get_user_by_id(&self, _id: u32) -> Option<UserAccount> {
        unimplemented!();
    }

    fn get_user_by_name(&self, _username: String) -> Option<UserAccount> {
        unimplemented!();
    }

    fn set_user(&mut self, _user: &UserAccount) {
        unimplemented!();
    }

    fn get_user_settings_by_user(&self, _user: &UserAccount) -> Option<UserSettings> {
        unimplemented!();
    }

    fn create_user_settings_by_user(&self, _user: &UserAccount) -> UserSettings {
        unimplemented!();
    }

    fn get_characters_by_user(&self, _user: &UserAccount) -> [Option<Character>; 4] {
        unimplemented!();
    }

    fn new_character_by_user(&mut self, _user: &UserAccount) -> Character {
        unimplemented!();
    }

    fn set_character(&mut self,  _char: &Character) {
        unimplemented!();
    }

    fn get_guild_card_data_by_user(&self, _user: &UserAccount) -> GuildCardData {
        unimplemented!();
    }
}