Finalize feature fixes #75

Merged
RecentRunner merged 2 commits from fix-features-icons-v2 into main 2026-04-01 19:31:28 -06:00
5 changed files with 64 additions and 3 deletions
Showing only changes of commit 2ac2ce339f - Show all commits

View File

@@ -1,5 +1,6 @@
package com.petshop.backend.entity;
import com.petshop.backend.util.PhoneUtils;
import jakarta.persistence.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
@@ -77,7 +78,7 @@ public class StoreLocation {
}
public void setPhone(String phone) {
this.phone = phone;
this.phone = PhoneUtils.normalize(phone);
}
public String getEmail() {

View File

@@ -1,5 +1,6 @@
package com.petshop.backend.entity;
import com.petshop.backend.util.PhoneUtils;
import jakarta.persistence.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
@@ -97,7 +98,7 @@ public class Supplier {
}
public void setSupPhone(String supPhone) {
this.supPhone = supPhone;
this.supPhone = PhoneUtils.normalize(supPhone);
}
public LocalDateTime getCreatedAt() {

View File

@@ -1,5 +1,6 @@
package com.petshop.backend.entity;
import com.petshop.backend.util.PhoneUtils;
import jakarta.persistence.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
@@ -118,7 +119,7 @@ public class User {
}
public void setPhone(String phone) {
this.phone = phone;
this.phone = PhoneUtils.normalize(phone);
}
public String getAvatarUrl() {

View File

@@ -0,0 +1,24 @@
package com.petshop.backend.util;
public class PhoneUtils {
public static String normalize(String phone) {
if (phone == null) {
return null;
}
String digits = phone.replaceAll("\\D", "");
if (digits.length() >= 10) {
if (digits.length() == 11 && digits.startsWith("1")) {
digits = digits.substring(1);
}
digits = digits.substring(0, 10);
return String.format("(%s) %s-%s",
digits.substring(0, 3),
digits.substring(3, 6),
digits.substring(6));
}
return phone;
}
}

View File

@@ -0,0 +1,34 @@
-- Normalize existing phone numbers to (XXX) XXX-XXXX format
-- Update users table
UPDATE users
SET phone = '(' || SUBSTRING(clean_digits, 1, 3) || ') ' || SUBSTRING(clean_digits, 4, 3) || '-' || SUBSTRING(clean_digits, 7, 4)
FROM (
SELECT id,
RIGHT(regexp_replace(phone, '\D', '', 'g'), 10) as clean_digits
FROM users
WHERE regexp_replace(phone, '\D', '', 'g') ~ '\d{10,}$'
) AS sub
WHERE users.id = sub.id;
-- Update supplier table
UPDATE supplier
SET supPhone = '(' || SUBSTRING(clean_digits, 1, 3) || ') ' || SUBSTRING(clean_digits, 4, 3) || '-' || SUBSTRING(clean_digits, 7, 4)
FROM (
SELECT supId,
RIGHT(regexp_replace(supPhone, '\D', '', 'g'), 10) as clean_digits
FROM supplier
WHERE regexp_replace(supPhone, '\D', '', 'g') ~ '\d{10,}$'
) AS sub
WHERE supplier.supId = sub.supId;
-- Update storeLocation table
UPDATE storeLocation
SET phone = '(' || SUBSTRING(clean_digits, 1, 3) || ') ' || SUBSTRING(clean_digits, 4, 3) || '-' || SUBSTRING(clean_digits, 7, 4)
FROM (
SELECT storeId,
RIGHT(regexp_replace(phone, '\D', '', 'g'), 10) as clean_digits
FROM storeLocation
WHERE regexp_replace(phone, '\D', '', 'g') ~ '\d{10,}$'
) AS sub
WHERE storeLocation.storeId = sub.storeId;