{"version":3,"sources":["../src/common/Media.ts","../src/common/Currency.ts","../src/account/types.ts","../src/accountBranch/types.ts","../src/accountDeliveryOption/types.ts","../src/accountDomain/types.ts","../src/accountIntegration/types.ts","../src/cart/types.ts","../src/cart/dto.ts","../src/customer/types.ts","../src/integration/types.ts","../src/order/types.ts","../src/payment/types.ts","../src/product/types.ts","../src/productAttribute/types.ts","../src/productCategory/types.ts","../src/standardCategory/types.ts","../src/storeBanner/types.ts","../src/storePage/types.ts","../src/pubsub/types.ts"],"sourcesContent":["/**\n * Entidad Media\n * Se utiliza para almacenar y gestionar archivos y recursos multimedia.\n */\n\nexport interface Media {\n  id: string;\n  accountId: string;\n  filename: string;\n  url: string;\n  thumbnailUrl: string;\n  mimeType: string;\n  extension: string;\n  size: number;\n  type: MediaType;\n  altText: string;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n}\n\nexport enum MediaType {\n  IMAGE = 'IMAGE',\n  VIDEO = 'VIDEO',\n  DOCUMENT = 'DOCUMENT',\n  AUDIO = 'AUDIO',\n  ARCHIVE = 'ARCHIVE',\n  OTHER = 'OTHER',\n}\n\n\n","export enum Currency {\n  USD = 'USD',\n  EUR = 'EUR',\n  UYU = 'UYU',\n  ARS = 'ARS',\n  BRL = 'BRL'\n}\n\nexport function getCurrencySymbol(currencyCode: Currency): string {\n  const currencySymbols: { [key: string]: string } = {\n      [Currency.USD]: 'U$S',\n      [Currency.EUR]: '€',\n      [Currency.UYU]: '$',\n      [Currency.ARS]: '$',\n      [Currency.BRL]: 'R$',\n  };\n  \n  return currencySymbols[currencyCode] || currencyCode.toString();\n} \n\n\n","// shared-types/src/account/types.ts - Account entity types\n\nexport interface Account {\n  id: string;\n  name: string;\n  address?: string;\n  logoId?: string;\n  currency: string;\n  instagram?: string;\n  facebook?: string;\n  whatsapp?: string;\n  phone?: string;\n  email: string;\n  timezone: string;\n  hasDelivery: boolean;\n  status: AccountStatus;\n  themeConfig?: ThemeConfig;\n  privateKey?: string;\n  demo: boolean;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date;\n}\n\nexport enum AccountStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE',\n  PENDING = 'PENDING',\n  SUSPENDED = 'SUSPENDED',\n}\n\nexport interface ThemeConfig {\n  backgroundColor: string;\n  textColor: string;\n  primaryColor: string;\n  secondaryColor: string;\n}\n ","import { AccountDeliveryOption } from \"../accountDeliveryOption/types\";\nimport { Address, MapPosition, Phone } from \"../common\";\n\n/**\n * Entidad AccountBranch\n * Representa una sucursal de una cuenta.\n */\n\nexport interface AccountBranch {\n  id: string;\n  accountId: string;\n  name: string;\n  address?: Address;  \n  addressInstructions?: string;\n  addressCoordinates?: MapPosition | null;\n  phone?: Phone | null;\n  email?: string | null;\n  demo:boolean;\n  status: AccountBranchStatus; \n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  schedule: AccountBranchSchedule[];\n  deliveryOptions: AccountDeliveryOption[];\n}\n\nexport enum AccountBranchStatus {\n  ACTIVE = \"ACTIVE\",\n  INACTIVE = \"INACTIVE\"\n}\n\n \nexport interface AccountBranchSchedule {\n  id: string;\n  accountBranchId: string;\n  day: AccountBranchScheduleDay;\n  start: number;\n  end: number;\n  status: AccountBranchScheduleStatus;\n  demo:boolean;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n}\n\nexport enum AccountBranchScheduleStatus {\n  ACTIVE = \"ACTIVE\",\n  INACTIVE = \"INACTIVE\"\n}\n\nexport enum AccountBranchScheduleDay {\n  MONDAY = \"MONDAY\",\n  TUESDAY = \"TUESDAY\",\n  WEDNESDAY = \"WEDNESDAY\",\n  THURSDAY = \"THURSDAY\",\n  FRIDAY = \"FRIDAY\",\n  SATURDAY = \"SATURDAY\",\n  SUNDAY = \"SUNDAY\"\n}","import { Address, MapPosition } from \"../common\";\nimport { AccountIntegration } from \"../accountIntegration/types\";\nimport { AccountBranch } from \"../accountBranch/types\";\n\n/**\n * Entidad AccountDeliveryOption\n * Representa una opción de envío de una cuenta.\n */\n\nexport interface AccountDeliveryOption {\n\tid: string;\n\taccountId: string;\n\taccountBranchId: string;\n\tname: string;\n\tintegrationId?: string;\n\tisScheduled: boolean;\n\tpriceLogic: AccountDeliveryOptionPriceLogic;\n\tstatus: AccountDeliveryOptionStatus;\n\tdemo:boolean;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n\tdeletedAt?: Date | null;\n\n\tzones: AccountDeliveryOptionZone[];\n\tintegration?: AccountIntegration | null;\n\tcalculatedCost?: AccountDeliveryOptionCalculatedCost | null;\n\taccountBranch?: AccountBranch | null;\n}\n\nexport enum AccountDeliveryOptionPriceLogic {\n\tFIXED = \"FIXED\",\n\tPER_KM = \"PER_KM\",\n}\n\nexport enum AccountDeliveryOptionStatus {\n\tACTIVE = \"ACTIVE\",\n\tINACTIVE = \"INACTIVE\",\n}\n\nexport interface AccountDeliveryOptionCalculatedCost {\n\tbasePrice: number;\n\tdistanceKm: number;\n\tfinalPrice: number;\n\tpriceLogic: AccountDeliveryOptionPriceLogic;\n\tcurrency: string;\n}\n\n\nexport interface AccountDeliveryOptionZone {\n\tid: string;\n\taccountId: string;\n\taccountDeliveryOptionId: string;\n\tname: string;\n\tprice: number;\n\tpriceMin: number;\n\tarea: string;\n\tstatus: AccountDeliveryOptionZoneStatus;\n\tdemo:boolean;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n\tdeletedAt?: Date | null;\n}\n\nexport enum AccountDeliveryOptionZoneStatus {\n\tACTIVE = \"ACTIVE\",\n\tINACTIVE = \"INACTIVE\",\n}","/**\n * Entidad AccountDomain\n * Representa un dominio personalizado asociado a una cuenta.\n * Permite dominios completos y subdominios, con control de estado y verificación.\n */\n\nexport interface AccountDomain {\n  id: string;\n  accountId: string;\n  domain: string; /** Dominio completo (ej: example.com) */\n  subdomain?: string;/** Subdominio opcional (ej: shop, blog) */\n  isPrimary: boolean; /** Indica si este es el dominio principal de la cuenta */\n  status: AccountDomainStatus; /** Estado del dominio: PENDING, ACTIVE, INACTIVE */\n  verifiedAt?: Date; /** Fecha de verificación del dominio */\n  \n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n}\n\nexport enum AccountDomainStatus {\n  PENDING = \"PENDING\",\n  ACTIVE = \"ACTIVE\",\n  INACTIVE = \"INACTIVE\"\n}\n\n ","import { Integration } from \"../integration\";\n/**\n * Entidad AccountIntegration\n * Contiene información de la integración y sus credenciales.\n */\n\nexport enum AccountIntegrationStatus {\n\tACTIVE = 'ACTIVE',\n\tINACTIVE = 'INACTIVE',\n\tBETA = 'BETA',\n\tDEPRECATED = 'DEPRECATED',\n}\nexport enum AccountIntegrationConnectionStatus {\n\tCONNECTED = 'CONNECTED',\n\tDISCONNECTED = 'DISCONNECTED',\n\tERROR = 'ERROR',\n\tWARNING = 'WARNING',\n}\n\nexport enum AccountIntegrationEnvironment {\n\tPRODUCTION = 'PRODUCTION',\n\tDEVELOPMENT = 'DEVELOPMENT',\n}\n\nexport interface AccountIntegration {\n\tid: string;\n\taccountId: string;\n\tintegrationId: string;\n\tsettingsProduction: Object | null;\n\tsettingsDevelopment: Object | null;\n\tenvironment: AccountIntegrationEnvironment;\n\tproductionStatus: AccountIntegrationConnectionStatus;\n\tdevelopmentStatus: AccountIntegrationConnectionStatus;\n\tstatus: AccountIntegrationStatus;\n\tdemo: boolean;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n\tdeletedAt?: Date | null;\n\n\tintegration: Integration;\n\n\tsettings: Record<string, any>; // settings for requested environment\n}","import { CartItemValidation } from \"./dto\";\nimport { Customer } from \"../customer\";\nimport { AccountDomain } from \"../accountDomain\";\n\n/**\n * Entidad Cart\n * Define el carrito de compras de un cliente en el sitio web.\n */\n\nexport interface Cart {\n    id: string;\n    code: string;\n    customerId?: string;\n    sessionId?: string;\n    items: CartItem[];\n    currency: string;\n    subtotal: number;\n    total: number;\n    deliveryType: CartDeliveryType;\n    itemCount: number;\n    createdAt: Date;\n    updatedAt: Date;\n    status: CartStatus;\n    source: CartSource;\n    sourceAccountDomainId?: string;\n    recoveryToken?: string;\n    customerNote?: string;\n    hasIssues: boolean;              // Indica si el carrito tiene problemas que resolver\n    issuesCount: number;             // Número de items con problemas\n    // Nuevos campos de precios\n    subtotalPrice?: number;\n    totalDiscounts?: number;\n    totalShippingPrice?: number;\n    totalTax?: number;\n    totalPrice?: number;\n    taxDetails?: any;\n\n    customer?: Customer | null;\n    accountDomain?: AccountDomain;\n}\n\nexport interface CartItem {\n    id: string;\n    productId: string;\n    productVariantId: string;\n    name: string;\n    unitPrice: number;                   // Precio cuando se agregó al carrito\n    quantity: number;\n    image?: string;\n    thumbnailUrl?: string;           // URL del thumbnail de la variante\n    sku?: string;\n    attributeDetails: CartItemAttributeDetail[];  // Detalles legibles de atributos\n    \n    validation?: CartItemValidation;  // Información de validación del item en dto\n}\n\n\nexport interface CartItemAttributeDetail {\n    name: string;        // Nombre del atributo (ej: \"Talle\", \"Color\")\n    value: string;       // Valor del atributo (ej: \"M\", \"Rojo\")\n    type?: string;       // Tipo del atributo (opcional)\n}\n\nexport enum CartStatus {\n    ACTIVE = 'ACTIVE',\n    LOCKED = 'LOCKED',\n    EXPIRED = 'EXPIRED',\n    CONVERTED = 'CONVERTED',\n    ABANDONED = 'ABANDONED',\n    MERGED = 'MERGED'\n}\n\nexport enum CartSource {\n    WEB = 'WEB',\n    POS = 'POS',\n    API = 'API'\n}\n\nexport enum CartDeliveryType {\n    DELIVERY = 'delivery',\n    PICKUP = 'pickup'\n}\n\n\n\n\n","import { OrderSource } from \"../order\";\n\n/**\n * Add an item to the cart\n*/\nexport interface CartItemAddDto {\n    cartId: string;\n    productId: string;\n    variantId?: string;\n    quantity: number;\n    attributes?: { [key: string]: string | number; };\n    userEmail?: string;\n    userId?: string;\n}\n\n/**\n * Update an item in the cart\n */\nexport interface CartItemUpdateDto {\n    cartId: string;\n    itemId: string;\n    quantity: number;\n}\n\n/**\n * Remove an item from the cart\n */\nexport interface CartItemRemoveDto {\n    cartId: string;\n    itemId: string;\n}\n\nexport interface CartUpdateDto {\n    cartId: string;\n    source: OrderSource;\n    accountDomainId?: string;\n    customer: {\n        email: string;\n    };\n    delivery: {\n        type: 'shipping' | 'pickup';\n        deliveryOptionId?: string;\n        pickupBranchId?: string;\n        firstname: string;\n        lastname: string;\n        phone: {\n            countryCode: string;\n            national: string;\n            international: string;\n            type: string;\n            validated: boolean;\n        };\n        address: {\n            country: string;\n            department: string;\n            locality: string;\n            street: string;\n            complement?: string;\n            notes?: string;\n            postalCode: string;\n            mapPosition: {\n                lat: number;\n                lng: number;\n            };\n        };\n    };\n    billing: {\n        name: string;\n        address: string;\n        city: string;\n        department: string;\n    };\n}\n\n/**\n * Confirm a cart\n */\nexport interface CartConfirmDto {\n    cartId: string;\n}\n\n/**\n * Validation information for a cart item\n */\nexport interface CartItemValidation {\n    hasIssues: boolean;              // Indica si hay problemas con este item\n    issues: string[];                // Lista de problemas encontrados (mensajes legibles)\n    errorCode?: CartItemErrorCode;   // Código específico del error principal\n    currentPrice?: number;           // Precio actual del producto (si cambió)\n    availableStock?: number;         // Stock disponible actual\n    isProductActive?: boolean;       // Si el producto está activo\n}\n\n/**\n * Error codes for cart items\n */\nexport enum CartItemErrorCode {\n    PRICE_INCREASED = 'PRICE_INCREASED',           // Precio aumentó\n    PRICE_DECREASED = 'PRICE_DECREASED',           // Precio disminuyó  \n    PRODUCT_INACTIVE = 'PRODUCT_INACTIVE',         // Producto ya no está disponible\n    STOCK_INSUFFICIENT = 'STOCK_INSUFFICIENT',     // Stock insuficiente (hay algo disponible)\n    STOCK_UNAVAILABLE = 'STOCK_UNAVAILABLE',       // Sin stock (0 disponible)\n    VALIDATION_ERROR = 'VALIDATION_ERROR'          // Error general de validación\n}\n","/**\n * Entidad Customer\n * Cliente de la tienda\n*/\nimport { Phone } from \"../common/Phone\";\n\nexport interface Customer {\n  id: string;\n  accountId: string;\n  firstName?: string;\n  lastName?: string;\n  email: string;\n  phone?: Phone;\n  status: CustomerStatus;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n}\n\nexport enum CustomerStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE',\n  BLACKLISTED = 'BLACKLISTED', // e.g., for fraudulent activity\n  PENDING = 'PENDING', // e.g., email verification needed\n}","import { AccountIntegration } from \"../accountIntegration\";\n/**\n * Entidad Integration\n * Define las integraciones de terceros disponibles en la plataforma (ej. pasarelas de pago, transportistas).\n * Almacena información sobre el proveedor, categoría y esquema de parámetros requeridos.\n */\n\nexport enum IntegrationCategory {\n\tPAYMENT_GATEWAY = 'PAYMENT_GATEWAY',\n\tSHIPPING_CARRIER = 'SHIPPING_CARRIER',\n\tMARKETPLACE = 'MARKETPLACE',\n\tEMAIL_MARKETING = 'EMAIL_MARKETING',\n\tANALYTICS = 'ANALYTICS',\n\tACCOUNTING = 'ACCOUNTING',\n\tSOCIAL_MEDIA = 'SOCIAL_MEDIA',\n\tOTHER = 'OTHER',\n}\n\nexport enum IntegrationStatus {\n\tACTIVE = 'ACTIVE',\n\tINACTIVE = 'INACTIVE',\n\tBETA = 'BETA',\n\tDEPRECATED = 'DEPRECATED',\n}\n\nexport interface Integration {\n\tid: string;\n\tcategory: IntegrationCategory;\n\tproviderKey: string; // Unique identifier key (e.g., 'stripe', 'mercadopago')\n\tname: string; // Human-readable name (e.g., \"Stripe\", \"Mercado Pago\")\n\tdescription?: string;\n\tsetupInstructions?: string; // General instructions or link to docs\n\tlogoUrl?: string; // URL to the integration's logo\n\trequiredParamsSchema?: any; // Define required parameters/credentials structure\n\tstatus: IntegrationStatus;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n\tdeletedAt?: Date | null;\n\n\taccountIntegration: AccountIntegration | null;\n}","import { Currency } from \"../common\";\nimport { Customer } from \"../customer\";\nimport { AccountIntegration } from \"../accountIntegration\";\nimport { AccountDomain } from \"../accountDomain\";\n\n/**\n * Entidad Order\n * Define la orden de compra de un cliente en el sitio web.\n */\n\nexport interface Order {\n    id: string;\n    accountId: string;\n    customerId: string;\n    cartId?: string;\n    code: string;\n    deliveryType?: OrderDeliveryType;\n    deliveryFirstName?: string;\n    deliveryLastName?: string;\n    deliveryAddress?: any;\n    deliveryPhone?: any;\n    deliveryOptionId?: string;\n    pickupBranchId?: string;\n    paymentMethodIntegrationId?: string;\n    billingInformation?: any;\n    currency: Currency;\n    subtotalPrice: number;\n    totalDiscounts: number;\n    totalShippingPrice: number;\n    totalTax: number;\n    taxDetails?: any;\n    totalPrice: number;\n    totalRefunded: number;\n    status: OrderStatus;\n    paymentStatus: OrderPaymentStatus;\n    fulfillmentStatus: OrderFulfillmentStatus;\n    statusHistory?: StatusChangeHistory[];\n    customerNote?: string;\n    internalNote?: string;\n    source: OrderSource;\n    sourceAccountDomainId?: string;\n    demo: boolean;\n    createdAt: Date;\n    updatedAt: Date;\n    cancelledAt?: Date;\n    cancelReason?: string;\n    deletedAt?: Date;\n    items?: OrderItem[];\n\n    customer?: Customer | null;\n    paymentMethodIntegration?: AccountIntegration | null;\n    accountDomain?: AccountDomain;\n}\n\nexport interface OrderItem {\n    id: string;\n    accountId: string;\n    orderId: string;\n    productId: string;\n    productVariantId: string;\n    sku?: string;\n    productName: string;\n    variantName?: string;\n    currency: Currency;\n    unitPrice: number;\n    totalDiscount: number;\n    totalPrice: number;\n    quantity: number;\n    quantityFulfilled: number;\n    quantityRefunded: number;\n    quantityReturned: number;\n    totalTax: number;\n    taxName?: string;\n    createdAt: Date;\n    updatedAt: Date;\n}\n\nexport enum OrderStatus {\n  PENDING = 'PENDING', // Order placed, awaiting payment confirmation\n  CONFIRMED = 'CONFIRMED', // Payment received, order confirmed\n  PROCESSING = 'PROCESSING', // Order being prepared\n  PROCESSED = 'PROCESSED', // Order ready to be shipped\n  ON_HOLD = 'ON_HOLD', // Order temporarily paused\n  COMPLETED = 'COMPLETED', // Order finished (e.g., after return period)\n  CANCELLED = 'CANCELLED', // Order cancelled before fulfillment\n  FAILED = 'FAILED', // Order failed (e.g., payment failed irrecoverably)\n}\n\nexport enum OrderPaymentStatus {\n    PENDING = 'PENDING',\n    PARTIAL = 'PARTIAL',\n    PAID = 'PAID',\n    OVERPAID = 'OVERPAID',\n    REFUNDED = 'REFUNDED',\n    PARTIALLY_REFUNDED = 'PARTIALLY_REFUNDED'\n}\n\nexport enum OrderFulfillmentStatus {\n    PENDING = 'PENDING',\n    PARTIAL = 'PARTIAL',\n    FULFILLED = 'FULFILLED'\n}\n\nexport enum OrderSource {\n    WEB = 'WEB',\n    POS = 'POS',\n    API = 'API'\n}\n\nexport enum OrderDeliveryType {\n    SHIPPING = 'shipping',\n    PICKUP = 'pickup',\n}\n\nexport interface StatusChangeHistory {\n    status: OrderStatus;\n    timestamp: Date;\n    reason?: string;\n    userId?: string;\n    metadata?: Record<string, any>;\n}","// shared-types/src/payment/types.ts\n\nimport { Currency } from \"../common\";\n\nexport enum PaymentStatus {\n    PENDING = 'PENDING', // Pendiente\n    PREAUTHORIZED = 'PREAUTHORIZED',\n    APPROVED = 'APPROVED', // Pago aprobado online\n    PAID = 'PAID', // Pago realizado por redes fisicas\n    REJECTED = 'REJECTED', // Pago rechazado\n    REFUND_IN_PROCESS = 'REFUND_IN_PROCESS', // En proceso de reembolso con la plataforma de pagos\n    PARTIAL_REFUND = 'PARTIAL_REFUND', // Pago parcialmente reembolsado\n    REFUNDED = 'REFUNDED', // Pago reembolsado\n}\n\nexport enum PaymentMethodType {\n    BANK_TRANSFER = 'BANK_TRANSFER',\n    CREDIT_CARD = 'CREDIT_CARD',\n    DEBIT_CARD = 'DEBIT_CARD',\n    MERCADOPAGO = 'MERCADOPAGO',\n    PHYSICAL = 'PHYSICAL',\n    INTERNATIONAL = 'INTERNATIONAL',\n    PAYPAL = 'PAYPAL',\n    CASH = 'CASH',\n    OTHER = 'OTHER', // Added for flexibility\n}\n\nexport interface Payment {\n  id: string;\n  accountId: string;\n  orderId: string;\n  invoiceId?: string;\n  gatewayPaymentId?: string;\n  referenceCode?: string;\n  paymentMethodType?: PaymentMethodType;\n  currency: Currency;\n  amount: number;\n  amountReceived: number;\n  amountRefunded: number;\n  paidAt?: string | Date;\n  refundedAt?: string | Date;\n  status: PaymentStatus;\n  cardBrand?: string;\n  cardLast4?: string;\n  metadata?: Record<string, any>;\n  demo: boolean;\n  createdAt: string | Date;\n  updatedAt: string | Date;\n  deletedAt?: string | Date;\n}","import { StandardCategory } from \"../standardCategory\";\n\n/**\n * Entidad Product\n * Representa un producto vendible en la tienda. Es la entidad base que puede tener múltiples variantes.\n */\n\nexport interface Product {\n  id: string;\n  accountId: string;\n  code: string;\n  brandId?: string | null;\n  supplierId?: string | null;\n  productType: ProductType;\n  sku?: string | null;\n  barcode?: string | null;\n  name: string;  // e.g., \"Zapatos\", \"Pantalones\", \"Camisas\"\n  slug: string;\n  description?: string | null;\n  isFeatured: boolean;\n\n  // Inventory & Shipping\n  allowBackorder: boolean;  // Permite realizar pedidos aunque no haya stock disponible. Se aplica a las variantes si no está definido allí\n  weight?: number | null;\n  weightUnit?: string | null; // e.g., \"kg\"\n  height?: number | null;\n  width?: number | null;\n  depth?: number | null; \n  dimensionUnit?: string | null; // e.g., \"cm\"\n  shippingLeadTime?: string | null;  // e.g., \"1-3 days\"\n\n  status: ProductStatus; // ACTIVE, INACTIVE\n  \n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n}\n\nexport enum ProductStatus {\n  ACTIVE = 'ACTIVE', // Available for sale\n  INACTIVE = 'INACTIVE', // Not visible/purchasable\n  ARCHIVED = 'ARCHIVED', // Not visible, kept for records\n  DRAFT = 'DRAFT', // Incomplete product setup\n}\n\nexport enum ProductType {\n    SIMPLE = 'SIMPLE', // Product without variants (may have a default hidden variant)\n    VARIABLE = 'VARIABLE', // Product with distinct variants (color, size, etc.)\n    BUNDLE = 'BUNDLE', // A package of other products/variants\n    GIFT_CARD = 'GIFT_CARD', // Virtual or physical gift card\n}\n\n\nexport interface ProductVariant {\n  id: string;\n  accountId: string;\n  productId: string;\n\n  sku?: string | null;\n  barcode?: string | null; // EAN, UPC, etc.\n\n  // Pricing\n  currency: string; // ISO 4217 currency code\n  price: number;\n  compareAtPrice?: number;\n  allowBackorder?: boolean;\n  \n  // Inventory & Shipping\n  stock: number;\n  weight?: number | null;\n  weightUnit?: string | null;\n  height?: number | null;\n  width?: number | null;\n  depth?: number | null;\n  dimensionUnit?: string | null;\n  shippingLeadTime?: string | null; // e.g., \"1-3 days\"\n  \n  order: number;\n\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date;\n\n}","/**\n * Entidad ProductAttribute\n * Define los atributos disponibles que se pueden asignar a las variantes de producto (ej. Color, Talla).\n * Especifica el nombre y tipo del atributo para ayudar en la representación y filtrado.\n */\n\nexport interface ProductAttribute {\n  id: string;\n  accountId: string;\n  name: string;  // e.g., \"Color de zapatos\", \"Talle de pantalones\", \"Material\"\n  alias: string; // e.g., \"Color\", \"Talla\", \"Material\"\n  slug: string;\n  type: ProductAttributeType; // Helps frontend render appropriate controls\n  isRequired: boolean; // isRequired for product variant\n  suffix: string; // suffix for number type\n  status: ProductAttributeStatus; // ACTIVE, INACTIVE\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  options: ProductAttributeOption[];\n  displayOrder: number; // order to display the attribute in the frontend\n}\n\nexport enum ProductAttributeStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE',\n}\n\n\nexport enum ProductAttributeType {\n    TEXT = 'TEXT', // text input\n    NUMBER = 'NUMBER', // number input\n    COLOR = 'COLOR', // Special type for color swatches\n    SELECT = 'SELECT', // Dropdown list\n    BOOLEAN = 'BOOLEAN', // checkbox input\n}\n\n/**\n * Una opción específica para un atributo (ej. \"Talle 42\" para el atributo \"Talle\").\n */\nexport interface ProductAttributeOption {\n  id: string;\n  accountId: string;\n  productAttributeId: string;\n  value: string;\n  imageId?: string | null;\n  order: number;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  count: number; // number of options\n}","import { StandardCategory } from \"../standardCategory\";\n\n/**\n * Entidad ProductCategory\n * Define las categorías de productos.\n * Soporta una estructura jerárquica (categorías y subcategorías) mediante el campo parentId.\n * Cada categoría debe estar asociada a una categoría estándar del sistema.\n */\n\nexport interface ProductCategory {\n  id: string;\n  accountId: string;\n  parentId?: string;\n  standardCategoryId: string;\n  name: string;  // e.g., \"Zapatos\", \"Pantalones\", \"Camisas\"\n  slug: string;\n  description?: string;\n  imageId?: string | null;\n  order: number;\n  isFeatured: boolean;\n  status: ProductCategoryStatus; // ACTIVE, INACTIVE\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  children: ProductCategory[];\n  parent: ProductCategory | null;\n  standardCategory: StandardCategory;\n}\n\n\nexport enum ProductCategoryStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE',\n}\n\n","/**\n * Entidad StandardCategory\n * Define las categorías estándar de productos.\n * Estas categorías estan pensadas para unificar o agrupar productos de diferentes cuentas.\n */\n\nexport interface StandardCategory {\n  id: string;\n  parentId?: string;\n  name: string;  // e.g., \"Zapatos\", \"Pantalones\", \"Camisas\"\n  slug: string;\n  description?: string;\n  imageId?: string | null;\n  order: number;\n  status: StandardCategoryStatus; // ACTIVE, INACTIVE\n  metadata?: {\n    icon?: string;\n    displayInMenu?: boolean;\n    seoTitle?: string;\n    seoDescription?: string;\n    attributes?: string[];\n  };\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  children: StandardCategory[];\n  parent: StandardCategory | null;\n}\n\nexport enum StandardCategoryStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE'\n}\n\n","/**\n * Entidad StoreBanner\n * Banners para la portada de la web de la tienda\n */\n\nimport { Media } from \"../common\";\n\nexport interface StoreBanner {\n  id: string;\n  accountId: string;\n  title: string;\n  desktopMediaId: string;\n  mobileMediaId?: string | null;\n  linkUrl?: string | null;\n  altText?: string | null;\n  displayOrder: number;\n  startDate?: Date | null;\n  endDate?: Date | null;\n  status: StoreBannerStatus;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n\n  // Relationships\n  desktopMedia?: Partial<Media> | null;\n  mobileMedia?: Partial<Media> | null;\n}\n\nexport enum StoreBannerStatus {\n  ACTIVE = \"ACTIVE\",\n  INACTIVE = \"INACTIVE\"\n}\n\n ","/**\n * Entidad StorePage\n * Páginas de la web de la tienda\n */\n\nexport interface StorePage {\n  id: string;\n  accountId: string;\n  type: StorePageType;\n  title: string;\n  slug: string;\n  content?: string | null;\n  seoTitle?: string | null;\n  seoDescription?: string | null;\n  \n  status: StorePageStatus;\n  canDelete: boolean;\n  createdAt: Date;\n  updatedAt: Date;\n  deletedAt?: Date | null;\n}\n\nexport enum StorePageStatus {\n  PUBLISHED = 'PUBLISHED',\n  DRAFT = 'DRAFT',\n  ARCHIVED = 'ARCHIVED',\n}\n\nexport enum StorePageType {\n  ABOUT_US = 'ABOUT_US',\n  CONTACT = 'CONTACT',\n  FAQ = 'FAQ',\n  TERMS_AND_CONDITIONS = 'TERMS_AND_CONDITIONS',\n  PRIVACY_POLICY = 'PRIVACY_POLICY',\n  RETURN_POLICY = 'RETURN_POLICY',\n  SHIPPING_POLICY = 'SHIPPING_POLICY',\n  BRANCHES = 'BRANCHES',\n  JOBS = 'JOBS',\n  OTHER = 'OTHER',\n}\n\n\n ","export enum PubSubTopics {\n    ORDER_PLACED = 'order-placed',\n    NOTIFICATION_CREATED = 'notification-created',\n  }"],"mappings":";;;AAqBO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,WAAQ;AACR,EAAAA,WAAA,WAAQ;AACR,EAAAA,WAAA,cAAW;AACX,EAAAA,WAAA,WAAQ;AACR,EAAAA,WAAA,aAAU;AACV,EAAAA,WAAA,WAAQ;AANE,SAAAA;AAAA,GAAA;;;ACrBL,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,SAAM;AALI,SAAAA;AAAA,GAAA;AAQL,SAAS,kBAAkB,cAAgC;AAChE,QAAM,kBAA6C;AAAA,IAC/C,CAAC,eAAY,GAAG;AAAA,IAChB,CAAC,eAAY,GAAG;AAAA,IAChB,CAAC,eAAY,GAAG;AAAA,IAChB,CAAC,eAAY,GAAG;AAAA,IAChB,CAAC,eAAY,GAAG;AAAA,EACpB;AAEA,SAAO,gBAAgB,YAAY,KAAK,aAAa,SAAS;AAChE;;;ACMO,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,eAAY;AAJF,SAAAA;AAAA,GAAA;;;ACGL,IAAK,sBAAL,kBAAKC,yBAAL;AACL,EAAAA,qBAAA,YAAS;AACT,EAAAA,qBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;AAmBL,IAAK,8BAAL,kBAAKC,iCAAL;AACL,EAAAA,6BAAA,YAAS;AACT,EAAAA,6BAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;AAKL,IAAK,2BAAL,kBAAKC,8BAAL;AACL,EAAAA,0BAAA,YAAS;AACT,EAAAA,0BAAA,aAAU;AACV,EAAAA,0BAAA,eAAY;AACZ,EAAAA,0BAAA,cAAW;AACX,EAAAA,0BAAA,YAAS;AACT,EAAAA,0BAAA,cAAW;AACX,EAAAA,0BAAA,YAAS;AAPC,SAAAA;AAAA,GAAA;;;ACtBL,IAAK,kCAAL,kBAAKC,qCAAL;AACN,EAAAA,iCAAA,WAAQ;AACR,EAAAA,iCAAA,YAAS;AAFE,SAAAA;AAAA,GAAA;AAKL,IAAK,8BAAL,kBAAKC,iCAAL;AACN,EAAAA,6BAAA,YAAS;AACT,EAAAA,6BAAA,cAAW;AAFA,SAAAA;AAAA,GAAA;AA6BL,IAAK,kCAAL,kBAAKC,qCAAL;AACN,EAAAA,iCAAA,YAAS;AACT,EAAAA,iCAAA,cAAW;AAFA,SAAAA;AAAA,GAAA;;;AC3CL,IAAK,sBAAL,kBAAKC,yBAAL;AACL,EAAAA,qBAAA,aAAU;AACV,EAAAA,qBAAA,YAAS;AACT,EAAAA,qBAAA,cAAW;AAHD,SAAAA;AAAA,GAAA;;;ACdL,IAAK,2BAAL,kBAAKC,8BAAL;AACN,EAAAA,0BAAA,YAAS;AACT,EAAAA,0BAAA,cAAW;AACX,EAAAA,0BAAA,UAAO;AACP,EAAAA,0BAAA,gBAAa;AAJF,SAAAA;AAAA,GAAA;AAML,IAAK,qCAAL,kBAAKC,wCAAL;AACN,EAAAA,oCAAA,eAAY;AACZ,EAAAA,oCAAA,kBAAe;AACf,EAAAA,oCAAA,WAAQ;AACR,EAAAA,oCAAA,aAAU;AAJC,SAAAA;AAAA,GAAA;AAOL,IAAK,gCAAL,kBAAKC,mCAAL;AACN,EAAAA,+BAAA,gBAAa;AACb,EAAAA,+BAAA,iBAAc;AAFH,SAAAA;AAAA,GAAA;;;AC4CL,IAAK,aAAL,kBAAKC,gBAAL;AACH,EAAAA,YAAA,YAAS;AACT,EAAAA,YAAA,YAAS;AACT,EAAAA,YAAA,aAAU;AACV,EAAAA,YAAA,eAAY;AACZ,EAAAA,YAAA,eAAY;AACZ,EAAAA,YAAA,YAAS;AAND,SAAAA;AAAA,GAAA;AASL,IAAK,aAAL,kBAAKC,gBAAL;AACH,EAAAA,YAAA,SAAM;AACN,EAAAA,YAAA,SAAM;AACN,EAAAA,YAAA,SAAM;AAHE,SAAAA;AAAA,GAAA;AAML,IAAK,mBAAL,kBAAKC,sBAAL;AACH,EAAAA,kBAAA,cAAW;AACX,EAAAA,kBAAA,YAAS;AAFD,SAAAA;AAAA,GAAA;;;ACkBL,IAAK,oBAAL,kBAAKC,uBAAL;AACH,EAAAA,mBAAA,qBAAkB;AAClB,EAAAA,mBAAA,qBAAkB;AAClB,EAAAA,mBAAA,sBAAmB;AACnB,EAAAA,mBAAA,wBAAqB;AACrB,EAAAA,mBAAA,uBAAoB;AACpB,EAAAA,mBAAA,sBAAmB;AANX,SAAAA;AAAA,GAAA;;;AC7EL,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,cAAW;AACX,EAAAA,gBAAA,iBAAc;AACd,EAAAA,gBAAA,aAAU;AAJA,SAAAA;AAAA,GAAA;;;ACZL,IAAK,sBAAL,kBAAKC,yBAAL;AACN,EAAAA,qBAAA,qBAAkB;AAClB,EAAAA,qBAAA,sBAAmB;AACnB,EAAAA,qBAAA,iBAAc;AACd,EAAAA,qBAAA,qBAAkB;AAClB,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,kBAAe;AACf,EAAAA,qBAAA,WAAQ;AARG,SAAAA;AAAA,GAAA;AAWL,IAAK,oBAAL,kBAAKC,uBAAL;AACN,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,gBAAa;AAJF,SAAAA;AAAA,GAAA;;;AC2DL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,gBAAa;AACb,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,YAAS;AARC,SAAAA;AAAA,GAAA;AAWL,IAAK,qBAAL,kBAAKC,wBAAL;AACH,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,UAAO;AACP,EAAAA,oBAAA,cAAW;AACX,EAAAA,oBAAA,cAAW;AACX,EAAAA,oBAAA,wBAAqB;AANb,SAAAA;AAAA,GAAA;AASL,IAAK,yBAAL,kBAAKC,4BAAL;AACH,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,eAAY;AAHJ,SAAAA;AAAA,GAAA;AAML,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,SAAM;AACN,EAAAA,aAAA,SAAM;AACN,EAAAA,aAAA,SAAM;AAHE,SAAAA;AAAA,GAAA;AAML,IAAK,oBAAL,kBAAKC,uBAAL;AACH,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,YAAS;AAFD,SAAAA;AAAA,GAAA;;;ACzGL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,mBAAgB;AAChB,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,uBAAoB;AACpB,EAAAA,eAAA,oBAAiB;AACjB,EAAAA,eAAA,cAAW;AARH,SAAAA;AAAA,GAAA;AAWL,IAAK,oBAAL,kBAAKC,uBAAL;AACH,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,iBAAc;AACd,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,iBAAc;AACd,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,WAAQ;AATA,SAAAA;AAAA,GAAA;;;ACwBL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,WAAQ;AAJE,SAAAA;AAAA,GAAA;AAOL,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,eAAY;AAJJ,SAAAA;AAAA,GAAA;;;ACtBL,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,wBAAA,YAAS;AACT,EAAAA,wBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;AAML,IAAK,uBAAL,kBAAKC,0BAAL;AACH,EAAAA,sBAAA,UAAO;AACP,EAAAA,sBAAA,YAAS;AACT,EAAAA,sBAAA,WAAQ;AACR,EAAAA,sBAAA,YAAS;AACT,EAAAA,sBAAA,aAAU;AALF,SAAAA;AAAA,GAAA;;;ACCL,IAAK,wBAAL,kBAAKC,2BAAL;AACL,EAAAA,uBAAA,YAAS;AACT,EAAAA,uBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;;;ACDL,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,wBAAA,YAAS;AACT,EAAAA,wBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;;;ACFL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;;;ACNL,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,cAAW;AAHD,SAAAA;AAAA,GAAA;AAML,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,SAAM;AACN,EAAAA,eAAA,0BAAuB;AACvB,EAAAA,eAAA,oBAAiB;AACjB,EAAAA,eAAA,mBAAgB;AAChB,EAAAA,eAAA,qBAAkB;AAClB,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,WAAQ;AAVE,SAAAA;AAAA,GAAA;;;AC5BL,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,kBAAe;AACf,EAAAA,cAAA,0BAAuB;AAFf,SAAAA;AAAA,GAAA;","names":["MediaType","Currency","AccountStatus","AccountBranchStatus","AccountBranchScheduleStatus","AccountBranchScheduleDay","AccountDeliveryOptionPriceLogic","AccountDeliveryOptionStatus","AccountDeliveryOptionZoneStatus","AccountDomainStatus","AccountIntegrationStatus","AccountIntegrationConnectionStatus","AccountIntegrationEnvironment","CartStatus","CartSource","CartDeliveryType","CartItemErrorCode","CustomerStatus","IntegrationCategory","IntegrationStatus","OrderStatus","OrderPaymentStatus","OrderFulfillmentStatus","OrderSource","OrderDeliveryType","PaymentStatus","PaymentMethodType","ProductStatus","ProductType","ProductAttributeStatus","ProductAttributeType","ProductCategoryStatus","StandardCategoryStatus","StoreBannerStatus","StorePageStatus","StorePageType","PubSubTopics"]}