diff --git a/app/public/categories/books-50.png b/app/public/categories/books-50.png new file mode 100644 index 000000000..0279cb2d8 Binary files /dev/null and b/app/public/categories/books-50.png differ diff --git a/app/public/categories/toys-50.png b/app/public/categories/toys-50.png new file mode 100644 index 000000000..7d12ddc95 Binary files /dev/null and b/app/public/categories/toys-50.png differ diff --git a/app/public/locales/en/translation.json b/app/public/locales/en/translation.json index 2511d806c..1e176228f 100644 --- a/app/public/locales/en/translation.json +++ b/app/public/locales/en/translation.json @@ -7,6 +7,8 @@ "setLoopTheme": "Set Loop theme", "rules": "Rules", "addresses": "Addresses", + "toys": "Toys", + "books": "Books", "bag": "Bag", "bags": "Bags", "whereIsTheBag": "Where is the bag?", diff --git a/app/src/components/AddressList/TinyBagSvg.tsx b/app/src/components/AddressList/TinyBagSvg.tsx index b505f91c8..6a6c0f14b 100644 --- a/app/src/components/AddressList/TinyBagSvg.tsx +++ b/app/src/components/AddressList/TinyBagSvg.tsx @@ -91,5 +91,16 @@ export default function TinyBagSvg({ bag }: Props) { ); } + if (bag.number.includes("šŸ“–")) { + return ( + + + + ); + } + return ; } diff --git a/app/src/components/CreateUpdateBag.tsx b/app/src/components/CreateUpdateBag.tsx index 04995970c..0a9cfc8de 100644 --- a/app/src/components/CreateUpdateBag.tsx +++ b/app/src/components/CreateUpdateBag.tsx @@ -190,7 +190,7 @@ export default function CreateUpdateBag({ /> - {["šŸ‘»", "šŸ°", "šŸ‘Ÿ"].map((emoji, i) => ( + {["šŸ‘»", "šŸ°", "šŸ‘Ÿ", "šŸ“–"].map((emoji, i) => ( ; +type ICategories = Record; -export enum Genders { +export enum Categories { children = "1", women = "2", men = "3", + toys = "4", + books = "5", } export enum Sizes { baby = "1", @@ -20,25 +22,29 @@ export enum Sizes { menMedium = "9", menLarge = "A", menPlusSize = "B", + womenMaternity = "C", } const categories: ICategories = { - [Genders.children]: [ + [Categories.children]: [ Sizes["baby"], Sizes["1To4YearsOld"], Sizes["5To12YearsOld"], ], - [Genders.women]: [ + [Categories.women]: [ Sizes["womenSmall"], Sizes["womenMedium"], Sizes["womenLarge"], Sizes["womenPlusSize"], + Sizes["womenMaternity"], ], - [Genders.men]: [ + [Categories.men]: [ Sizes["menSmall"], Sizes["menMedium"], Sizes["menLarge"], Sizes["menPlusSize"], ], + [Categories.toys]: [], + [Categories.books]: [], }; export const SizeLetters: Record = { "1": "Baby", @@ -52,15 +58,33 @@ export const SizeLetters: Record = { "9": "M", A: "(X)L", B: "XLā‰¤", + C: "Maternity", }; function BadgeItem({ sizes, icon }: { sizes: string[]; icon: string }) { return ( - {sizes.map((s) => ( - - {SizeLetters[s]} +
+ {sizes.map((s) => ( + + {SizeLetters[s]} + + ))} +
+ +
+ ); +} +function BadgeItemSingle({ icon, text }: { icon: string; text: string }) { + return ( + + {text ? ( + + {text} - ))} + ) : null} categories[Genders.children].includes(a as Sizes)) + ?.filter((a) => categories[Categories.children].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; const women = props.sizes - ?.filter((a) => categories[Genders.women].includes(a as Sizes)) + ?.filter((a) => categories[Categories.women].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; const men = props.sizes - ?.filter((a) => categories[Genders.men].includes(a as Sizes)) + ?.filter((a) => categories[Categories.men].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; return (
- {women?.length || props.genders?.includes(Genders.women) ? ( + {women?.length || props.categories?.includes(Categories.women) ? ( ) : null} - {men?.length || props.genders?.includes(Genders.men) ? ( + {men?.length || props.categories?.includes(Categories.men) ? ( ) : null} - {children?.length || props.genders?.includes(Genders.children) ? ( + {children?.length || props.categories?.includes(Categories.children) ? ( ) : null} + {props.categories?.includes(Categories.toys) ? ( + + ) : null} + {props.categories?.includes(Categories.books) ? ( + + ) : null}
); } diff --git a/app/src/pages/AddressItem.tsx b/app/src/pages/AddressItem.tsx index 12c78efd9..e3d6c1eac 100644 --- a/app/src/pages/AddressItem.tsx +++ b/app/src/pages/AddressItem.tsx @@ -78,7 +78,7 @@ export default function AddressItem({ {t("interestedSizes")}
- {user ? : null} + {user ? : null}
) : null} diff --git a/app/src/pages/Settings.tsx b/app/src/pages/Settings.tsx index 1c42df8b7..a24338375 100644 --- a/app/src/pages/Settings.tsx +++ b/app/src/pages/Settings.tsx @@ -469,7 +469,10 @@ export default function Settings() { slot="end" > {chain ? ( - + ) : null} diff --git a/frontend/public/images/categories/books-50.png b/frontend/public/images/categories/books-50.png new file mode 100644 index 000000000..0279cb2d8 Binary files /dev/null and b/frontend/public/images/categories/books-50.png differ diff --git a/frontend/public/images/categories/toys-50.png b/frontend/public/images/categories/toys-50.png new file mode 100644 index 000000000..7d12ddc95 Binary files /dev/null and b/frontend/public/images/categories/toys-50.png differ diff --git a/frontend/public/locales/en/translation.json b/frontend/public/locales/en/translation.json index 150be8127..bd8a43c0d 100644 --- a/frontend/public/locales/en/translation.json +++ b/frontend/public/locales/en/translation.json @@ -92,22 +92,25 @@ "searchLocation": "Search Location", "noMatchesFound": "No matches found", "categories": "Categories", - "women": "Women's", - "men": "Men's", - "children": "Children's", + "women": "Women", + "men": "Men", + "children": "Children", + "toys": "Toys", + "books": "Books", "clothing": " clothing", "sizes": "Sizes", "baby": "Baby", "1To4YearsOld": "1-4 years old", "5To12YearsOld": "5-12 years old", - "womenPlusSize": "Women's plus size", - "menPlusSize": "Men's plus size", + "womenPlusSize": "Plus size", + "menPlusSize": "Plus size", "menSmall": "(Extra) Small", "menMedium": "Medium", "menLarge": "(Extra) Large", "womenSmall": "(Extra) Small", "womenMedium": "Medium", "womenLarge": "(Extra) Large", + "womenMaternity": "Maternity", "join": "Join", "joined": "Joined", "new": "New", diff --git a/frontend/src/api/enums.ts b/frontend/src/api/enums.ts index c5151b6e2..1f1f0b19c 100644 --- a/frontend/src/api/enums.ts +++ b/frontend/src/api/enums.ts @@ -10,6 +10,7 @@ export enum Sizes { menMedium = "9", menLarge = "A", menPlusSize = "B", + womenMaternity = "C", } export const SizeI18nKeys: Record = { @@ -24,16 +25,21 @@ export const SizeI18nKeys: Record = { "9": "menMedium", A: "menLarge", B: "menPlusSize", + C: "womenMaternity", }; -export enum Genders { +export enum Categories { children = "1", women = "2", men = "3", + toys = "4", + books = "5", } -export const GenderI18nKeys: Record = { +export const CatI18nKeys: Record = { "1": "children", "2": "women", "3": "men", + "4": "toys", + "5": "books", }; diff --git a/frontend/src/components/react/components/AddressForm.tsx b/frontend/src/components/react/components/AddressForm.tsx index 1b8d197d9..092469adb 100644 --- a/frontend/src/components/react/components/AddressForm.tsx +++ b/frontend/src/components/react/components/AddressForm.tsx @@ -372,7 +372,7 @@ export default function AddressForm(props: { message={t("weWouldLikeToKnowThisEquallyRepresented")} /> setValue("sizes", v)} diff --git a/frontend/src/components/react/components/Badges.tsx b/frontend/src/components/react/components/Badges.tsx index 643d00325..5d7f60484 100644 --- a/frontend/src/components/react/components/Badges.tsx +++ b/frontend/src/components/react/components/Badges.tsx @@ -1,8 +1,8 @@ import type { TFunction } from "i18next"; import { - GenderI18nKeys, - Genders, + CatI18nKeys, + Categories, SizeI18nKeys, Sizes, } from "../../../api/enums"; @@ -28,55 +28,75 @@ export function SizeBadges({ g, }: { s?: Array | null; - g?: Array | null; + g?: Array | null; }) { const { t } = useTranslation(); const children = s - ?.filter((a) => categories[Genders.children].includes(a as Sizes)) + ?.filter((a) => categories[Categories.children].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; const women = s - ?.filter((a) => categories[Genders.women].includes(a as Sizes)) + ?.filter((a) => categories[Categories.women].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; const men = s - ?.filter((a) => categories[Genders.men].includes(a as Sizes)) + ?.filter((a) => categories[Categories.men].includes(a as Sizes)) .sort((a, z) => a.localeCompare(z)) || []; return (
    - {women.length || g?.includes(Genders.women) ? ( + {women.length || g?.includes(Categories.women) ? ( ) : null} - {men.length || g?.includes(Genders.men) ? ( + {men.length || g?.includes(Categories.men) ? ( ) : null} - {children.length || g?.includes(Genders.children) ? ( + {children.length || g?.includes(Categories.children) ? ( ) : null} + {g?.indexOf(Categories.toys) ? ( + + ) : null} + {g?.indexOf(Categories.books) ? ( + + ) : null}
); } @@ -92,7 +112,7 @@ function SizeCatBadges({ ...props }: { t: TFunction; - gender: Genders; + category: Categories; sizes: Sizes[]; icon: string; color: string; @@ -103,7 +123,7 @@ function SizeCatBadges({ >
diff --git a/frontend/src/components/react/components/CategoriesDropdown.tsx b/frontend/src/components/react/components/CategoriesDropdown.tsx index dd75a28fd..4b787b6a3 100644 --- a/frontend/src/components/react/components/CategoriesDropdown.tsx +++ b/frontend/src/components/react/components/CategoriesDropdown.tsx @@ -1,38 +1,38 @@ import * as React from "react"; import categories from "../util/categories"; -import { GenderI18nKeys, Genders } from "../../../api/enums"; +import { CatI18nKeys, Categories } from "../../../api/enums"; import { useDropdownCheckBox } from "../util/dropdown.hooks"; import { useTranslation } from "react-i18next"; interface IProps { - selectedGenders: Array; - handleChange: (genders: Array) => void; + selectedCategories: Array; + handleChange: (c: Array) => void; className?: string; } export default function CategoriesDropdown({ className, - selectedGenders, + selectedCategories, handleChange, }: IProps) { const { t } = useTranslation(); const dropdown = useDropdownCheckBox({ - selected: selectedGenders, + selected: selectedCategories, handleChange, }); let btnLabel = React.useMemo(() => { - if (selectedGenders.length) { - return [...selectedGenders] + if (selectedCategories.length) { + return [...selectedCategories] .sort() - .map((g) => t(GenderI18nKeys[g])) + .map((g) => t(CatI18nKeys[g])) .join(", "); } else { return t("categories"); } - }, [t, selectedGenders]); + }, [t, selectedCategories]); return (
- {Object.keys(categories).map((gender: string | Genders) => { - let checked = selectedGenders.includes(gender); + {Object.keys(categories).map((c: string | Categories) => { + let checked = selectedCategories.includes(c); + return ( -
  • +
  • ); diff --git a/frontend/src/components/react/components/ChainDetailsForm.tsx b/frontend/src/components/react/components/ChainDetailsForm.tsx index 1daa6fa46..329e7d9e0 100644 --- a/frontend/src/components/react/components/ChainDetailsForm.tsx +++ b/frontend/src/components/react/components/ChainDetailsForm.tsx @@ -11,7 +11,7 @@ import PopoverOnHover from "./Popover"; import SizesDropdown from "../components/SizesDropdown"; import CategoriesDropdown from "../components/CategoriesDropdown"; import { type RequestRegisterChain } from "../../../api/login"; -import { Genders, Sizes } from "../../../api/enums"; +import { Categories, Sizes } from "../../../api/enums"; import useForm from "../util/form.hooks"; import { addToastError } from "../../../stores/toast"; import { circleRadiusKm } from "../util/maps"; @@ -223,12 +223,12 @@ export default function ChainDetailsForm({ } function handleCategoriesChange(selectedGenders: string[]) { - setValue("genders", selectedGenders as Genders[]); + setValue("genders", selectedGenders as Categories[]); // potentially remove some sizes if their parent category has been deselected const filteredSizes = (values.sizes || []).filter( (size) => selectedGenders.filter((gender) => - categories[gender as Genders].includes(size as Sizes), + categories[gender as Categories].includes(size as Sizes), ).length > 0, ); setValue("sizes", filteredSizes); @@ -341,7 +341,7 @@ export default function ChainDetailsForm({
    @@ -354,10 +354,10 @@ export default function ChainDetailsForm({
    setValue("sizes", v)} diff --git a/frontend/src/components/react/components/EventChangeForm.tsx b/frontend/src/components/react/components/EventChangeForm.tsx index 53e717260..892f41a4d 100644 --- a/frontend/src/components/react/components/EventChangeForm.tsx +++ b/frontend/src/components/react/components/EventChangeForm.tsx @@ -351,7 +351,7 @@ export default function EventChangeForm(props: { setValue("genders", gs)} /> diff --git a/frontend/src/components/react/components/FindChain/SearchBar.tsx b/frontend/src/components/react/components/FindChain/SearchBar.tsx index cb422f55a..d9c050d6d 100644 --- a/frontend/src/components/react/components/FindChain/SearchBar.tsx +++ b/frontend/src/components/react/components/FindChain/SearchBar.tsx @@ -176,7 +176,7 @@ export default function SearchBar(props: Props) {
    setValue("genders", gs)} />
    @@ -184,7 +184,7 @@ export default function SearchBar(props: Props) {
    void; @@ -53,8 +53,9 @@ export default function SizesDropdown(props: { tabIndex={0} > {Object.entries(categories).map(([gender, sizes]) => { + if (!sizes.length) return null; let disabled = - props.filteredGenders.find((g) => g === gender) === undefined; + props.filteredCategory.find((g) => g === gender) === undefined; return ( @@ -64,7 +65,7 @@ export default function SizesDropdown(props: { disabled ? "text-base-300" : "" }`} > - {GenderI18nKeys[gender]} + {CatI18nKeys[gender]} {sizes.map((size) => { let checked = props.selectedSizes.includes(size); diff --git a/frontend/src/components/react/pages/Events.tsx b/frontend/src/components/react/pages/Events.tsx index 5b5512209..d8a098ebe 100644 --- a/frontend/src/components/react/pages/Events.tsx +++ b/frontend/src/components/react/pages/Events.tsx @@ -20,7 +20,7 @@ import { $authUser } from "../../../stores/auth"; import { addModal, addToastError } from "../../../stores/toast"; import useLocalizePath from "../util/localize_path.hooks"; import { PRICE_TYPE_I18N } from "../components/EventChangeForm"; -import { GenderI18nKeys, Genders } from "../../../api/enums"; +import { CatI18nKeys, Categories } from "../../../api/enums"; const LocationModal = lazy(() => import("../components/LocationModal")); interface SearchValues { @@ -179,7 +179,7 @@ export default function Events() { { setValue("genders", gs); search(); @@ -503,9 +503,7 @@ function EventItemLoading() { function EventItemInstagram({ event }: { event: Event }) { // genders sorted by children, women then men const genders = useMemo(() => { - return Object.keys(GenderI18nKeys).filter((g) => - event.genders?.includes(g), - ); + return Object.keys(CatI18nKeys).filter((g) => event.genders?.includes(g)); }, [event]); const date = dayjs(event.date).format("DD-MM-YYYY"); const address = useMemo(() => { @@ -516,11 +514,11 @@ function EventItemInstagram({ event }: { event: Event }) { let genderColor = "bg-purple"; let genderColorLight = "bg-purple-lighter"; if (event.genders && event.genders.length === 1) { - if (event.genders[0] === Genders.children) { + if (event.genders[0] === Categories.children) { genderColor = "bg-mint"; genderColorLight = "bg-mint-light"; } - if (event.genders[0] === Genders.women) { + if (event.genders[0] === Categories.women) { genderColor = "bg-orange"; genderColorLight = "bg-orange-light"; } @@ -560,15 +558,15 @@ function EventItemInstagram({ event }: { event: Event }) { let src = ""; let alt = ""; switch (gender) { - case Genders.children: + case Categories.children: src = "/images/categories/baby-50.png"; alt = "Baby"; break; - case Genders.women: + case Categories.women: src = "/images/categories/woman-50.png"; alt = "Woman"; break; - case Genders.men: + case Categories.men: alt = "Men"; src = "/images/categories/man-50.png"; } diff --git a/frontend/src/components/react/pages/FindChain.tsx b/frontend/src/components/react/pages/FindChain.tsx index 519d2ace7..ded213e6c 100644 --- a/frontend/src/components/react/pages/FindChain.tsx +++ b/frontend/src/components/react/pages/FindChain.tsx @@ -17,8 +17,7 @@ import { circleRadiusKm, useMapZoom, } from "../util/maps"; -import clothingCategories from "../util/categories"; -import { Genders, Sizes } from "../../../api/enums"; +import { Categories, Sizes } from "../../../api/enums"; import { addToastError } from "../../../stores/toast"; import { useStore } from "@nanostores/react"; import { $chains } from "../../../stores/chains"; @@ -73,29 +72,22 @@ function createFilterFunc( genders: string[], sizes: string[], ): (c: Chain) => boolean { - let filterFunc = (_: Chain) => true; - if (sizes?.length) { - filterFunc = (c) => { - for (let s of sizes) { - if (c.sizes?.includes(s)) return true; + if (!sizes?.length && !genders?.length) return (_: Chain) => true; + + return (c: Chain) => { + for (let g of genders) { + if (!c.genders?.includes(g)) { + return false; } - return false; - }; - } else if (genders?.length) { - filterFunc = (c) => { - for (let g of genders) { - if (c.genders?.includes(g)) return true; - if ( - c.sizes?.find((s) => - clothingCategories[g as Genders].includes(s as Sizes), - ) - ) - return true; + } + for (let s of sizes) { + if (!c.sizes?.includes(s)) { + return false; } - return false; - }; - } - return filterFunc; + } + + return true; + }; } export default function FindChain() { diff --git a/frontend/src/components/react/pages/Signup.tsx b/frontend/src/components/react/pages/Signup.tsx index c0baaf0e7..41c58ccb6 100644 --- a/frontend/src/components/react/pages/Signup.tsx +++ b/frontend/src/components/react/pages/Signup.tsx @@ -10,7 +10,7 @@ import { registerBasicUser, registerOrphanedUser } from "../../../api/login"; import { GinParseErrors } from "../util/gin-errors"; import type { TFunction } from "i18next"; -import { Genders } from "../../../api/enums"; +import { Categories } from "../../../api/enums"; import { useStore } from "@nanostores/react"; import { $authUser, authUserRefresh } from "../../../stores/auth"; import { addModal, addToastError } from "../../../stores/toast"; @@ -152,7 +152,7 @@ export default function Signup() { return
    ; } else { let image = - chain?.genders?.length && chain.genders[0] === Genders.men + chain?.genders?.length && chain.genders[0] === Categories.men ? { src: "https://images.clothingloop.org/cx585,cw2678,x600/mannen_amersfoort.jpg", alt: "Two men wearing jumpers, the left wearing a baseball cap, the right glasses, between them is a large blue bag with the number 11 taped on.", diff --git a/frontend/src/components/react/util/categories.ts b/frontend/src/components/react/util/categories.ts index 7d24fde9c..501bf4ea2 100644 --- a/frontend/src/components/react/util/categories.ts +++ b/frontend/src/components/react/util/categories.ts @@ -1,25 +1,28 @@ -import { Genders, Sizes } from "../../../api/enums"; +import { Categories, Sizes } from "../../../api/enums"; -type ICategories = Record; +type ICategories = Record; const clothingCategories: ICategories = { - [Genders.children]: [ + [Categories.children]: [ Sizes["baby"], Sizes["1To4YearsOld"], Sizes["5To12YearsOld"], ], - [Genders.women]: [ + [Categories.women]: [ Sizes["womenSmall"], Sizes["womenMedium"], Sizes["womenLarge"], Sizes["womenPlusSize"], + Sizes["womenMaternity"], ], - [Genders.men]: [ + [Categories.men]: [ Sizes["menSmall"], Sizes["menMedium"], Sizes["menLarge"], Sizes["menPlusSize"], ], + [Categories.books]: [], + [Categories.toys]: [], }; export const allSizes = Object.values(clothingCategories).reduce( diff --git a/server/internal/models/gender.go b/server/internal/models/gender.go index 502180d35..25fbee484 100644 --- a/server/internal/models/gender.go +++ b/server/internal/models/gender.go @@ -6,6 +6,8 @@ const ( GenderEnumChildren = "1" GenderEnumWomen = "2" GenderEnumMen = "3" + GenderEnumToys = "4" + GenderEnumBooks = "5" ) var ErrGenderInvalid = errors.New("Invalid gender enum") @@ -15,7 +17,7 @@ func ValidateAllGenderEnum(arr []string) bool { return false } for _, s := range arr { - if err := validate.Var(s, "oneof=1 2 3,required"); err != nil { + if err := validate.Var(s, "oneof=1 2 3 4 5,required"); err != nil { return false } } diff --git a/server/internal/models/size.go b/server/internal/models/size.go index 2028fb825..4a1bb004c 100644 --- a/server/internal/models/size.go +++ b/server/internal/models/size.go @@ -3,31 +3,33 @@ package models import "errors" const ( - SizeEnumBaby = "1" - SizeEnum1_4YearsOld = "2" - SizeEnum5_12YearsOld = "3" - SizeEnumWomenSmall = "4" - SizeEnumWomenMedium = "5" - SizeEnumWomenLarge = "6" - SizeEnumWomenPlusSize = "7" - SizeEnumMenSmall = "8" - SizeEnumMenMedium = "9" - SizeEnumMenLarge = "A" - SizeEnumMenPlusSize = "B" + SizeEnumBaby = "1" + SizeEnum1_4YearsOld = "2" + SizeEnum5_12YearsOld = "3" + SizeEnumWomenSmall = "4" + SizeEnumWomenMedium = "5" + SizeEnumWomenLarge = "6" + SizeEnumWomenPlusSize = "7" + SizeEnumMenSmall = "8" + SizeEnumMenMedium = "9" + SizeEnumMenLarge = "A" + SizeEnumMenPlusSize = "B" + SizeEnumWomenMaternity = "C" ) var SizeLetters = map[string]string{ - SizeEnumBaby: "Baby", - SizeEnum1_4YearsOld: "ā‰¤4", - SizeEnum5_12YearsOld: "5-12", - SizeEnumWomenSmall: "(X)S", - SizeEnumWomenMedium: "M", - SizeEnumWomenLarge: "(X)L", - SizeEnumWomenPlusSize: "XLā‰¤", - SizeEnumMenSmall: "(X)S", - SizeEnumMenMedium: "M", - SizeEnumMenLarge: "(X)L", - SizeEnumMenPlusSize: "XLā‰¤", + SizeEnumBaby: "Baby", + SizeEnum1_4YearsOld: "ā‰¤4", + SizeEnum5_12YearsOld: "5-12", + SizeEnumWomenSmall: "(X)S", + SizeEnumWomenMedium: "M", + SizeEnumWomenLarge: "(X)L", + SizeEnumWomenPlusSize: "XLā‰¤", + SizeEnumMenSmall: "(X)S", + SizeEnumMenMedium: "M", + SizeEnumMenLarge: "(X)L", + SizeEnumMenPlusSize: "XLā‰¤", + SizeEnumWomenMaternity: "Maternity", } var ErrSizeInvalid = errors.New("Invalid size enum") @@ -37,7 +39,7 @@ func ValidateAllSizeEnum(arr []string) bool { return false } for _, s := range arr { - if err := validate.Var(s, "oneof=1 2 3 4 5 6 7 8 9 A B,required"); err != nil { + if err := validate.Var(s, "oneof=1 2 3 4 5 6 7 8 9 A B C,required"); err != nil { return false } } diff --git a/server/internal/tests/mocks/mock-tables.go b/server/internal/tests/mocks/mock-tables.go index 9f410c23a..205b3ff43 100644 --- a/server/internal/tests/mocks/mock-tables.go +++ b/server/internal/tests/mocks/mock-tables.go @@ -207,6 +207,8 @@ func MockGenders(zeroOrMore bool) (genders []string) { models.GenderEnumChildren, models.GenderEnumWomen, models.GenderEnumMen, + models.GenderEnumToys, + models.GenderEnumBooks, }, zeroOrMore) }