@@ -220,6 +220,7 @@ export class SharedShippingRepository {
220220 this . logger . log ( `[SHARED_SHIPPING] Lấy shop address cho shop: ${ shopId } ` )
221221
222222 try {
223+ // 1. Kiểm tra shop có tồn tại không
223224 const shopData = await this . prismaService . user . findUnique ( {
224225 where : { id : shopId }
225226 } )
@@ -231,20 +232,41 @@ export class SharedShippingRepository {
231232
232233 this . logger . log ( `[SHARED_SHIPPING] Shop data: ${ JSON . stringify ( shopData , null , 2 ) } ` )
233234
234- // Lấy shop address từ UserAddress
235- this . logger . log ( `[SHARED_SHIPPING] Lấy shop address từ UserAddress` )
236- const shopUserAddress = await this . prismaService . userAddress . findFirst ( {
235+ // 2. Lấy shop address từ UserAddress (default address trước, fallback về bất kỳ address nào)
236+ this . logger . log ( `[SHARED_SHIPPING] Lấy shop default address từ UserAddress` )
237+ let shopUserAddress = await this . prismaService . userAddress . findFirst ( {
237238 where : { userId : shopId , isDefault : true } ,
238239 include : { address : true }
239240 } )
240241
241- if ( ! shopUserAddress || ! shopUserAddress . address ) {
242- this . logger . error ( `[SHARED_SHIPPING] Shop address không tồn tại cho shop: ${ shopId } ` )
243- throw new Error ( 'Shop address not found' )
242+ // Nếu không có default address, lấy address đầu tiên
243+ if ( ! shopUserAddress ) {
244+ this . logger . warn ( `[SHARED_SHIPPING] Shop không có default address, thử lấy address đầu tiên cho shop: ${ shopId } ` )
245+ shopUserAddress = await this . prismaService . userAddress . findFirst ( {
246+ where : { userId : shopId } ,
247+ include : { address : true }
248+ } )
244249 }
245250
251+ if ( ! shopUserAddress ) {
252+ this . logger . error ( `[SHARED_SHIPPING] Shop không có bất kỳ address nào cho shop: ${ shopId } ` )
253+ throw new Error ( 'Shop has no addresses' )
254+ }
255+
256+ if ( ! shopUserAddress . address ) {
257+ this . logger . error ( `[SHARED_SHIPPING] Shop address record không có address data cho shop: ${ shopId } ` )
258+ throw new Error ( 'Shop address data not found' )
259+ }
260+
261+ this . logger . log ( `[SHARED_SHIPPING] Shop UserAddress: ${ JSON . stringify ( shopUserAddress , null , 2 ) } ` )
246262 this . logger . log ( `[SHARED_SHIPPING] Shop address: ${ JSON . stringify ( shopUserAddress . address , null , 2 ) } ` )
247263
264+ // 3. Kiểm tra address có đầy đủ thông tin không
265+ if ( ! shopUserAddress . address . province || ! shopUserAddress . address . district || ! shopUserAddress . address . ward ) {
266+ this . logger . error ( `[SHARED_SHIPPING] Shop address thiếu thông tin địa chỉ cho shop: ${ shopId } ` )
267+ throw new Error ( 'Shop address missing required location information' )
268+ }
269+
248270 const result = {
249271 shop : shopData ,
250272 address : shopUserAddress . address
0 commit comments