export const ARTICLE_LIST_JOINS = ` LEFT JOIN articletext at ON at.article_id = a.id AND at.language_id = @languageId LEFT JOIN price pr ON pr.article_id = a.id AND pr.customergroup_id = @posCustomerGroupId AND pr.minmultiplier = 1 LEFT JOIN tax t ON t.id = pr.tax_id OUTER APPLY ( SELECT TOP 1 ap.pic_id FROM articlepic ap WHERE ap.article_id = a.id ORDER BY ap.sort ASC, ap.id ASC ) first_pic LEFT JOIN pic ON pic.id = first_pic.pic_id LEFT JOIN article father ON father.id = a.fatherarticle_id `; export const ARTICLE_LIST_COLUMNS = ` a.id, a.sku, at.name, at.slug, pr.net, t.rate AS taxRate, CASE WHEN a.optionslist_id IS NOT NULL THEN ( SELECT COUNT(*) FROM optionslistarticle ola WHERE ola.optionslist_id = a.optionslist_id ) ELSE 0 END AS optionsCount, CASE WHEN a.articlelist_id IS NOT NULL THEN ( SELECT COUNT(*) FROM articlelistarticle ala WHERE ala.articlelist_id = a.articlelist_id ) ELSE 0 END AS articleListCount, ( SELECT COUNT(*) FROM article child WHERE child.fatherarticle_id = a.id ) AS childCount, a.fatherarticle_id AS fatherArticleId, father.sku AS fatherSku, pic.hash AS fullHash, pic.thumbw AS thumbW, pic.thumbh AS thumbH, pic.thumbhash AS thumbHash `; export const GET_CATEGORY_ID_BY_SKU = ` SELECT TOP 1 ca.category_id AS categoryId, a.id AS articleId FROM article a INNER JOIN categoryarticle ca ON ca.article_id = a.id WHERE a.sku = @sku `; /** SKU → article/category + company auth in one round-trip. */ export const RESOLVE_ARTICLE_ACCESS_BY_SKU = ` WITH article_cat AS ( SELECT TOP 1 a.id AS articleId, ca.category_id AS categoryId FROM article a INNER JOIN categoryarticle ca ON ca.article_id = a.id WHERE a.sku = @sku ), ancestors AS ( SELECT c.id, c.parent_id FROM category c INNER JOIN article_cat ac ON c.id = ac.categoryId UNION ALL SELECT c.id, c.parent_id FROM category c INNER JOIN ancestors a ON c.id = a.parent_id ), root AS ( SELECT TOP 1 id AS rootCategoryId FROM ancestors WHERE parent_id IS NULL ) SELECT ac.articleId, ac.categoryId, r.rootCategoryId, co.id AS companyId, co.default_language_id AS languageId, co.poscustomergroup_id AS posCustomerGroupId, cu.id AS companyuserId FROM article_cat ac LEFT JOIN root r ON 1 = 1 LEFT JOIN company co ON co.root_category_id = r.rootCategoryId LEFT JOIN companyuser cu ON cu.company_id = co.id AND cu.google_auth_id = @googleAuthId `; export const UPDATE_WEIGHT = ` UPDATE article SET weight = @weight WHERE id = @articleId `; export const UPDATE_BRAND = ` UPDATE article SET brand_id = @brandId WHERE id = @articleId `; export const UPDATE_UNIT = ` UPDATE article SET unit_id = @unitId WHERE id = @articleId `; export const UPDATE_UNITAMOUNT = ` UPDATE article SET unitamount = @unitamount WHERE id = @articleId `; export const UPDATE_UNIT_AND_AMOUNT = ` UPDATE article SET unit_id = @unitId, unitamount = @unitamount WHERE id = @articleId `; export const CREATE = ` INSERT INTO article (sku, unit_id, unitamount, weight) OUTPUT INSERTED.id VALUES (@sku, @unitId, @unitamount, @weight) `; export const DELETE_EANS_BY_ARTICLE = ` DELETE FROM articleean WHERE article_id = @articleId `; export const ADD_EAN = ` INSERT INTO articleean (article_id, ean) VALUES (@articleId, @ean) `; export const DELETE_CATEGORIES_BY_ARTICLE = ` DELETE FROM categoryarticle WHERE article_id = @articleId `; export const ADD_CATEGORY = ` INSERT INTO categoryarticle (category_id, article_id) VALUES (@categoryId, @articleId) `; export const GET_BRAND_BY_COMPANY_AND_ID = ` SELECT id FROM brand WHERE id = @brandId AND company_id = @companyId `;