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