use proper alias
This commit is contained in:
@@ -62,10 +62,11 @@ class Properties(
|
|||||||
org = org,
|
org = org,
|
||||||
code = request.code,
|
code = request.code,
|
||||||
name = request.name,
|
name = request.name,
|
||||||
|
addressText = request.addressText,
|
||||||
timezone = request.timezone ?: "Asia/Kolkata",
|
timezone = request.timezone ?: "Asia/Kolkata",
|
||||||
currency = request.currency ?: "INR",
|
currency = request.currency ?: "INR",
|
||||||
active = request.active ?: true,
|
active = request.active ?: true,
|
||||||
emailAliases = request.emailAliases?.toMutableSet() ?: mutableSetOf()
|
otaAliases = request.otaAliases?.toMutableSet() ?: mutableSetOf()
|
||||||
)
|
)
|
||||||
val saved = propertyRepo.save(property)
|
val saved = propertyRepo.save(property)
|
||||||
return saved.toResponse()
|
return saved.toResponse()
|
||||||
@@ -203,11 +204,12 @@ class Properties(
|
|||||||
|
|
||||||
property.code = request.code
|
property.code = request.code
|
||||||
property.name = request.name
|
property.name = request.name
|
||||||
|
property.addressText = request.addressText ?: property.addressText
|
||||||
property.timezone = request.timezone ?: property.timezone
|
property.timezone = request.timezone ?: property.timezone
|
||||||
property.currency = request.currency ?: property.currency
|
property.currency = request.currency ?: property.currency
|
||||||
property.active = request.active ?: property.active
|
property.active = request.active ?: property.active
|
||||||
if (request.emailAliases != null) {
|
if (request.otaAliases != null) {
|
||||||
property.emailAliases = request.emailAliases.toMutableSet()
|
property.otaAliases = request.otaAliases.toMutableSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
return propertyRepo.save(property).toResponse()
|
return propertyRepo.save(property).toResponse()
|
||||||
@@ -243,10 +245,11 @@ private fun Property.toResponse(): PropertyResponse {
|
|||||||
orgId = orgId,
|
orgId = orgId,
|
||||||
code = code,
|
code = code,
|
||||||
name = name,
|
name = name,
|
||||||
|
addressText = addressText,
|
||||||
timezone = timezone,
|
timezone = timezone,
|
||||||
currency = currency,
|
currency = currency,
|
||||||
active = active,
|
active = active,
|
||||||
emailAliases = emailAliases.toSet()
|
otaAliases = otaAliases.toSet()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,8 @@ class RoomTypes(
|
|||||||
code = request.code,
|
code = request.code,
|
||||||
name = request.name,
|
name = request.name,
|
||||||
baseOccupancy = request.baseOccupancy ?: 2,
|
baseOccupancy = request.baseOccupancy ?: 2,
|
||||||
maxOccupancy = request.maxOccupancy ?: 3
|
maxOccupancy = request.maxOccupancy ?: 3,
|
||||||
|
otaAliases = request.otaAliases?.toMutableSet() ?: mutableSetOf()
|
||||||
)
|
)
|
||||||
return roomTypeRepo.save(roomType).toResponse()
|
return roomTypeRepo.save(roomType).toResponse()
|
||||||
}
|
}
|
||||||
@@ -92,6 +93,9 @@ class RoomTypes(
|
|||||||
roomType.name = request.name
|
roomType.name = request.name
|
||||||
roomType.baseOccupancy = request.baseOccupancy ?: roomType.baseOccupancy
|
roomType.baseOccupancy = request.baseOccupancy ?: roomType.baseOccupancy
|
||||||
roomType.maxOccupancy = request.maxOccupancy ?: roomType.maxOccupancy
|
roomType.maxOccupancy = request.maxOccupancy ?: roomType.maxOccupancy
|
||||||
|
if (request.otaAliases != null) {
|
||||||
|
roomType.otaAliases = request.otaAliases.toMutableSet()
|
||||||
|
}
|
||||||
return roomTypeRepo.save(roomType).toResponse()
|
return roomTypeRepo.save(roomType).toResponse()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,6 +135,7 @@ private fun RoomType.toResponse(): RoomTypeResponse {
|
|||||||
code = code,
|
code = code,
|
||||||
name = name,
|
name = name,
|
||||||
baseOccupancy = baseOccupancy,
|
baseOccupancy = baseOccupancy,
|
||||||
maxOccupancy = maxOccupancy
|
maxOccupancy = maxOccupancy,
|
||||||
|
otaAliases = otaAliases.toSet()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,19 +14,21 @@ data class OrgResponse(
|
|||||||
data class PropertyCreateRequest(
|
data class PropertyCreateRequest(
|
||||||
val code: String,
|
val code: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
|
val addressText: String? = null,
|
||||||
val timezone: String? = null,
|
val timezone: String? = null,
|
||||||
val currency: String? = null,
|
val currency: String? = null,
|
||||||
val active: Boolean? = null,
|
val active: Boolean? = null,
|
||||||
val emailAliases: Set<String>? = null
|
val otaAliases: Set<String>? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
data class PropertyUpdateRequest(
|
data class PropertyUpdateRequest(
|
||||||
val code: String,
|
val code: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
|
val addressText: String? = null,
|
||||||
val timezone: String? = null,
|
val timezone: String? = null,
|
||||||
val currency: String? = null,
|
val currency: String? = null,
|
||||||
val active: Boolean? = null,
|
val active: Boolean? = null,
|
||||||
val emailAliases: Set<String>? = null
|
val otaAliases: Set<String>? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
data class PropertyResponse(
|
data class PropertyResponse(
|
||||||
@@ -34,10 +36,11 @@ data class PropertyResponse(
|
|||||||
val orgId: UUID,
|
val orgId: UUID,
|
||||||
val code: String,
|
val code: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
|
val addressText: String?,
|
||||||
val timezone: String,
|
val timezone: String,
|
||||||
val currency: String,
|
val currency: String,
|
||||||
val active: Boolean,
|
val active: Boolean,
|
||||||
val emailAliases: Set<String>
|
val otaAliases: Set<String>
|
||||||
)
|
)
|
||||||
|
|
||||||
data class UserResponse(
|
data class UserResponse(
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ data class RoomTypeUpsertRequest(
|
|||||||
val code: String,
|
val code: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
val baseOccupancy: Int? = null,
|
val baseOccupancy: Int? = null,
|
||||||
val maxOccupancy: Int? = null
|
val maxOccupancy: Int? = null,
|
||||||
|
val otaAliases: Set<String>? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
data class RoomTypeResponse(
|
data class RoomTypeResponse(
|
||||||
@@ -15,5 +16,6 @@ data class RoomTypeResponse(
|
|||||||
val code: String,
|
val code: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
val baseOccupancy: Int,
|
val baseOccupancy: Int,
|
||||||
val maxOccupancy: Int
|
val maxOccupancy: Int,
|
||||||
|
val otaAliases: Set<String>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -34,13 +34,16 @@ class Property(
|
|||||||
@Column(name = "is_active", nullable = false)
|
@Column(name = "is_active", nullable = false)
|
||||||
var active: Boolean = true,
|
var active: Boolean = true,
|
||||||
|
|
||||||
|
@Column(name = "address_text")
|
||||||
|
var addressText: String? = null,
|
||||||
|
|
||||||
@ElementCollection(fetch = FetchType.EAGER)
|
@ElementCollection(fetch = FetchType.EAGER)
|
||||||
@CollectionTable(
|
@CollectionTable(
|
||||||
name = "property_email_alias",
|
name = "property_email_alias",
|
||||||
joinColumns = [JoinColumn(name = "property_id")]
|
joinColumns = [JoinColumn(name = "property_id")]
|
||||||
)
|
)
|
||||||
@Column(name = "alias", nullable = false)
|
@Column(name = "alias", nullable = false)
|
||||||
var emailAliases: MutableSet<String> = mutableSetOf(),
|
var otaAliases: MutableSet<String> = mutableSetOf(),
|
||||||
|
|
||||||
@Column(name = "created_at", nullable = false, columnDefinition = "timestamptz")
|
@Column(name = "created_at", nullable = false, columnDefinition = "timestamptz")
|
||||||
val createdAt: OffsetDateTime = OffsetDateTime.now()
|
val createdAt: OffsetDateTime = OffsetDateTime.now()
|
||||||
|
|||||||
@@ -32,6 +32,14 @@ class RoomType(
|
|||||||
@Column(name = "max_occupancy", nullable = false)
|
@Column(name = "max_occupancy", nullable = false)
|
||||||
var maxOccupancy: Int = 3,
|
var maxOccupancy: Int = 3,
|
||||||
|
|
||||||
|
@ElementCollection(fetch = FetchType.EAGER)
|
||||||
|
@CollectionTable(
|
||||||
|
name = "room_type_alias",
|
||||||
|
joinColumns = [JoinColumn(name = "room_type_id")]
|
||||||
|
)
|
||||||
|
@Column(name = "alias", nullable = false)
|
||||||
|
var otaAliases: MutableSet<String> = mutableSetOf(),
|
||||||
|
|
||||||
@Column(name = "created_at", nullable = false, columnDefinition = "timestamptz")
|
@Column(name = "created_at", nullable = false, columnDefinition = "timestamptz")
|
||||||
val createdAt: OffsetDateTime = OffsetDateTime.now()
|
val createdAt: OffsetDateTime = OffsetDateTime.now()
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -260,7 +260,8 @@ class EmailIngestionService(
|
|||||||
val aliases = mutableSetOf<String>()
|
val aliases = mutableSetOf<String>()
|
||||||
aliases.add(property.name)
|
aliases.add(property.name)
|
||||||
aliases.add(property.code)
|
aliases.add(property.code)
|
||||||
aliases.addAll(property.emailAliases)
|
property.addressText?.let { aliases.add(it) }
|
||||||
|
aliases.addAll(property.otaAliases)
|
||||||
aliases.any { alias -> alias.isNotBlank() && haystack.contains(alias.lowercase()) }
|
aliases.any { alias -> alias.isNotBlank() && haystack.contains(alias.lowercase()) }
|
||||||
}
|
}
|
||||||
return if (matches.size == 1) matches.first() else null
|
return if (matches.size == 1) matches.first() else null
|
||||||
|
|||||||
Reference in New Issue
Block a user