11package org.gitanimals.guild.domain
22
33import jakarta.persistence.*
4- import org.gitanimals.core.AggregateRoot
5- import org.gitanimals.core.FieldType
6- import org.gitanimals.core.IdGenerator
7- import org.gitanimals.core.PersonaType
8- import org.gitanimals.core.DomainEventPublisher
4+ import org.gitanimals.core.*
95import org.gitanimals.guild.domain.event.GuildContributionUpdated
106import org.gitanimals.guild.domain.extension.GuildFieldTypeExtension.isGuildField
117import org.gitanimals.guild.domain.request.ChangeGuildRequest
@@ -16,7 +12,8 @@ import org.hibernate.annotations.BatchSize
1612@Table(
1713 name = " guild" ,
1814 indexes = [
19- Index (name = " guild_idx_title" , unique = true , columnList = " title" )
15+ Index (name = " guild_idx_title" , unique = true , columnList = " title" ),
16+ Index (name = " guild_idx_leader_name" , columnList = " name" ),
2017 ]
2118)
2219class Guild (
@@ -161,8 +158,7 @@ class Guild(
161158 val beforeContributions = this .getTotalContributions()
162159 if (leader.name == username) {
163160 leader.contributions = contributions
164- }
165- else {
161+ } else {
166162 members.firstOrNull { it.name == username }?.setContributions(contributions)
167163 }
168164 val afterContributions = this .getTotalContributions()
@@ -238,6 +234,15 @@ class Guild(
238234 members.removeIf { it.userId == userId }
239235 }
240236
237+ fun updateUserName (previousName : String , changeName : String ) {
238+ if (leader.name == previousName) {
239+ leader.name = changeName
240+ }
241+
242+ members.filter { it.name == previousName }.forEach { it.name = changeName }
243+ waitMembers.filter { it.name == previousName }.forEach { it.name = changeName }
244+ }
245+
241246 companion object {
242247
243248 private const val LEADER_SIZE = 1
0 commit comments