Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -32,6 +32,7 @@ var (
|
|||||||
// Beden kategorileri (frontend birebir)
|
// Beden kategorileri (frontend birebir)
|
||||||
const (
|
const (
|
||||||
catAyk = "ayk"
|
catAyk = "ayk"
|
||||||
|
catAykGar = "ayk_garson"
|
||||||
catYas = "yas"
|
catYas = "yas"
|
||||||
catPan = "pan"
|
catPan = "pan"
|
||||||
catGom = "gom"
|
catGom = "gom"
|
||||||
@@ -39,14 +40,15 @@ const (
|
|||||||
catAksbir = "aksbir"
|
catAksbir = "aksbir"
|
||||||
)
|
)
|
||||||
|
|
||||||
var categoryOrder = []string{catAyk, catYas, catPan, catGom, catTak, catAksbir}
|
var categoryOrder = []string{catTak, catAyk, catAykGar, catYas, catPan, catGom, catAksbir}
|
||||||
|
|
||||||
var categoryTitle = map[string]string{
|
var categoryTitle = map[string]string{
|
||||||
|
catTak: " TAKIM ELBİSE",
|
||||||
catAyk: " AYAKKABI",
|
catAyk: " AYAKKABI",
|
||||||
|
catAykGar: " AYAKKABI GARSON",
|
||||||
catYas: " YAŞ",
|
catYas: " YAŞ",
|
||||||
catPan: " PANTOLON",
|
catPan: " PANTOLON",
|
||||||
catGom: " GÖMLEK",
|
catGom: " GÖMLEK",
|
||||||
catTak: " TAKIM ELBİSE",
|
|
||||||
catAksbir: " AKSESUAR",
|
catAksbir: " AKSESUAR",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,53 +309,93 @@ func detectBedenGroupGo(bedenList []string, ana, alt string) string {
|
|||||||
ana = safeTrimUpper(ana)
|
ana = safeTrimUpper(ana)
|
||||||
alt = safeTrimUpper(alt)
|
alt = safeTrimUpper(alt)
|
||||||
|
|
||||||
// Ürün grubu adı doğrudan ayakkabı ise öncelikli.
|
hasGarson := strings.Contains(ana, "GARSON") || strings.Contains(alt, "GARSON") ||
|
||||||
if strings.Contains(ana, "AYAKKABI") || strings.Contains(alt, "AYAKKABI") {
|
strings.Contains(ana, "YETISKIN/GARSON") || strings.Contains(alt, "YETISKIN/GARSON") ||
|
||||||
return catAyk
|
strings.Contains(ana, "YETİSKIN/GARSON") || strings.Contains(alt, "YETİSKIN/GARSON") ||
|
||||||
|
strings.Contains(ana, "YETİŞKIN/GARSON") || strings.Contains(alt, "YETİŞKIN/GARSON") ||
|
||||||
|
strings.Contains(ana, "YETİŞKİN/GARSON") || strings.Contains(alt, "YETİŞKİN/GARSON")
|
||||||
|
|
||||||
|
hasAyakkabi := strings.Contains(ana, "AYAKKABI") || strings.Contains(alt, "AYAKKABI")
|
||||||
|
|
||||||
|
// ✅ Garson + ayakkabı özel grubu
|
||||||
|
if hasGarson && hasAyakkabi {
|
||||||
|
return catAykGar
|
||||||
|
}
|
||||||
|
// ✅ Garson → yaş
|
||||||
|
if hasGarson {
|
||||||
|
return catYas
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasYasNumeric bool
|
// ✅ Harfli beden → gömlek
|
||||||
var hasAykNumeric bool
|
|
||||||
var hasPanNumeric bool
|
|
||||||
|
|
||||||
for _, b := range bedenList {
|
for _, b := range bedenList {
|
||||||
b = safeTrimUpper(b)
|
b = safeTrimUpper(b)
|
||||||
|
|
||||||
switch b {
|
switch b {
|
||||||
case "XS", "S", "M", "L", "XL",
|
case "XS", "S", "M", "L", "XL",
|
||||||
"2XL", "3XL", "4XL", "5XL", "6XL", "7XL":
|
"2XL", "3XL", "4XL", "5XL", "6XL", "7XL":
|
||||||
return catGom
|
return catGom
|
||||||
}
|
}
|
||||||
|
|
||||||
if n, ok := parseNumericSize(b); ok {
|
|
||||||
if n >= 2 && n <= 14 {
|
|
||||||
hasYasNumeric = true
|
|
||||||
}
|
|
||||||
if n >= 39 && n <= 45 {
|
|
||||||
hasAykNumeric = true
|
|
||||||
}
|
|
||||||
if n >= 38 && n <= 68 {
|
|
||||||
hasPanNumeric = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if hasAykNumeric {
|
// ✅ Aksesuar tespiti (aksbir)
|
||||||
|
aksesuarGruplari := []string{
|
||||||
|
"AKSESUAR", "KRAVAT", "PAPYON", "KEMER", "CORAP", "ÇORAP",
|
||||||
|
"FULAR", "MENDIL", "MENDİL", "KASKOL", "ASKI",
|
||||||
|
"YAKA", "KOL DUGMESI", "KOL DÜĞMESİ",
|
||||||
|
}
|
||||||
|
giyimGruplari := []string{"GÖMLEK", "CEKET", "PANTOLON", "MONT", "YELEK", "TAKIM", "TSHIRT", "TİŞÖRT"}
|
||||||
|
isAksesuar := false
|
||||||
|
for _, g := range aksesuarGruplari {
|
||||||
|
if strings.Contains(ana, g) || strings.Contains(alt, g) {
|
||||||
|
isAksesuar = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if isAksesuar {
|
||||||
|
for _, g := range giyimGruplari {
|
||||||
|
if strings.Contains(ana, g) {
|
||||||
|
isAksesuar = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if isAksesuar {
|
||||||
|
return catAksbir
|
||||||
|
}
|
||||||
|
|
||||||
|
// ✅ Pantolon özel (yetişkin)
|
||||||
|
if strings.Contains(ana, "PANTOLON") && (strings.Contains(alt, "YETISKIN") || strings.Contains(alt, "YETİŞKİN") || strings.Contains(alt, "YETİSKIN")) {
|
||||||
|
return catPan
|
||||||
|
}
|
||||||
|
|
||||||
|
// ✅ Tam numeric ve 35–46 arası → ayakkabı
|
||||||
|
allNumeric := true
|
||||||
|
nums := make([]int, 0, len(bedenList))
|
||||||
|
for _, b := range bedenList {
|
||||||
|
n, ok := parseNumericSize(b)
|
||||||
|
if !ok {
|
||||||
|
allNumeric = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
nums = append(nums, n)
|
||||||
|
}
|
||||||
|
if allNumeric && len(nums) > 0 {
|
||||||
|
sort.Ints(nums)
|
||||||
|
okSeq := true
|
||||||
|
for i := 1; i < len(nums); i++ {
|
||||||
|
if nums[i]-nums[i-1] != 1 {
|
||||||
|
okSeq = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if okSeq && nums[0] >= 35 && nums[len(nums)-1] <= 46 {
|
||||||
return catAyk
|
return catAyk
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if strings.Contains(ana, "PANTOLON") {
|
// ✅ Garson/çocuk alt grubu → yaş
|
||||||
return catPan
|
|
||||||
}
|
|
||||||
if hasPanNumeric {
|
|
||||||
return catPan
|
|
||||||
}
|
|
||||||
if strings.Contains(alt, "ÇOCUK") || strings.Contains(alt, "GARSON") {
|
if strings.Contains(alt, "ÇOCUK") || strings.Contains(alt, "GARSON") {
|
||||||
return catYas
|
return catYas
|
||||||
}
|
}
|
||||||
if hasYasNumeric {
|
|
||||||
return catYas
|
|
||||||
}
|
|
||||||
|
|
||||||
return catTak
|
return catTak
|
||||||
}
|
}
|
||||||
@@ -375,6 +417,8 @@ func formatSizeQtyForLog(m map[string]int) string {
|
|||||||
}
|
}
|
||||||
func defaultSizeListFor(cat string) []string {
|
func defaultSizeListFor(cat string) []string {
|
||||||
switch cat {
|
switch cat {
|
||||||
|
case catAykGar:
|
||||||
|
return []string{"22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "STD"}
|
||||||
case catAyk:
|
case catAyk:
|
||||||
return []string{"39", "40", "41", "42", "43", "44", "45"}
|
return []string{"39", "40", "41", "42", "43", "44", "45"}
|
||||||
case catYas:
|
case catYas:
|
||||||
|
|||||||
Reference in New Issue
Block a user