/home/bdqbpbxa/dev-subdomains/admin.pixory.goodface.com.ua/src/api/my-user/services/user.ts
import { Core } from "@strapi/strapi";
import { Address } from "src/api/address/common/types/Address";
import { User } from "src/extensions/users-permissions/common/types/user";

export class UserService {
  constructor(private readonly strapi: Core.Strapi) {}

  async get(userId: number): Promise<User> {
    return await this.strapi.db.query('plugin::users-permissions.user').findOne({
      where: { id: userId },
      populate: {
        addresses: {
          populate: {
            country: true,
            state: true,
          }
        },
        projects: true,
        orders: true
      }
    });
  }

  getDefaultShippingAddress(user: User): Address | null {
    return user.addresses.filter(address => address.isDefaultShipping)[0] || null; 
  }

  getDefaultBillingAddress(user: User): Address | null {
    return user.addresses.filter(address => address.isDefaultBilling)[0] || null; 
  }
}