// using ServerCommon; // // namespace BrokerCore.Repository; // // using ServerCore; using ServerBase; // // public class UserBaseDocRepo // { // private readonly DynamoDbClient m_dynamo_db_client; // // public UserBaseDocRepo(DynamoDbClient dynamoDbClient) // { // this.m_dynamo_db_client = dynamoDbClient; // } // // public async Task<(Result, UserBaseDoc?)> findUserBaseDoc(string userGuid) // { // var (result, primary_key_object) = await DynamoDBDocBaseHelper.makePrimaryKey(userGuid); // if (result.isFail() || primary_key_object == null) // { // return (result, null); // } // // var config = m_dynamo_db_client.makeQueryConfigForReadByPKOnly(primary_key_object.PK); // // var (result, user_doc) = await m_dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig(config); // return await m_dynamo_db_client.simpleQueryDocTypeWithQueryOperationConfig(config); // } // // public async Task<(Result, UserBaseAttrib?)> findUserBaseAttrib(string userGuid) // { // var (result, doc) = await findUserBaseDoc(userGuid); // return (result, doc?.getAttrib()); // } // // public async Task<(Result, string)> findNickname(string userGuid) // { // var (result, found_nickname_attrib) = await NicknameDoc.findNicknameFromGuid(m_dynamo_db_client, userGuid); // if(result.isFail()) // { // return (result, string.Empty); // } // NullReferenceCheckHelper.throwIfNull(found_nickname_attrib, () => $"found_nickname_attrib is null !!!, userGuid:{userGuid}"); // return (result, found_nickname_attrib.Nickname); // } // // //=================================================================================================== // // 로그아웃 여부만 체크 // // TODO: 레디스 캐시를 이용하여 로그인 여부를 체크하는 것이 더 효율적일 수 있음 // //=================================================================================================== // public bool isUserLoggedIn(UserBaseAttrib userAttrib) // { // return userAttrib.GameLoginDateTime > userAttrib.GameLogoutDateTime; // } // // // public async Task insertUserBaseDoc(UserBaseAttrib userAttrib) // // { // // var user_doc = new UserBaseDoc(userAttrib.UserGuid); // // var user_attrib = user_doc.getAttrib(); // // NullReferenceCheckHelper.throwIfNull(user_attrib, () => $"insertUserBaseDoc : user_attrib is null !!! - {userAttrib.UserGuid}"); // // user_attrib.UserGuid = userAttrib.UserGuid; // // user_attrib.AccountId = userAttrib.AccountId; // // user_attrib.EOA = userAttrib.EOA; // // user_attrib.SelectedCharacterGuid = userAttrib.SelectedCharacterGuid; // // user_attrib.IsIntroCompleted = userAttrib.IsIntroCompleted; // // return await m_dynamoDbClient.simpleInsertDocumentWithDocType(user_doc); // // } // }