Fix phone formatting
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.petshop.backend.entity;
|
package com.petshop.backend.entity;
|
||||||
|
|
||||||
|
import com.petshop.backend.util.PhoneUtils;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import org.hibernate.annotations.CreationTimestamp;
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
import org.hibernate.annotations.UpdateTimestamp;
|
import org.hibernate.annotations.UpdateTimestamp;
|
||||||
@@ -77,7 +78,7 @@ public class StoreLocation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setPhone(String phone) {
|
public void setPhone(String phone) {
|
||||||
this.phone = phone;
|
this.phone = PhoneUtils.normalize(phone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getEmail() {
|
public String getEmail() {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.petshop.backend.entity;
|
package com.petshop.backend.entity;
|
||||||
|
|
||||||
|
import com.petshop.backend.util.PhoneUtils;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import org.hibernate.annotations.CreationTimestamp;
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
import org.hibernate.annotations.UpdateTimestamp;
|
import org.hibernate.annotations.UpdateTimestamp;
|
||||||
@@ -97,7 +98,7 @@ public class Supplier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setSupPhone(String supPhone) {
|
public void setSupPhone(String supPhone) {
|
||||||
this.supPhone = supPhone;
|
this.supPhone = PhoneUtils.normalize(supPhone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDateTime getCreatedAt() {
|
public LocalDateTime getCreatedAt() {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.petshop.backend.entity;
|
package com.petshop.backend.entity;
|
||||||
|
|
||||||
|
import com.petshop.backend.util.PhoneUtils;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import org.hibernate.annotations.CreationTimestamp;
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
import org.hibernate.annotations.UpdateTimestamp;
|
import org.hibernate.annotations.UpdateTimestamp;
|
||||||
@@ -118,7 +119,7 @@ public class User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setPhone(String phone) {
|
public void setPhone(String phone) {
|
||||||
this.phone = phone;
|
this.phone = PhoneUtils.normalize(phone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAvatarUrl() {
|
public String getAvatarUrl() {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
Reference in New Issue
Block a user